10  REM *** 23 MATCHES
12  REM *** PEOPLE'S COMPUTER COMPANY, MENLO PARK, CA
90  DIM A$[72]
100  REM *** PRINT THE INSTRUCTIONS
110  PRINT 
120  PRINT "WE START WITH A PILE OF 23 MATCHES."
130  PRINT 
140  PRINT "WE TAKE TURNS.  ON EACH TURN WE CAN REMOVE"
150  PRINT "1, 2, OR 3 MATCHES FROM THE PILE."
160  PRINT "THE ONE WHO HAS TO TAKE THE LAST MATCH LOSES."
170  PRINT 
180  PRINT "YOU GO FIRST.  ";
190  PRINT "MAY THE BEST COMPUTER (HA HA) WIN."
200  REM *** INITIALIZE THE NUMBER OF MATCHES
210  M=23
220  PRINT 
230  PRINT "THERE ARE NOW 23 MATCHES."
300  REM *** THE HUMAN MOVES
310  PRINT "HOW MANY DO YOU TAKE";
320  INPUT H
330  REM *** CHECK IF H = 1, 2, OR 3
340  H=INT(H)
350  IF (H<1) OR (H>3) THEN 800
360  REM *** ADJUST # MATCHES LEFT
370  M=M-H
380  REM *** CHECK IF THE HUMAN LOST
390  IF M <= 0 THEN 850
500  REM *** THE COMPUTER MOVES
510  IF M=1 THEN 880
520  REM *** TRY TO LEAVE  4K + 1  MATCHES
530  R=M-4*INT(M/4)
540  REM *** IF R=1 THEN THERE IS NO 'GOOD' MOVE
550  IF R=1 THEN 590
560  REM *** THE WINNING MOVE IS  (R+3) MOD 4
570  C=(R+3)-4*INT((R+3)/4)
580  GOTO 610
590  REM *** MAKE A RANDOM MOVE
600  C=INT(3*RND(0))+1
610  REM *** THE COMPUTER MOVES
620  PRINT "I TOOK";C;
630  REM *** ADJUST # MATCHES LEFT AND PRINT IT
640  M=M-C
650  PRINT ". . .  THERE ARE NOW";M;"MATCHES."
660  PRINT 
670  GOTO 300
800  REM *** THE HUMAN CHEATED
810  PRINT "YOU CHEATED, BUT I'LL GIVE YOU ANOTHER CHANCE."
820  GOTO 300
850  REM *** THE COMPUTER WON
860  PRINT "I WON! BETTER LUCK NEXT TIME."
870  GOTO 900
880  REM *** THE HUMAN WON
890  PRINT "O.K. SO YOU WON (LUCKY) . . ."
900  REM *** PLAY AGAIN?
910  PRINT "DO YOU WANT TO PLAY AGAIN (YES OR NO)";
920  INPUT A$
930  IF A$[1,1]="Y" THEN 200
999  END 
