28 lines
		
	
	
		
			722 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			722 B
		
	
	
	
		
			Factor
		
	
	
| USING: kernel math math.parser random io ;
 | |
| IN: numbers-game
 | |
| 
 | |
| : read-number ( -- n ) readln string>number ;
 | |
| 
 | |
| : guess-banner
 | |
|     "I'm thinking of a number between 0 and 100." print ;
 | |
| : guess-prompt "Enter your guess: " write ;
 | |
| : too-high "Too high" print ;
 | |
| : too-low "Too low" print ;
 | |
| : correct "Correct - you win!" print ;
 | |
| 
 | |
| : inexact-guess ( actual guess -- )
 | |
|      < [ too-high ] [ too-low ] if ;
 | |
| 
 | |
| : judge-guess ( actual guess -- ? )
 | |
|     2dup = [ 2drop correct f ] [ inexact-guess t ] if ;
 | |
| 
 | |
| : number-to-guess ( -- n ) 100 random ;
 | |
| 
 | |
| : numbers-game-loop ( actual -- )
 | |
|     dup guess-prompt read-number judge-guess
 | |
|     [ numbers-game-loop ] [ drop ] if ;
 | |
| 
 | |
| : numbers-game number-to-guess numbers-game-loop ;
 | |
| 
 | |
| MAIN: numbers-game
 |