10  REM *****ZEROS MATH GAME****************************
20  REM *****MARCH 1971**********D. RESEK + P. ROWE*****
25  REM *** MODIFIED 'SLIGHTLY' BY PEOPLE'S COMPUTER COMPANY, MENLO PARK, CA
30  DIM A$[10],X$[38],M[20],P[20]
40  X$="-* 1 2 3 4 5 6 7 8 9101112131415161718"
60  T=255
70  PRINT "RULES";
80  INPUT A$
90  IF A$[1,1]#"Y" THEN 210
100  PRINT '10"WE START WITH A BOARD LIKE THIS:"
110  PRINT '10;TAB(14);"1  2  3  4  5  6  7"
120  PRINT TAB(12);"O  O  O  O  O  O  O  O"
130  PRINT '10"YOU AND I TAKE TURNS.  WE CHOOSE ONE OF THE NUMBERS AND I"
140  PRINT "DRAW A BRIDGE BETWEEN THE TWO  O'S  BELOW THAT NUMBER."
150  PRINT "ONCE AN  O  HAS BEEN USED FOR A BRIDGE, IT CAN'T BE USED AGAIN."
160  PRINT '10"FOR INSTANCE, IF YOU CHOOSE THE NUMBER 3,"
170  PRINT '10;TAB(14);"1  2  3  4  5  6  7"
180  PRINT TAB(12);"O  O  O  O  O  O  O  O"'13"?3";TAB(18);"----"
190  PRINT '10"THEN I CAN'T CHOOSE NUMBERS 2 OR 4."
200  PRINT '10"THE WINNER IS THE LAST PERSON WHO CAN DRAW A BRIDGE."'10
202  PRINT "P.S. IF YOU WANT ME TO GO FIRST, PRESS THE 'RETURN' KEY"
204  PRINT "FOR YOUR FIRST MOVE."
206  PRINT 
208  PRINT "HERE WE GO ..."
210  N=7
220  MAT M=ZER
230  GOSUB 990
240  GOSUB 1080
250  I=-1.7145
260  GOTO 330
270  I=INT((N+1)/2)
280  M[I]=2
290  GOSUB 1320
300  GOSUB 1160
310  IF F THEN 820
320  PRINT 
330  PRINT "?";
340  ENTER T,C,I
350  IF I=-1.7145 THEN 270
360  I1=I
370  IF I<1 OR I>N OR I#INT(I) THEN 1410
380  GOSUB 1320
390  IF F THEN 1430
400  GOSUB 1080
410  I=I1
420  M[I]=1
430  GOSUB 1140
440  IF F THEN 840
450  I=K=F=0
460  MAT A=ZER
470  I=I+1
480  IF I>N THEN 590
490  IF P[I]=0 THEN 470
500  K=K+1
510  A[K]=A[K]+1
520  F=F MAX A[K]
530  IF F#A[K] THEN 550
540  H=K
550  I=I+1
560  IF I>N THEN 590
570  IF P[I]=0 THEN 470
580  GOTO 510
590  IF K/2=INT(K/2) THEN 680
600  I=K=0
610  I=I+1
620  IF P[I]=0 THEN 610
630  K=K+1
640  IF H=K THEN 750
650  I=I+1
660  IF P[I]=0 THEN 610
670  GOTO 650
680  IF F#3 AND F#5 THEN 710
690  F=F-2
700  GOTO 600
710  FOR I=1 TO N
720  IF P[I]#0 THEN 740
730  NEXT I
740  F=2
750  I=I+INT((F-1)/2)
760  GOSUB 1320
770  M[I]=2
780  GOSUB 1160
790  IF F THEN 820
800  PRINT 
810  GOTO 330
820  PRINT '13'10'10"I WIN"
830  GOTO 900
840  GOSUB 1160
850  PRINT '10'10'7'7'7'7'7'7'7"YOU WIN"
860  GOTO 900
890  PRINT "YOU LOSE"
900  PRINT 
910  PRINT "AGAIN (YES OR NO)";
920  INPUT A$
930  IF A$[1,1]="N" THEN 1460
940  PRINT "HOW MANY NUMBERS";
945  INPUT N
950  N=INT(N)
955  IF (N >= 1) AND (N <= 18) THEN 220
960  PRINT "I CAN ONLY PLAY WITH BOARDS OF 1 TO 18 NUMBERS"
965  GOTO 940
990  FOR I=1 TO N
1000  P[I]=I
1010  NEXT I
1020  PRINT '10;TAB(13);
1030  FOR I=1 TO N
1040  PRINT " ";X$[2*I+1,2*I+2];
1050  NEXT I
1060  PRINT 
1070  RETURN 
1080  PRINT TAB(11);
1090  FOR I=1 TO N+1
1100  PRINT "  O";
1110  NEXT I
1120  PRINT '13;
1130  RETURN 
1140  PRINT '13;TAB(3*I+10);"----";
1150  GOTO 1250
1160  PRINT '13;
1170  FOR I=1 TO N
1180  IF M[I]=0 THEN 1230
1190  PRINT TAB(3*I+10);
1200  FOR J=1 TO 4
1210  PRINT X$[M[I],M[I]];
1220  NEXT J
1230  NEXT I
1240  PRINT '13;
1250  F=J=0
1260  FOR I=1 TO N
1270  J=J+P[I]
1280  NEXT I
1290  IF J THEN 1310
1300  F=1
1310  RETURN 
1320  F=0
1330  FOR J=1 TO N
1340  IF I=P[J] THEN 1370
1350  NEXT J
1360  GOTO 1300
1370  P[J]=P[J+1]=0
1380  IF J=1 THEN 1400
1390  P[J-1]=0
1400  RETURN 
1410  PRINT '10'10"USE THE BOARD NUMBERS"'10
1420  GOTO 330
1430  PRINT '10"ILLEGAL MOVE"
1440  GOTO 890
1460  END 
