10 PRINT" THIS PROGRAM WILL PLAY CHECKERS. THE COMPUTER IS X," 20 PRINT"AND YOU ARE O. THE COMPUTER WILL GO FIRST,-NOTE: SQUARES" 30 PRINT"ARE IN THE FORM-(X,Y) AND SQ. 1,1 IS THE BOTTOM LEFT!" 40 PRINT"DO NOT ATTEMPT A DOUBLE JUMP OR YOUR PIECE MIGHT JUST " 50 PRINT"DISAPPEAR(SAME FOR A TRIPLE!)" 60 PRINT" WAIT FOR THE COMP. TO MOVE!!!!!" 70 LET G=-1 80 DIM R(50) 90 LET L=-1 100 DIM S(10,10) 110 DATA 1,0,1,0,0,0,-1,0,0,1,0,0,0,-1,0,-1,15 120 FOR X=1TO8 130 FOR Y=1TO8 140 READ J 150 IF J=15 THEN 180 160 LET S(X,Y)=J 170 GOTO 200 180 RESTORE 190 READ S(X,Y) 200 NEXT Y 210 NEXT X 220 REM 230LETL=-1*L 240 FOR X=1TO8 250 FOR Y=1TO8 260 IF S(X,Y)=0 THEN 350 270 IF G>0 THEN 300 280 IF S(X,Y)>0 THEN 350 290 GOTO 310 300 IF S(X,Y)<0 THEN 350 310 IF ABS(S(X,Y))<>1 THEN 330 320 GOSUB 430 330 IF ABS(S(X,Y))<>2 THEN 350 340 GOSUB 650 350IFX<>8 THEN 380 360IFL=1 THEN 380 370RETURN 380NEXT Y 390NEXT X 400PRINT 410GOSUB1140 420 GOTO 230 430 FOR A=-1TO1 STEP 2 440 LET U=X+A 450 LET V=Y+G 460 IF U<1 THEN 630 470 IF U>8 THEN 630 480 IF V<1 THEN 630 490 IF V>8 THEN 630 500 IF S(U,V)<>0 THEN 530 510 GOSUB 910 520 GOTO 630 530 IF S(U,V)=G THEN 630 540 IF S(U,V)=2*G THEN 630 550 LET U=U+A 560 LET V=V+G 570 IF U<1 THEN 630 580 IF U>8 THEN 630 590 IF V<1 THEN 630 600 IF V>8 THEN 630 610 IF S(U,V)<>0 THEN 630 620 GOSUB 910 630 NEXT A 640 RETURN 650 REM KING MOVES 660 FOR A=-1TO1 STEP 2 670 FOR B=-1TO1 STEP 2 680 LET U=X+A 690 LET V=Y+B 700 IF U<1 THEN 870 710 IF U>8 THEN 870 720 IF V<1 THEN 870 730 IF V>8 THEN870 740 IF S(U,V)<>0 THEN 770 750 GOSUB 910 760 GOTO 870 770 IF S(U,V)=G THEN 870 780 IF S(U,V)=2*G THEN 870 790 LET U=U+A 800 LET V=V+B 810 IF U<1 THEN 870 820 IF U>8 THEN 870 830 IF V<1 THEN 870 840 IF V>8 THEN 870 850 IF S(U,V)<>0 THEN 870 860 GOSUB 910 870 NEXT B 880 NEXT A 890 RETURN 900 GOTO 1420 910 REM 920 LET P=P+1 930 IF P=K THEN 1230 940IF V<>(4.5+(3.5*G)) THEN 960 950 LET Q=Q+2 960 IF X<>(4.5-(3.5*G)) THEN 980 970LET Q=Q-2 980 REM 990 IF U<>1 THEN 1010 1000 LET Q=Q+1 1010 IF U<>8 THEN 1030 1020 LET Q=Q+1 1030 FOR C=-1TO1 STEP 2 1040 IF S(U+C,V+G)<1 THEN 1080 1050 LET Q=Q-1 1060 IF S(U-C,V-G)<>0 THEN 1080 1070 LET Q=Q-1 1080 REM THIS WAS THE EVALUATION SECTION 1090 REM 1100 NEXT C 1110 LET R(P)=Q 1120 LETQ=0 1130 RETURN 1140 IF P=0 THEN 1880 1150 FOR J=10TO-10 STEP -1 1160 FOR F=1TOP 1170 IF R(F)=J THEN 1200 1180 NEXT F 1190 NEXT J 1200 LET K=F+P 1210 GOSUB 230 1220 RETURN 1230 PRINT" I MOVE FROM ("X;Y") TO ("U;V")" 1240 LET F=0 1250 LET P=0 1260 LET K=0 1270 IF V<>(4.5+(3.5*G)) THEN 1300 1280 LET S(U,V)=2*G 1290 GOTO 1310 1300 LET S(U,V)=S(X,Y) 1310 LET S(X,Y)=0 1320 IF ABS(X-U)<>2 THEN 1340 1330 LET S((X+U)/2,(Y+V)/2)=0 1340 PRINT"BOARD"; 1350 INPUT D$ 1360 IF D$<>"YES" THEN1390 1370 GOSUB 1410 1380 RETURN 1390 GOSUB 1580 1400 RETURN 1410 PRINT 1420 FOR Y=8TO1 STEP -1 1430 FOR X=1TO8 1440 LET I=2*X 1450 IF S(X,Y)<>0 THEN 1470 1460 PRINT TAB(I)"."; 1470 IF S(X,Y)<>1 THEN 1490 1480 PRINT TAB(I)"O"; 1490 IF S(X,Y)<>-1 THEN 1510 1500 PRINT TAB(I)"X"; 1510 IF S(X,Y)<>-2 THEN 1530 1520 PRINT TAB(I)"X*"; 1530 IF S(X,Y)<>2 THEN 1550 1540 PRINT TAB(I)"O*"; 1550 NEXT X 1560 PRINT 1570 NEXT Y 1580 PRINT 1590 PRINT"FROM"; 1600 INPUT E,H 1610 LET X=E 1620 LET Y=H 1630 IF S(X,Y)<>0 THEN 1670 1640 PRINT "THERE IS NO ONE OCCUPYING THAT SPACE" 1650 PRINT 1660 GOTO 1590 1670 PRINT"TO"; 1680 INPUT A,B 1690 LET X=A 1700 LET Y=B 1710 IF S(X,Y)=0 THEN 1750 1720 PRINT"THAT SPACE IS ALREADY OCCUPIED" 1730 PRINT 1740 GOTO 1670 1750 ' LET S(A$B)=S(E,H) 1760 LET S(A,B)=S(E,H) 1770 LET S(E,H)=0 1780 LET T=(4.5-(3.5*G)) 1790 IF ABS(E-A)<>2 THEN 1810 1800 LET S((E+A)/2,(H+B)/2)=0 1810 IF B<>T THEN 1830 1820 LET S(A,B)=-2*G 1830 FOR X=8TO8 1840 FOR Y=8TO8 1850 RETURN 1860 NEXT Y 1870 NEXT X 1880 PRINT" VERY GOOD, YOU WIN!" 1890 PRINT 1900 PRINT 1910 PRINT" -CHUCK OUT" 1920 END