mirror of
https://github.com/KarolS/millfork.git
synced 2025-01-11 12:29:46 +00:00
Guess-a-number example; make echo run on PC-88
This commit is contained in:
parent
c438152f1d
commit
2f63eafc3a
@ -2,14 +2,16 @@
|
|||||||
|
|
||||||
## Cross-platform examples
|
## Cross-platform examples
|
||||||
|
|
||||||
* [Hello world](crossplatform/hello_world.mfk) (C64/C16/PET/VIC-20/Atari/Apple II/BBC Micro/ZX Spectrum/PC-88/Armstrad CPC) – simple text output
|
* [Hello world](crossplatform/hello_world.mfk) (C64/C16/PET/VIC-20/PET/Atari/Apple II/BBC Micro/ZX Spectrum/PC-88/Armstrad CPC) – simple text output
|
||||||
|
|
||||||
* [Text encodings](crossplatform/text_encodings.mfk) (C64/ZX Spectrum) – examples of text encoding features
|
* [Text encodings](crossplatform/text_encodings.mfk) (C64/ZX Spectrum) – examples of text encoding features
|
||||||
|
|
||||||
* [Echo](crossplatform/echo.mfk) (C64/C16/ZX Spectrum)– simple text input and output
|
* [Echo](crossplatform/echo.mfk) (C64/C16/ZX Spectrum/PC-88)– simple text input and output
|
||||||
|
|
||||||
* [Calculator](crossplatform/calculator.mfk) (C64/C16/ZX Spectrum/PC-88) – simple numeric input and output
|
* [Calculator](crossplatform/calculator.mfk) (C64/C16/ZX Spectrum/PC-88) – simple numeric input and output
|
||||||
|
|
||||||
|
* [Guessing game](crossplatform/guess.mfk) (C64/C16/ZX Spectrum/PC-88) – a guess-a-number game
|
||||||
|
|
||||||
* [Fire effect](crossplatform/fire.mfk) (C64/C16/ZX Spectrum) – a simple fire effect
|
* [Fire effect](crossplatform/fire.mfk) (C64/C16/ZX Spectrum) – a simple fire effect
|
||||||
|
|
||||||
* [Bell](crossplatform/bell.mfk) (Apple II/ZX Spectrum) – a program that goes \*ding!\*
|
* [Bell](crossplatform/bell.mfk) (Apple II/ZX Spectrum) – a program that goes \*ding!\*
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
import c64_basic
|
import c64_basic
|
||||||
#elseif CBM_264
|
#elseif CBM_264
|
||||||
import c264_basic
|
import c264_basic
|
||||||
#elseif ZX_SPECTRUM
|
#elseif ZX_SPECTRUM || NEC_PC_88
|
||||||
// no imports needed
|
// no imports needed
|
||||||
#else
|
#else
|
||||||
#error Unsupported platform
|
#error Unsupported platform
|
||||||
@ -12,11 +12,12 @@
|
|||||||
import stdio
|
import stdio
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
pointer line
|
||||||
while true {
|
while true {
|
||||||
readline()
|
line = readline()
|
||||||
// empty line is read as a single space
|
// empty line is read as a single space
|
||||||
if readline_out[0] == 32 && readline_out[1] == 0 { return }
|
if line[0] == 32 && line[1] == 0 { return }
|
||||||
putstrz(readline_out)
|
putstrz(line)
|
||||||
putchar(13)
|
new_line()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
64
examples/crossplatform/guess.mfk
Normal file
64
examples/crossplatform/guess.mfk
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
import random
|
||||||
|
import stdio
|
||||||
|
import err
|
||||||
|
|
||||||
|
#if CBM_64
|
||||||
|
import c64_basic
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CBM_264
|
||||||
|
import c264_basic
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void main () {
|
||||||
|
init_rand_seed()
|
||||||
|
ensure_mixedcase()
|
||||||
|
putstrz("Welcome to the guessing game."z)
|
||||||
|
new_line()
|
||||||
|
while true {
|
||||||
|
play_round()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void play_round() {
|
||||||
|
word guess
|
||||||
|
word answer
|
||||||
|
word guess_count
|
||||||
|
do {
|
||||||
|
answer.hi = rand()
|
||||||
|
answer.lo = rand()
|
||||||
|
} while answer > 999
|
||||||
|
answer += 1
|
||||||
|
guess_count = 0
|
||||||
|
|
||||||
|
putstrz("I picked a number between 1 and 1000."z)
|
||||||
|
new_line()
|
||||||
|
while true {
|
||||||
|
putstrz("Your guess?"z)
|
||||||
|
new_line()
|
||||||
|
guess = readword()
|
||||||
|
while errno != err_ok {
|
||||||
|
putstrz("That wasn't a number! Try again."z)
|
||||||
|
new_line()
|
||||||
|
guess = readword()
|
||||||
|
}
|
||||||
|
guess_count += 1
|
||||||
|
if guess == answer { break }
|
||||||
|
if answer < guess {
|
||||||
|
putstrz("My number is smaller!"z)
|
||||||
|
new_line()
|
||||||
|
}
|
||||||
|
if answer > guess {
|
||||||
|
putstrz("My number is bigger!"z)
|
||||||
|
new_line()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
putstrz("Congratulations! You guessed my number!"z)
|
||||||
|
new_line()
|
||||||
|
putstrz("It took you only "z)
|
||||||
|
putword(guess_count)
|
||||||
|
putstrz(" attempts!"z)
|
||||||
|
new_line()
|
||||||
|
new_line()
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user