Listing of file='CKERS.BAS;01' on disk='vmedia/chip_8-sector.ccvf'
0 PLOT 6,2,29,14,12,27,24 5 PRINT TAB( 23)"C H E C K E R S":PRINT :PLOT 15 10 PRINT TAB( 15)"CREATIVE COMPUTING, MORRISTOWN, NJ" 20 PRINT :PRINT 30 PRINT TAB( 19)"(GRAPHICS BY D.B. SUITS)":REM MARCH, 13 A.L. 50 PRINT :PRINT :PRINT :PRINT 55 PRINT " WHENEVER YOU JUMP A PIECE, I'LL ASK YOU IF YOU CAN MAKE" 57 PRINT 60 PRINT " ANOTHER JUMP. IF YOU CAN'T, ENTER A NEGATIVE NUMBER OR" 62 PRINT :PRINT " JUST PRESS RETURN." 65 PLOT 10,10:PRINT TAB( 19);:INPUT "NOW PRESS RETURN TO BEGIN ";A$ 80 DIM R(4),S(7,7) 82 GOSUB 9000:PLOT 18,3,0,30:PRINT "TYPE 'END'":PRINT "TO END" 85 PLOT 3,64,0:NC= 12:G= - 1:R(0)= - 99:RESTORE 90 90 DATA 1,0,1,0,0,0,-1,0,0,1,0,0,0,-1,0,-1,15 120 FOR X= 0TO 7:FOR Y= 0TO 7:READ J:IF J= 15GOTO 180 160 S(X,Y)= J:GOTO 200 180 RESTORE :READ S(X,Y) 200 NEXT Y,X 210 IF A$< > "N"THEN 1580 225 PLOT 6,2,3,0,13:PRINT "MY TURN ":PLOT 3,64,0 230 FOR X= 0TO 7:FOR Y= 0TO 7:IF S(X,Y)> - 1THEN 350 310 IF S(X,Y)= - 1THEN FOR A= - 1TO 1STEP 2:B= G:GOSUB 650:NEXT A 330 IF S(X,Y)= - 2THEN FOR A= - 1TO 1STEP 2:FOR B= - 1TO 1STEP 2:GOSUB 650:NEXT B,A 350 NEXT Y,X:GOTO 1140 650 U= X+ A:V= Y+ B:IF U< 0OR U> 7OR V< 0OR V> 7GOTO 870 740 IF S(U,V)= 0THEN GOSUB 910:GOTO 870 770 IF S(U,V)< 0GOTO 870 790 U= U+ A:V= V+ B:IF U< 0OR V< 0OR U> 7OR V> 7GOTO 870 850 IF S(U,V)= 0THEN GOSUB 910 870 RETURN 910 IF V= 0AND S(X,Y)= - 1THEN Q= Q+ 2 920 IF ABS (Y- V)= 2THEN Q= Q+ 5 960 IF Y= 7THEN Q= Q- 2 980 IF Y= 0OR U= 7THEN Q= Q+ 1 1030 FOR C= - 1TO 1STEP 2:IF U+ C< 0OR U+ C> 7OR V+ G< 0GOTO 1080 1035 IF S(U+ C,V+ G)< 0THEN Q= Q+ 1:GOTO 1080 1040 IF U- C< 0OR U- C> 7OR V- G> 7GOTO 1080 1045 IF S(U+ C,V+ G)> 0AND (S(U- C,V- G)= 0OR (U- C= XAND V- G= Y))THEN Q= Q- 2 1080 NEXT C:IF Q> R(0)THEN R(0)= Q:R(1)= X:R(2)= Y:R(3)= U:R(4)= V 1100 Q= 0:RETURN 1140 IF R(0)= - 99THEN 1880 1240 R(0)= - 99:IF R(4)= 0THEN S(R(3),R(4))= - 2:GOTO 1310 1250 S(R(3),R(4))= S(R(1),R(2)) 1310 S(R(1),R(2))= 0 1314 REM ERASE OLD SPOT & DRAW NEW 1315 CX= R(1):CY= R(2):GOSUB 7000:CX= R(3):CY= R(4):CL= 32:GOSUB 7500 1320 IF ABS (R(1)- R(3))< > 2THEN 1580 1330 CX= (R(1)+ R(3))/ 2:CY= (R(2)+ R(4))/ 2:S(CX,CY)= 0:GOSUB 7000 1332 NC= NC- 1:IF NC= 0THEN 8000 1335 CX= R(3):CY= R(4) 1340 X= R(3):Y= R(4):IF S(X,Y)= - 1THEN B= - 2:FOR A= - 2TO 2STEP 4:GOSUB 1370 1350 IF S(X,Y)= - 2THEN FOR A= - 2TO 2STEP 4:FOR B= - 2TO 2STEP 4:GOSUB 1370:NEXT 1360 NEXT A:IF R(0)< > - 99THEN GOSUB 7000:CX= R(3):CY= R(4):GOSUB 7500:GOTO 1240 1365 GOTO 1580 1370 U= X+ A:V= Y+ B:IF U< 0OR U> 7OR V< 0OR V> 7GOTO 1400 1380 IF S(U,V)= 0AND S(X+ A/ 2,Y+ B/ 2)> 0THEN GOSUB 910 1400 RETURN 1580 PLOT 3,0,13:PRINT "YOUR TURN" 1590 PLOT 3,0,16:GOSUB 5500:INPUT "FROM? ";SQ$:SQ= VAL (SQ$) 1595 IF SQ$= "QUIT"OR SQ$= "END"OR SQ$= "STOP"THEN 8000 1600 IF SQ< 1OR SQ< > INT (SQ)OR SQ> 32THEN 1590 1605 LN= 0:GOSUB 4030:H= YY:E= XX 1610 IF S(E,H)< 1THEN 1590 1620 GOSUB 4000:REM GET SQUARE MOVING TO 1670 A= XX:B= YY:IF SQ< 1THEN GOSUB 5500:GOTO 1620 1680 IF S(A,B)< > 0THEN GOSUB 5500:GOTO 1590 1685 IF ABS (A- E)= 2AND S((A+ E)/ 2,(B+ H)/ 2)> - 1THEN GOSUB 5000:GOTO 1590 1688 IF ABS (A- E)< = 2AND ABS (A- E)= ABS (B- H)THEN 1700 1690 GOSUB 5500:GOTO 1620 1700 I= 46 1750 S(A,B)= S(E,H):S(E,H)= 0:IF B= 7THEN S(A,B)= 2 1758 REM ERASE AT OLD SPOT, DRAW AT NEW 1760 CX= E:CY= H:GOSUB 7000:CL= 33:CX= A:CY= B:GOSUB 7500 1770 IF ABS (E- A)< > 2THEN 1810 1780 LN= LN+ 1 1800 CX= (E+ A)/ 2:CY= (H+ B)/ 2:GOSUB 7000:S(CX,CY)= 0 1802 GOSUB 4000:A1= XX:B1= YY:IF SQ< 1THEN 1810 1804 IF S(A1,B1)< > 0OR ABS (A1- A)< > 2OR ABS (B1- B)< > 2THEN GOSUB 5500:GOTO 1802 1806 E= A:H= B:A= A1:B= B1:I= I+ 15:GOTO 1750 1810 IF B= 7THEN S(A,B)= 2 1830 GOSUB 5000:GOTO 225 1880 W$= "YOU":SC(2)= SC(2)+ 1 1882 GOSUB 9300:REM PRINT NEW SCORES 1885 GOSUB 5000:PLOT 3,0,13:PRINT SPC( 15)"":PLOT 14,3,0,15,21:PRINT W$" WIN" 1890 PLOT 15:PRINT 1895 INPUT "PLAY AGAIN? ";B$:B$= LEFT$ (B$,1) 1900 IF B$= "Y"OR B$= "O"THEN 2000 1905 IF B$< > "N"THEN PLOT 28:PRINT SPC( 15)"":PLOT 28:GOTO 1895 1910 END 2000 GOSUB 5000:PLOT 6,36 2010 ZZ= 28:J= - 1:Y1= 1:GOSUB 9500:GOSUB 9250:PLOT 6,3 2030 GOTO 85 4000 PLOT 3,0,16+ LN:INPUT "TO? ";SQ$:SQ= VAL (SQ$) 4010 IF SQ< > INT (SQ)OR SQ> 32THEN GOSUB 5500:GOTO 4000 4020 IF SQ< 1THEN RETURN 4030 F= INT ((SQ- 1)/ 4):YY= 7- F:XX= 2* (SQ- 4* F)- 1+ (YY/ 2= INT (YY/ 2)) 4040 RETURN 4997 4998 REM ********** ERASE PROMPT AREA 4999 5000 PLOT 3,0,14:FOR J= 1TO 6:PRINT SPC( 15)"":NEXT :RETURN 5497 5498 REM ********** ERASE A PROMPT LINE 5499 5500 PLOT 28:PRINT SPC( 15)"":PLOT 28:RETURN 6997 6998 REM ********** ERASE A CHECKER 6999 7000 PLOT 6,32 7010 PLOT 3,18+ 6* CX,1+ 4* (7- CY) 7020 PLOT 32,32,26,26,10,32,32 7030 PLOT 6,3,3,64,0 7040 RETURN 7497 7498 REM ********** DRAW A CHECKER 7499 7500 PLOT 6,CL,3,18+ 6* CX,1+ 4* (7- CY) 7510 IF ABS (S(CX,CY))< > 2THEN PLOT 116,117:GOTO 7530 7520 PLOT 30,113,112,29 7530 PLOT 26,26,10,118,119,6,3,3,64,0 7540 RETURN 8000 SC(1)= SC(1)+ 1:W$= "I":GOTO 1882 8997 8998 REM ********** DRAW THE BOARD 8999 9000 PLOT 6,6,12 9010 PLOT 3,64,0,2,250,32,0,127,247 9020 FOR Y= 0TO 63:PLOT 34:NEXT 9030 PLOT 2,255 9040 PLOT 6,4 9050 S= 0 9060 PLOT 2 9069 9070 FOR Y= 0TO 112STEP 16 9079 9080 FOR X= 32TO 116STEP 24 9090 PLOT 250,X+ 12* S,Y,X+ 12* S+ 11,247 9100 FOR J= 1TO 7:PLOT 34:NEXT 9110 PLOT 2 9120 NEXT 9121 9130 S= 1+ (S= 1) 9140 NEXT 9141 9150 PLOT 255 9155 PLOT 6,38 9160 S= - 1:L= 0 9169 9170 FOR Y= 3TO 31STEP 4 9180 S= (S= 0) 9189 9190 FOR X= 16TO 58STEP 6 9200 S= (S= 0):IF STHEN 9230 9210 L= L+ 1:L$= STR$ (L):L$= RIGHT$ (L$,LEN (L$)- 1) 9220 PLOT 3,X,Y:PRINT L$ 9230 NEXT 9231 9240 NEXT 9241 9250 J= - 1:PLOT 6,32:ZZ= 8:Y1= 1:GOSUB 9500:PLOT 6,33:Y1= 21:GOSUB 9500 9260 PLOT 6,3:GOSUB 5000:PLOT 3,0,15:PRINT "DO YOU WANT TO" 9270 INPUT "GO FIRST? ";A$:A$= LEFT$ (A$,1) 9280 IF A$= "Y"OR A$= "O"THEN 9290 9285 IF A$< > "N"THEN GOSUB 5500:GOTO 9270 9290 GOSUB 5000 9300 PLOT 6,3,8,14:PRINT " SCORE:" 9310 PLOT 15:PRINT " ME:",SC(1) 9320 PRINT :PRINT " YOU:",SC(2) 9330 PLOT 3,64,0:RETURN 9497 9498 REM DRAW CHECKERS IN INITIAL POSITIONS 9499 9500 FOR Y= Y1TO Y1+ ZZSTEP 4 9510 J= (J= 0) 9519 9520 FOR X= 24+ 6* JTO 60+ 6* JSTEP 12 9530 PLOT 3,X,Y 9540 PLOT 116,117,26,26,10,118,119 9550 NEXT 9551 9560 NEXT 9561 9570 RETURN