1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-12-23 23:30:22 +00:00

Guess-a-number example; make echo run on PC-88

This commit is contained in:
Karol Stasiak 2018-12-30 19:10:57 +01:00
parent c438152f1d
commit 2f63eafc3a
3 changed files with 74 additions and 7 deletions

View File

@ -2,14 +2,16 @@
## 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
* [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
* [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
* [Bell](crossplatform/bell.mfk) (Apple II/ZX Spectrum) a program that goes \*ding!\*

View File

@ -3,7 +3,7 @@
import c64_basic
#elseif CBM_264
import c264_basic
#elseif ZX_SPECTRUM
#elseif ZX_SPECTRUM || NEC_PC_88
// no imports needed
#else
#error Unsupported platform
@ -12,11 +12,12 @@
import stdio
void main() {
pointer line
while true {
readline()
line = readline()
// empty line is read as a single space
if readline_out[0] == 32 && readline_out[1] == 0 { return }
putstrz(readline_out)
putchar(13)
if line[0] == 32 && line[1] == 0 { return }
putstrz(line)
new_line()
}
}

View 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()
}