10 REM BATNM.ECB 100 REM ========= LAST MOD. 8/3/77 R.E.H. 110 PRINT "&K&J&J" 120 REM DESCRIPTION--THE PROGRAM PLAYS A GAME BASED ON THE GAME OF "NIM". 130 REM THE USER INPUTS SUCH PARAMETERS AS PILE SIZE AND MINIMUM AND 140 REM MAXIMUM DRAW AND THEN PLAYS AGAINST THE COMPUTER. 150 PRINT 160 PRINT TAB(10);"B*B*B*B*B*B*B*B*B*B*B*B" 170 PRINT TAB(10);"B*B B A T N U M B*B" 180 PRINT TAB(10);"B*B*B*B*B*B*B*B*B*B*B*B" 190 PRINT 200 PRINT " THIS IS A 'BATTLE-OF-NUMBERS' GAME WITH" 210 PRINT " THE COMPUTOR FOR YOUR OPPONENT." 220 PRINT " THE GAME STARTS WITH AN ASSUMED PILE" 230 PRINT " OF OBJECTS. YOU AND YOUR OPPONENT ALTERNATLY" 240 PRINT " REM OVE OBJECTS FROM THE PILE. WINNING IS" 250 PRINT " DEFINED IN ADVANCE AS TAKING THE LAST OBJECT" 260 PRINT " OR NOT. YOU CAN ALSO SPECIFY SOME OTHER" 270 PRINT " BEGINNING CONDITIONS. DON'T USE ZERO," 280 PRINT " HOWEVER, IN PLAYING THE GAME." 290 PRINT 300 GOTO 420 310 PRINT 320 PRINT 330 PRINT " WOULD YOU LIKE TO PLAY AGAIN ---=>"; 340 INPUT A$ 350 IF A$="YES" THEN 390 355 IF A$="Y" THEN 390 360 IF A$="NO" THEN 1190 365 IF A$="N" THEN 1190 370 PRINT " THE COMPUTER INTERPRETS YOUR ANSWER AS 'NO'." 380 GOTO 1190 390 FOR X=1 TO 5 400 PRINT 410 NEXT X 420 PRINT " ENTER PILE SIZE:"; 430 INPUT N 440 IF N<>0 THEN 460 450 GOTO 420 460 IF N<>INT(N) THEN 310 470 IF N<1 THEN 310 480 PRINT " ENTER WIN OPTION :" 490 PRINT " 1 TO TAKE LAST, 2 TO AVOID LAST: "; 500 INPUT M 510 IF M=1 THEN 530 520 IF M<>2 THEN 480 530 PRINT " ENTER MIN AND MAX: "; 540 INPUT A,B 550 IF A>B THEN 530 560 IF A<1 THEN 530 570 IF A<>INT(A) THEN 530 580 IF B<>INT(B) THEN 530 590 PRINT " ENTER START OPTION :" 600 PRINT " 1 COMPUTER FIRST, 2 YOU FIRST:"; 610 INPUT S 620 IF S=1 THEN 640 630 IF S<>2 THEN 590 640 LET C=A+B 650 IF S=2 THEN 680 660 GOSUB 710 670 IF W=1 THEN 310 680 GOSUB 920 690 IF W=1 THEN 310 700 GOTO 660 710 LET Q=N 720 IF M=1 THEN 740 730 LET Q=Q-1 740 IF M=1 THEN 790 750 IF N>A THEN 830 760 LET W=1 770 PRINT " COMPUTER TAKES";N;" AND LOSES." 780 RETURN 790 IF N>B THEN 830 800 LET W=1 810 PRINT " COMPUTER TAKES";N;" AND WINS." 820 RETURN 830 LET P=Q-C*INT(Q/C) 840 IF P>=A THEN 860 850 LET P=A 860 IF P<=B THEN 880 870 LET P=B 880 LET N=N-P 890 PRINT " COMPUTER TAKES";P;" AND LEAVES";N 900 LET W=0 905 PRINT 910 RETURN 920 PRINT " YOUR MOVE: "; 930 INPUT P 940 IF P<>0 THEN 990 950 PRINT " I TOLD YOU NOT TO USE ZERO......" 960 PRINT " ..................COMPUTER WINS BY FORFEIT." 970 LET W=1 980 RETURN 990 IF P<>INT(P) THEN 1020 1000 IF P0 THEN 1140 1070 IF M=1 THEN 1110 1080 PRINT " TOUGH LUCK, YOU LOSE." 1090 LET W=1 1100 RETURN 1110 PRINT " CONGRATULATIONS, YOU WIN." 1120 LET W=1 1130 RETURN 1140 IF N>=0 THEN 1170 1150 LET N=N+P 1160 GOTO 1020 1170 LET W=0 1180 RETURN 1190 END