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