\ Copyright BASIC version - Creative Computing, Morristown, New Jersey
\ Copyright 4tH version - 2003 J.L. Bezemer
[needs lib/enter.4th]
: wins? dup 2 < dup ;
: start
." This is a game called '23 matches'." cr cr
." When it is your turn, you may take one, two, or three" cr
." matches. The object of the game is not to have to take" cr
." the last match." cr cr
." Let's flip a coin to see who goes first." cr
." If it comes up heads, I will win the toss." cr cr
random 1 and
if
." Heads! I win! Ha! Ha!" cr
." Prepare to lose, meatball-nose!!" cr
." I take 2 matches" cr
2 -
else
." Tails! You go first. " cr
then
;
: user-moves
." The number of matches is now " dup . cr
." Your turn -- you may take 1, 2 or 3 matches." cr
begin
." How many do you wish to remove? "
enter over 1- 3 min over
swap > over 1 < or
while
drop
." Very funny! Dummy!" cr
." Do you want to play or goof around?" cr
repeat
swap over -
." There are now " dup . ." matches remaining." cr
;
: user-wins?
wins?
if
cr ." You won, floppy ears!" cr
." Think you're pretty smart!" cr
." Let's play again and I'll blow your shoes off!!" cr
then
;
: computer-moves
dup 5 <
if
nip dup 1-
else
4 rot -
then
cr ." My turn! I remove " dup . ." matches." cr -
;
: computer-wins?
wins?
if
." You poor boob! You took the last match! I gotcha!!" cr
." Ha! Ha! I beat you!!!" cr
." Goodbye loser!" cr
then
;
: game
begin
user-moves
user-wins?
if exit then
computer-moves
computer-wins?
if exit then
again
;
: matches
start
game
drop
;
23 matches
|