! Copyright © 2008 Reginald Keith Ford II
! 24, the Factor game!
-USING: accessors backtrack combinators continuations io kernel
-math math.parser prettyprint quotations random sequences shuffle
-;
+USING: accessors backtrack combinators continuations formatting io
+kernel math prettyprint quotations random sequences shuffle ;
IN: 24-game
: nop ( -- ) ;
[ name>> = ] with find nip ;
: get-operator ( operators -- word )
- "Operators: " write dup pprint nl flush
+ dup "Operators: %u\n" printf flush
readln over find-operator dup
- [ "Command not found..." print get-operator ] unless nip ;
+ [ "Operator not found..." print get-operator ] unless nip ;
: try-operator ( array -- array )
[ pprint nl ]
bi ;
: end-game ( array -- )
- dup { 24 } = [
+ first dup 24 = [
drop "You WON!"
] [
- first number>string " is not 24... You lose." append
+ "%d is not 24... You lose." sprintf
] if print ;
: quit-game ( array -- )