]> gitweb.factorcode.org Git - factor.git/blob - extra/numbers-game/numbers-game.factor
ui.tools.listener.completion: change history completion popup to preserve newlines
[factor.git] / extra / numbers-game / numbers-game.factor
1 USING: combinators io kernel math.order math.parser random ;
2 IN: numbers-game
3
4 : guess-banner ( -- )
5     "I'm thinking of a number between 0 and 100." print flush ;
6
7 : guess-number ( -- n )
8     "Enter your guess: " write flush readln string>number ;
9
10 : correct? ( actual guess -- ? )
11     <=> {
12         { +lt+ [ "Too high" print flush f ] }
13         { +eq+ [ "Correct - you win!" print flush t ] }
14         { +gt+ [ "Too low" print flush f ] }
15     } case ;
16
17 : numbers-game-loop ( actual -- )
18     [ dup guess-number correct? not ] loop drop ;
19
20 : numbers-game ( -- )
21     guess-banner 100 random numbers-game-loop ;
22
23 MAIN: numbers-game