2019-09-10 07:52:59 -04:00
|
|
|
USING: combinators io kernel math.order math.parser random ;
|
2007-09-20 18:09:08 -04:00
|
|
|
IN: numbers-game
|
|
|
|
|
2008-06-09 03:14:14 -04:00
|
|
|
: guess-banner ( -- )
|
2019-09-10 07:52:59 -04:00
|
|
|
"I'm thinking of a number between 0 and 100." print flush ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2019-09-10 07:52:59 -04:00
|
|
|
: guess-number ( -- n )
|
|
|
|
"Enter your guess: " write flush readln string>number ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2019-09-10 07:52:59 -04:00
|
|
|
: correct? ( actual guess -- ? )
|
|
|
|
<=> {
|
|
|
|
{ +lt+ [ "Too high" print flush f ] }
|
|
|
|
{ +eq+ [ "Correct - you win!" print flush t ] }
|
|
|
|
{ +gt+ [ "Too low" print flush f ] }
|
|
|
|
} case ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
: numbers-game-loop ( actual -- )
|
2019-09-10 07:52:59 -04:00
|
|
|
[ dup guess-number correct? not ] loop drop ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2012-02-09 00:31:31 -05:00
|
|
|
: numbers-game ( -- )
|
2019-09-10 07:52:59 -04:00
|
|
|
guess-banner 100 random numbers-game-loop ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
MAIN: numbers-game
|