CHECKERS game.
Code: Select all
5 PRINTCHR$(30);:PRINT:PRINTTAB(32);"CHECKERS"
10 PRINTTAB(15);"CREATIVE COMPUTING MORRISTOUN, NEW JERSEY":PRINT:PRINT
20 PRINT"THIS IS THE GAME Of CHECKERS. THE COMPUTER IS X,"
25 PRINT"AND YOU ARE O. THE COMPUTER WILL MOVE FIRST."
30 PRINT"SQUARES ARE REFERRED TO BY A COORDINATE SYSTEM"
35 PRINT"(0,0) IS THE LOWER LEFT CORNER":PRINT"(0,7) IS THE UPPER LEFT CORNER"
45 PRINT"(7,0) IS THE LOVER RIGHT CORNER":PRINT"(7,7) IS THE UPPER RIGHT CORNER"
55 PRINT"THE COMPUTER WILL TYPE '+TO' WHEN YOU HAVE ANOTHER":PRINT"JUMP. TYPE TWO NEGATIVE NUMBERS IF YOU CANNOT JUMP."
65 PRINT:DIM R(4),S(7,7):G=-1:R(0)=-99
90 DATA 1,0,1,0,0,0,-1,0,0,1,0,0,0,-1,0,-1,15
120 FORX=0TO7:FORY=0TO7:READJ:IFJ=15THEN180
160 S(X,Y)=J:GOTO200
180 RESTORE:READS(X,Y)
200 NEXTY,X
230 FORX=0TO7:FORY=0TO7:IFS(X,Y)>-1THEN350
310 IFS(X,Y)=-1THENFORA=-1TO1STEP2:B=G:GOSUB650:NEXTA
330 IFS(X,Y)=-2THENFORA=-1TO1STEP2:FORB=-1TO1STEP2:GOSUB650:NEXTB,A
350 NEXTY,X:GOTO1140
650 U=X+A:V=Y+B:IFU<0ORU>7ORV<0ORV>7THEN870
740 IFS(U,V)=0THENGOSUB910:GOTO870
770 IFS(U,V)<0THEN870
790 U=U+A:V=V+B:IFU<0ORV<0ORU>7ORV>7THEN870
850 IFS(U,V)=0THENGOSUB910
870 RETURN
910 IFV=0ANDS(X,Y)=-1THENQ=Q+2
920 IFABS(Y-V)=2THENQ=Q+5
960 IFY=7THENQ=Q-2
980 IFU=0ORU=7 THENQ=Q+1
1030 FORC=-1TO1STEP2:IFU+C<0ORU+C>7ORV+G<0THENGOTO 1080
1035 IFS(U+C,V+G)<0THENQ=Q+1:GOTO1080
1040 IFU-C<0ORU-C>7ORV-G>7THEN1080
1045 IFS(U+C,V+G)>0AND(S(U-C,V-G)=0OR(U-C=XANDV-G=Y))THENQ=Q-2
1080 NEXTC:IFQ>R(0)THENR(0)=Q:R(1)=X:R(2)=1:R(3)=U:R(4)=V
1100 Q=0:RETURN
1140 IF R(0)=-99 THEN1880
1230 PRINTCHR$(30)"FROM"R(1);R(2)"TO"R(3);R(4);:R(0)=-99
1240 IFR(4)=0THENS(R(3),R(4))=-2:GOTO1420
1250 S(R(3),R(4))=S(R(1),R(2))
1310 S(R(1),R(2))=0:IFABS(R(1)-R(3))<>2THEN1420
1330 S((R(1)+R(3))/2,(R(2)+R(4))/2)=0
1340 X=R(3):Y=R(4):IFS(X,Y)=-1THENB=-2:FORA=-2TO2STEP4:GOSUB1370
1350 IFS(X,Y)=-2THENFORA=-2TO2STEP4:FORB=-2TO2STEP4:GOSUB1370:NEXTB
1360 NEXTA:IFR(0)<>-99THENPRINT"TO"R(3);R(4);:R(0)=-99:GOTO1240
1365 GOTO1420
1370 U=X+A:V=Y+B:IFU<0ORU>7ORV<0ORV>7THEN1400
1380 IFS(U,V)=0ANDS(X+A/2,Y+B/2)>0THENGOSUB910
1400 RETURN
1420 PRINT:PRINT:PRINT:FORY=7TO0STEP-1:FORX=0TO7:I=5*X:PRINTTAB(I);
1430 IFS(X,Y)= 0THENPRINT".";
1470 IFS(X,Y)= 1THENPRINT"O";
1490 IFS(X,Y)=-1THENPRINT"X";
1510 IFS(X,Y)=-2THENPRINT"X*";
1530 IFS(X,Y)= 2THENPRINT"O*";
1550 NEXTX:PRINT" ":PRINT:NEXTY:PRINT
1552 FORL=0TO7
1554 FORN=0TO7
1556 IFS(L,N)=1ORS(L,N)=2THENZ=1
1558 IFS(L,N)=-1ORS(L,N)=-2THENT=1
1560 NEXTN
1562 NEXTL
1564 IF Z<>1 THEN1880
1566 IF T<>1 THEN1885
1570 T=0:Z=0
1590 INPUT"FROM";E,H:X=E:Y=H:IFS(X,Y)<=0THEN1590
1670 INPUT"TO";A,B:X=A:Y=B
1680 IFS(X,Y)=0ANDABS(A-E)<=2ANDABS(A-E)=ABS(B-H)THEN1700
1690 PRINTCHR$(7)CHR$(11);:GOTO1670
1700 I=46
1750 S(A,B)=S(E,H):S(E,H)=0:IFABS(E-A)<>2THEN1810
1800 S((E+A)/2,(H+B)/2)=0
1802 INPUT"+TO";A1,B1:IF A1<0 THEN1810
1804 IFS(A1,B1)<>0ORABS(A1-A)<>2ORABS(B1-B)<>2THEN1802
1806 E=A:H=B:A=A1:B=B1:I=I+15:GOTO1750
1810 IFB=7THENS(A,B)=2
1830 GOTO230
1880 PRINT:PRINT"I WIN.":END
1885 PRINT:PRINT"YOU WIN.":END