10 REM CHECK.ECB 15 PRINT "I CAN PLAY CHECKERS WITH YOU. I AM 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 ON YOUR PIECE MIGHT JUST " 50 PRINT "DISAPPEAR(SAME FOR A TRIPLE!)" 60 PRINT " WAIT FOR THE COMP. TO MOVE!!!!!" 70 LET G=-1 75 LET L=-1 80 DIM R(50),M(50) 85 REM&I&IODD(X) 90 DEF FND(X)=X-2*INT(X/2) 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=1 TO 8 130 FOR Y=1 TO 8 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 225 LET L=1 230 REM 240 FOR X2=1 TO 8 250 FOR Y2=1 TO 8 255 LET S9=S(X2,Y2) 260 IF S9>=0 THEN 380 310 IF S9=-2 THEN 340 320 GOSUB 430 330 GOTO 380 340 GOSUB 650 380 NEXT Y2 390 NEXT X2 393 IF L=1 THEN 400 396 RETURN 400 PRINT 410 GOSUB 1140 420 GOTO 220 430 REM 435 LET U=X2-1 450 IF U<1 THEN 540 460 REM 470 LET V=Y2-1 480 IF V<1 THEN 625 485 IF S(U,V)<>0 THEN 500 490 GOSUB 910 500 IF S(U,V)<=0 THEN 540 505 LET U=X2-2 507 IF U<1 THEN 540 510 LET V=V-1 520 IF V<1 THEN 540 525 IF S(U,V)<>0 THEN 540 530 GOSUB 910 540 REM 550 LET U=X2+1 560 IF U>8 THEN 630 570 REM 580 LET V=Y2-1 583 IF V<1 THEN 630 587 IF S(U,V)<>0 THEN 600 590 GOSUB 910 600 IF S(U,V)<=0 THEN 630 605 LET U=X2+2 607 IF U>8 THEN 630 610 LET V=V-1 615 IF V<1 THEN 630 617 IF S(U,V)<>0 THEN 630 620 GOSUB 910 625 REMWHERE DID I GO ?? 630 RETURN 650 REMKING MOVES 660 FOR A=-1 TO 1 STEP 2 670 FOR B=-1 TO 1 STEP 2 680 LET U=X2+A 690 LET V=Y2+B 700 IF U<1 THEN 870 710 IF U>8 THEN 870 720 IF V<1 THEN 870 730 IF V>8 THEN 870 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 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 REM 910 REM&I&IEVAL. SECTION 920 LET P=P+1 940 IF V<>1 THEN 960 950 LET Q=Q+2 960 IF V<>8 THEN 980 970 LET 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=-1 TO 1 STEP 2 1033 IF U+C<1 THEN 1060 1037 IF U+C>8 THEN 1060 1040 IF S(U+C,V+G)<1 THEN 1060 1050 LET Q=Q-1 1060 REM 1062 IF U-C>8 THEN 1100 1063 IF U-C<1 THEN 1100 1064 IF S(U-C,V-G)<1 THEN 1080 1070 LET Q=Q+5 1080 REM 1090 REM 1100 NEXT C 1110 LET R(P)=Q 1112 LET M(P)=X2*10+Y2+V/10+U/100 1120 LET Q=0 1130 RETURN 1140 IF P=0 THEN 1880 1150 LET J1=-10 1155 LET J2=1 1160 FOR F=1 TO P 1170 IF R(F)<=J1 THEN 1180 1172 LET J1=R(F) 1174 LET J2=F 1180 NEXT F 1200 LET X2=INT(M(J2)/10) 1210 LET Y2=INT(M(J2)-X2*10) 1220 LET V=INT((M(J2)-INT(M(J2)))*10) 1230 LET U=INT((M(J2)-X2*10-Y2-V/10)*100+.5) 1235 PRINT "I MOVE FROM ";X2;Y2,"TO ";U;V 1240 LET F=0 1245 LET P2=P 1250 LET P=0 1260 LET K=0 1270 IF V<>1 THEN 1300 1280 LET S(U,V)=2*G 1290 GOTO 1310 1300 LET S(U,V)=S(X2,Y2) 1310 LET S(X2,Y2)=0 1320 IF ABS(X2-U)<>2 THEN 1340 1330 LET S((X2+U)/2,(Y2+V)/2)=0 1340 GOTO 1370 1345 PRINT "BOARD"; 1350 INPUT D 1360 IF D=0 THEN 1390 1370 GOSUB 1410 1375 IF F9=0 THEN PRINT "GEE - I WIN, THANKS FOR THE GAME": STOP 1390 GOSUB 1580 1400 RETURN 1410 PRINT 1415 LET F9=0: REM...COUNT PLAYER'S PIECES 1420 FOR Y=8 TO 1 STEP -1 1425 PRINT " ";Y; 1430 FOR X=1 TO 8 1435 LET X9=S(X,Y) 1438 IF FND(X)=FND(Y) THEN 1450 1442 PRINT " "; 1448 GOTO 1550 1450 IF S(X,Y)<>0 THEN 1470 1460 PRINT ". "; 1465 GOTO 1550 1470 IF ABS(X9)=2 THEN 1510 1475 IF X9=-1 THEN 1500 1480 PRINT "O "; 1485 LET F9=1 1490 GOTO 1550 1500 PRINT "X "; 1505 GOTO 1550 1510 IF S(X,Y)<>-2 THEN 1530 1520 PRINT "X*"; 1525 GOTO 1550 1530 REM 1540 PRINT "O*"; 1545 LET F9=1 1550 NEXT X 1560 PRINT 1570 NEXT Y 1573 PRINT " 1.2.3.4.5.6.7.8." 1575 RETURN 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 OCCUPING 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 1742 1720 PRINT "THAT SPACE IS ALREADY OCCUPIED" 1730 PRINT 1740 GOTO 1590 1742 IF ABS(E-A)=ABS(H-B) THEN 1746 1744 PRINT "ILLEGAL MOVE": GOTO 1590 1746 IF ABS(E-A)>2 OR (ABS(E-A)=2 AND S((E+A)/2,(H+B)/2)=0) THEN 1744 1750 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 REM 1850 RETURN 1880 PRINT " VERY GOOD, YOU WIN!" 1890 PRINT 1900 PRINT 1920 END 2000 FOR F=1 TO P2 2010 PRINT R(F);M(F), 2015 NEXT F 2020 STOP 3000 GOSUB 1410 3010 GOTO 1580 3020 END