Back to Main page.
Back to Main tapes page.
10  PRINT "THIS IS THE GAME OF NIM."
20  DIM A$[72],X[3],Y[3],Z[3]
30  A=A1=123
40  X[1]=1
50  X[2]=2
60  X[3]=3
70  PRINT "WOULD YOU LIKE TO GO FIRST";
80  INPUT A$
90  PRINT "STARTING POSITION:"A"[  ";
100  MAT Z=X
110  GOSUB 500
120  IF A$[1,1]="N" THEN 340
130  PRINT "YOUR MOVE: ";
140  ENTER -1,Q,A
150  Y[1]=INT(A/100)
160  Y[2]=INT(A/10)-(Y[1]*10)
170  Y[3]=A-(Y[1]*100)-(Y[2]*10)
180  FOR Q=1 TO 3
190  Z[Q]= NOT (X[Q]-Y[Q])
200  NEXT Q
210  IF A >= A1 THEN 250
220  IF Z[1] AND Z[2] AND  NOT Z[3] THEN 270
230  IF Z[1] AND Z[3] AND  NOT Z[2] THEN 270
240  IF Z[2] AND Z[3] AND  NOT Z[1] THEN 270
250  PRINT TAB(16)"ILLEGAL MOVE"
260  GOTO 130
270  RESTORE 
280  PRINT TAB(16)"[  ";
290  MAT Z=Y
300  GOSUB 500
310  IF A THEN 340
320  PRINT "YOU WIN"'7'7'7"  YOU LUCKY DOG!!!"
330  GOTO 450
340  IF TYP(0)=3 THEN 250
350  READ A2,A1
360  IF A2#A THEN 340
370  PRINT "MACHINE'S MOVE IS:"A1"[  ";
380  X[1]=INT(A1/100)
390  X[2]=INT(A1/10)-(X[1]*10)
400  X[3]=A1-(X[1]*100)-(X[2]*10)
410  MAT Z=X
420  GOSUB 500
430  IF A1 THEN 130
440  PRINT "MACHINE WINS,OF COURSE."
450  PRINT LIN(-1)"PLAY AGAIN ";
460  INPUT A$
470  PRINT 
480  IF A$[1,1]="Y" THEN 30
490  STOP 
500  FOR Q=1 TO 3
510  FOR Q1=1 TO Z[Q]
520  PRINT "X";
530  NEXT Q1
540  FOR Q1=Z[Q]+1 TO Q
550  PRINT "-";
560  NEXT Q1
570  PRINT "  ";
580  NEXT Q
590  PRINT "]"
600  RETURN 
610  DATA 1,0,2,0,3,0,10,0,11,1,12,11,13,11,20,0,21,11,22,21,23,22
620  DATA 100,0,101,1,102,101,103,101,110,10,111,110,112,110,113,110
630  DATA 120,110,121,101,122,22,123,23
640  END