10  REM  *****  BATNUM  *****  DEMONSTRATION PROGRAM  *****
20  REM  *****  VERSION 1  *****  7/31/69  *****
30  REM  PLAYS BATTLE OF THE NUMBERS
40  PRINT "THIS PROGRAM PLAYS 'THE BATTLE OF NUMBERS.'"
50  PRINT 
60  PRINT "INSTUCTIONS";
70  DIM A$[72]
80  INPUT A$
90  IF A$[1,1]="N" THEN 190
100  PRINT "THE GAME IS PLAYED WITH A PILE OF OBJECTS, SOME OF"
110  PRINT "WHICH ARE REMOVED ALTERNATELY BY YOU AND THE MACHINE."
120  PRINT "YOU MUST SPECIFY WHETHER WINNING IS DEFINED AS TAKING"
130  PRINT "OR NOT TAKING THE LAST OBJECT, THE ORIGINAL NUMBER OF"
140  PRINT "OBJECTS IN THE PILE, WHO GOES FIRST, AND THE MINIMUM"
150  PRINT "AND MAXIMUM NUMBER OF OBJECTS WHICH CAN BE REMOVED AT"
160  PRINT "ONE TIME.  TYPING '0' FOR YOUR MOVE WILL CAUSE A"
170  PRINT "FORFEIT, AND TYPING '0' FOR THE PILE SIZE WILL CAUSE"
180  PRINT "THE TERMINATION OF THE GAME."
190  PRINT "ENTER PILE SIZE: ";
200  INPUT N
210  IF N=0 THEN 1030
220  IF N=INT(N) THEN 240
230  GOTO 190
240  IF N<1 THEN 190
250  PRINT "ENTER WIN OPTION - 1 TO TAKE LAST, 2 TO AVOID LAST: ";
260  INPUT M
270  IF M=1 THEN 300
280  IF M=2 THEN 300
290  GOTO 250
300  PRINT "ENTER MIN AND MAX: ";
310  INPUT A,B
320  IF A>B THEN 300
330  IF A<1 THEN 300
340  IF A=INT(A) THEN 360
350  GOTO 300
360  IF B=INT(B) THEN 380
370  GOTO 300
380  PRINT "ENTER START OPTION - 1 MACHINE FIRST, 2 YOU FIRST: ";
390  INPUT S
400  IF S=1 THEN 430
410  IF S=2 THEN 430
420  GOTO 380
430  LET C=A+B
440  IF S=2 THEN 470
450  GOSUB 500
460  IF W=1 THEN 190
470  GOSUB 710
480  IF W=1 THEN 190
490  GOTO 450
500  LET Q=N
510  IF M=1 THEN 530
520  LET Q=Q-1
530  IF M=1 THEN 580
540  IF N>A THEN 620
550  LET W=1
560  PRINT "MACHINE TAKES";N;"AND LOSES"
570  RETURN 
580  IF N>B THEN 620
590  LET W=1
600  PRINT "MACHINE TAKES";N;"AND WINS"
610  RETURN 
620  LET P=Q-C*INT(Q/C)
630  IF P >= A THEN 650
640  LET P=A
650  IF P <= B THEN 670
660  LET P=B
670  LET N=N-P
680  PRINT "MACHINE TAKES";P;"AND LEAVES";N
690  LET W=0
700  RETURN 
710  PRINT "YOUR MOVE: ";
720  INPUT P
730  IF P=0 THEN 750
740  GOTO 780
750  PRINT "MACHINE WINS BY FORFEIT"
760  LET W=1
770  RETURN 
780  IF P=INT(P) THEN 800
790  GOTO 840
800  IF P >= A THEN 830
810  IF P=N THEN 890
820  GOTO 840
830  IF P <= B THEN 860
840  PRINT "ILLEGAL MOVE, REENTER IT: ";
850  GOTO 720
860  LET N=N-P
870  IF N=0 THEN 890
880  GOTO 960
890  IF M=1 THEN 930
900  PRINT "YOU LOSE"
910  LET W=1
920  RETURN 
930  PRINT "YOU WIN"
940  LET W=1
950  RETURN 
960  IF N >= 0 THEN 990
970  LET N=N+P
980  GOTO 840
990  LET W=0
1000  RETURN 
1030  END 
