5 DEF FNC$(Y,X)=CHR$(27)+CHR$(61)+CHR$(32+Y)+CHR$(32+X) 10 PRINT CHR$(26);TAB(32);"CHECKERS" 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 40 PRINT "THIS IS THE GAME OF CHECKERS. THE COMPUTER IS X," 50 PRINT "AND YOU ARE O. THE COMPUTER WILL MOVE FIRST." 60 PRINT "SQUARES ARE REFERRED TO BY A COORDINATE SYSTEM." 70 PRINT "(0,0) IS THE LOWER LEFT CORNER" 80 PRINT "(0,7) IS THE UPPER LEFT CORNER" 90 PRINT "(7,0) IS THE LOWER RIGHT CORNER" 100 PRINT "(7,7) IS THE UPPER RIGHT CORNER" 110 PRINT "THE COMPUTER WILL TYPE '+TO' WHEN YOU HAVE ANOTHER" 120 PRINT "JUMP. TYPE '9' AND '9' IF YOU CANNOT JUMP." 130 PRINT:PRINT:PRINT:FOR I=1 TO 1000:NEXT 180 DIM R(4),S(7,7):G=-1:R(0)=-99 190 DATA 1,0,1,0,0,0,-1,0,0,1,0,0,0,-1,0,-1,15 200 FOR X=0 TO 7:FOR Y=0 TO 7:READ J:IF J=15 THEN 220 210 S(X,Y)=J:GOTO 230 220 RESTORE:READ S(X,Y) 230 NEXT Y,X 240 FOR X=0 TO 7:FOR Y=0 TO 7:IF S(X,Y)>-1 THEN 270 250 IF S(X,Y)=-1 THEN FOR A=-1 TO 1 STEP 2:B=G:GOSUB 280:NEXT A 260 IF S(X,Y)=-2 THEN FOR A=-1 TO 1 STEP 2:FOR B=-1 TO 1 STEP 2:GOSUB 280: NEXT B,A 270 NEXT Y,X:GOTO 440 280 U=X+A:V=Y+B:IF U<0 OR U>7 OR V<0 OR V>7 THEN 330 290 IF S(U,V)=0 THEN GOSUB 340:GOTO 330 300 IF S(U,V)<0 THEN 330 310 U=U+A:V=V+B:IF U<0 OR V<0 OR U>7 OR V>7 THEN 330 320 IF S(U,V)=0 THEN GOSUB 340 330 RETURN 340 IF V=0 AND S(X,Y)=-1 THEN Q=Q+2 350 IF ABS(Y-V)=2 THEN Q=Q+5 360 IF Y=7 THEN Q=Q-2 370 IF U=0 OR U=7 THEN Q=Q+1 380 FOR C=-1 TO 1 STEP 2:IF U+C<0 OR U+C>7 OR V+G<0 THEN 420 390 IF S(U+C,V+G)<0 THEN Q=Q+1:GOTO 420 400 IF U-C<0 OR U-C>7 OR V-G>7 THEN 420 410 IF S(U+C,V+G)>0 AND (S(U-C,V-G)=0 OR (U-C=X AND V-G=Y)) THEN Q=Q-2 420 NEXT C:IF Q>R(0) THEN R(0)=Q:R(1)=X:R(2)=Y:R(3)=U:R(4)=V 430 Q=0:RETURN 440 IF R(0)=-99 THEN 990 450 PRINT CHR$(26):PRINT FNC$(12,0);"COMPUTER: FROM";R(1);R(2);" TO";R(3);R(4) 460 R(0)=-99 470 IF R(4)=0 THEN S(R(3),R(4))=-2:GOTO 490 480 S(R(3),R(4))=S(R(1),R(2)) 490 S(R(1),R(2))=0:IF ABS(R(1)-R(3))<>2 THEN 590 500 S((R(1)+R(3))/2,(R(2)+R(4))/2)=0 510 X=R(3):Y=R(4):IF S(X,Y)=-1 THEN B=-2:FOR A=-2 TO 2 STEP 4 520 GOSUB 560:NEXT A 530 IF S(X,Y)=-2 THEN FOR A=-2 TO 2 STEP 4:FOR B=-2 TO 2 STEP 4:GOSUB 560:NEXT B:NEXT A 540 IF R(0)<>-99 THEN PRINT "TO";R(3);R(4);:R(0)=-99:GOTO 470 550 GOTO 590 560 U=X+A:V=Y+B:IF U<0 OR U>7 OR V<0 OR V>7 THEN 580 570 IF S(U,V)=0 AND S(X+A/2,Y+B/2)>0 THEN GOSUB 340 580 RETURN 590 REM *** PRINT BOARD *** 600 PRINT FNC$(0,0);"":FOR Y=7 TO 0 STEP -1:PRINT Y; 610 FOR X=0 TO 7:PRINT TAB(8+5*X); 620 IF S(X,Y)=0 THEN PRINT "."; 630 IF S(X,Y)=1 THEN PRINT "O"; 640 IF S(X,Y)=-1 THEN PRINT "X"; 650 IF S(X,Y)=-2 THEN PRINT "X*"; 660 IF S(X,Y)=2 THEN PRINT "O*"; 670 NEXT X:PRINT:NEXT Y 680 PRINT 690 FOR ZR=0 TO 7:PRINT TAB(7+5*ZR);ZR;:NEXT ZR:PRINT 700 FOR L=0 TO 7 710 FOR M=0 TO 7 720 IF S(L,M)=1 OR S(L,M)=2 THEN Z=1 730 IF S(L,M)=-1 OR S(L,M)=-2 THEN T=1 740 NEXT M 750 NEXT L 760 IF Z<>1 THEN 980 770 IF T<>1 THEN 990 780 T=0:Z=0 790 PRINT FNC$(13,0);"YOU: FROM ";:GOTO 810 800 A$=INKEY$:IF A$="" THEN 800 ELSE RETURN 810 GOSUB 800:PRINT A$;" ";:E=VAL(A$):GOSUB 800:H=VAL(A$) 820 IF E>7 OR E<0 OR H>7 OR H<0 THEN 790 830 PRINT A$;" ";:IF S(E,H)<=0 THEN 790 840 PRINT "TO ";:GOSUB 800:A=VAL(A$):PRINT A$;" ";:GOSUB 800 850 B=VAL(A$):PRINT A$;" ";:X=A:Y=B 860 IF X>7 OR X<0 OR Y>7 OR Y<0 THEN 790 870 IF S(X,Y)=0 AND ABS(A-E)<=2 AND ABS(A-E)=ABS(B-H) THEN 890 880 GOTO 790 890 I=46 900 S(A,B)=S(E,H):S(E,H)=0:IF ABS(E-A)<>2 THEN 960 910 S((E+A)/2,(B+H)/2)=0 920 PRINT "+TO ";:GOSUB 800:A1=VAL(A$):PRINT A$;" ";:GOSUB 800 930 B1=VAL(A$):PRINT A$;" ";:IF A1=9 THEN 960 940 IF S(A1,B1)<>0 OR ABS(A1-A)<>2 OR ABS(B1-B)<>2 THEN 920 950 E=A:H=B:A=A1:B=B1:I=I+15:GOTO 900 960 IF B=7 THEN S(A,B)=2 970 GOTO 240 980 PRINT FNC$(20,0);"I WIN":CHAIN "BASICGAM" 990 PRINT FNC$(20,0);"YOU WIN":CHAIN "BASICGAM" 7 THEN S(A,B)=2 970 GOTO 240 980 PRINT FNC$(20,0);"I WIN":CHAIN "BASICGAM" 990 PRI