Make C1P screen sharper, add support for C1P JSON files, and add more C1P README files
This commit is contained in:
parent
c8d3a102e2
commit
985c7c76cd
46 changed files with 2199 additions and 54 deletions
|
|
@ -1,132 +0,0 @@
|
|||
1 REM--CHECKERS?--
|
||||
2 REM-MEM.SIZE:8183-
|
||||
3 T1=300:A=53448
|
||||
5 FORC=1TO24:PRINT:NEXT:GOSUB10000:GOSUB20000
|
||||
7 FORC=8184TO8191:READD:POKEC,D:NEXT:POKE11,248:POKE12,31
|
||||
8 DATA32,0,253,141,255,31,96,0
|
||||
10 FORC=A+640TOA+665:POKEC,32:NEXT:POKEA+640,63
|
||||
11 M=USR(M):M=PEEK(8191)-48:IFM=9ANDG8=0THENG8=1:GOTO34
|
||||
12 G8=1:IFM<1ORM>8THEN10
|
||||
13 IFM=9ANDG9=1THENG9=0:GOTO34
|
||||
14 IFM=9OR(M<>X1ANDG9=1)THEN10
|
||||
15 POKEA+642,M+48:POKEA+643,44:X=M:M=USR(M):M=PEEK(8191)-48
|
||||
16 IF(M<>Y1ANDG9=1)ORM<1ORM>8THEN10
|
||||
17 POKEA+644,M+48
|
||||
18 Y=M:M=USR(M):M=PEEK(8191)-48
|
||||
19 IF(G9=1ANDABS(X-M)<>2)ORM<1ORM>8THEN10
|
||||
20 POKEA+646,M+48:POKEA+647,44:X1=M:M=USR(M):M=PEEK(8191)-48
|
||||
23 IFM<1ORM>8THEN10
|
||||
25 POKEA+648,M+48:Y1=M:IFABS(X-X1)<>ABS(Y-Y1)THEN10
|
||||
26 IFABS(X-X1)>2ORX>8ORY>8ORX1>8ORY1>8THEN10
|
||||
27 IFP(X,Y)<1ORP(X1,Y1)<>0THEN10
|
||||
28 IFP(X,Y)=1ANDY1<YTHEN10
|
||||
29 IFABS(X-X1)=2ANDP((X+X1)/2,(Y+Y1)/2)>-1THEN10
|
||||
30 P(X1,Y1)=P(X,Y):P(X,Y)=0:IFABS(X-X1)=2THENP((X+X1)/2,(Y+Y1)/2)=0
|
||||
31 IFY1=8THENP(X1,Y1)=2
|
||||
32 IFABS(X-X1)=2THENGOSUB20000:G9=1:GOTO10
|
||||
33 GOSUB20000
|
||||
34 FORC=A+640TOA+665:POKEC,32:NEXT
|
||||
35 REM-MAIN PROGRAM-
|
||||
230 G=-1:R=-99:FORY=1TO8:FORX=1TO8
|
||||
231 IFP(X,Y)>-1THEN350
|
||||
300 W=8:M=P(X,Y)
|
||||
310 IFM=-1THENFORA1=-1TO1STEP2:B1=G:GOSUB650:NEXTA1
|
||||
330 IFM=-2THENFORA1=-1TO1STEP2:FORB1=1TO-1STEP-2:GOSUB650:NEXTB1,A1
|
||||
350 L6=0:L7=0:L8=0:L9=0:NEXTX,Y:GOTO1140
|
||||
650 U=X+A1:V=Y+B1:IFU<1ORU>8ORV<1ORV>8THEN870
|
||||
660 FORC1=-1TO1STEP2:FORD1=-1TO1STEP2
|
||||
670 IFX+C1<1ORX+C1>8ORY+D1<1ORY+D1>8THEN700
|
||||
673 IFX+C1*2<1ORX+C1*2>8ORY+D1*2<1ORY+D1*2>8THEN700
|
||||
675 IFP(X+C1,Y+D1)>-1THEN700
|
||||
680 IFP(X+C1*2,Y+D1*2)<>2ANDY+D1>YTHEN700
|
||||
682 IFX-C1<1ORX-C1>8ORY-D1<1ORY-D1>8THEN685
|
||||
683 IFP(X+C1,Y+D1)>0ANDP(X-C1,Y-D1)=0THENL9=1
|
||||
685 IFP(X+C1*2,Y+D1*2)<1THEN700
|
||||
690 Q=Q-4:GOTO740
|
||||
700 NEXTD1,C1
|
||||
740 IFP(U,V)=0THENGOSUB910:GOTO870
|
||||
770 IFP(U,V)<0THEN870
|
||||
790 U=U+A1:V=V+B1:IFU<1ORV<1ORU>8ORV>8THEN870
|
||||
850 IFP(U,V)=0THENGOSUB910
|
||||
870 RETURN
|
||||
910 REM
|
||||
920 IFABS(Y-V)=2THENQ=Q+4
|
||||
930 IFL8=0ANDP(X,Y)=-1THENQ=Q+(2-Y/2)
|
||||
1000 IFP(X,Y)=-2THENQ=Q-1
|
||||
1030 IFP(X,Y)=-1THENFORC1=-1TO1STEP2:FORD1=-1TO-1:GOTO1033
|
||||
1031 IFP(X,Y)=-2THENFORC1=-1TO1STEP2:FORD1=-1TO1STEP2:GOTO1033
|
||||
1032 GOTO1081
|
||||
1033 IFU+C1<1ORU+C1>8ORV+D1<1ORV+D1>8THEN1080
|
||||
1034 IFU+C1*2<1ORU+C1*2>8ORV+D1*2<1ORV+D1*2>8THEN1040
|
||||
1035 IFP(U+C1,V+D1)<0ANDP(U+C1*2,V+D1*2)>0THENQ=Q+4
|
||||
1036 IFU-C1<1ORU-C1>8ORV-D1<1ORV-D1>8THEN1080
|
||||
1037 IFP(U+C1,V+D1)>0ANDP(U-C1,V-D1)<>0ANDP(U+C1*2,V+D1*2)=0THENQ=Q+2
|
||||
1040 IFU-C1<1ORU-C1>8ORV-D1<1ORV-D1>8THEN1080
|
||||
1042 IFV+D1>VANDP(U+C1,V+D1)<2THEN1050
|
||||
1045 IFP(U+C1,V+D1)>0AND(P(U-C1,V-D1)=0OR(X=U-C1ANDY=V-D1))THEN5000
|
||||
1047 IFL9=1THENQ=Q+1:L7=1
|
||||
1050 IFP(U+C1,V+D1)<>0ANDP(U-C1,V-D1)<>0ANDY<>8ANDP(X,Y)=-1THENQ=Q+1
|
||||
1080 NEXTD1,C1
|
||||
1081 IFL6=0THENQ=Q+4
|
||||
1082 IFQ>RTHENR=Q:R1=X:R2=Y:R3=U:R4=V
|
||||
1090 IFQ=RANDINT(RND(X)*10)+1<4THENR1=X:R2=Y:R3=U:R4=V
|
||||
1100 Q=0:RETURN
|
||||
1140 IFR=-99THEN1880
|
||||
1230 R=-99:GOSUB2000
|
||||
1240 IFR4=1THENP(R3,R4)=-2:GOTO1310
|
||||
1250 P(R3,R4)=P(R1,R2)
|
||||
1310 P(R1,R2)=0:IFABS(R1-R3)<>2THEN1420
|
||||
1330 P((R1+R3)/2,(R2+R4)/2)=0
|
||||
1340 X=R3:Y=R4:IFP(X,Y)=-1THENB1=-2:FORA1=-2TO2STEP4:GOSUB1370
|
||||
1350 IFP(X,Y)=-2THENFORA1=-2TO2STEP4:FORB1=-2TO2STEP4:GOSUB1370:NEXTB1
|
||||
1360 NEXTA1:IFR<>-99THENR=-99:GOTO1240
|
||||
1365 GOTO1420
|
||||
1370 U=X+A1:V=Y+B1:IFU<1ORU>8ORV<1ORV>8THEN1400
|
||||
1380 IFP(U,V)=0ANDP(X+A1/2,Y+B1/2)>0THENGOSUB910
|
||||
1400 RETURN
|
||||
1420 FORT=1TO1400:NEXT:GOSUB20000:GOTO10
|
||||
1880 PRINT:PRINT" I CONCEDE...":END
|
||||
2000 REM-COMMENTS-
|
||||
2010 POKEA+640,73:POKEA+642,65:POKEA+643,77
|
||||
2015 IFABS(R1-R3)=2THEN2050
|
||||
2017 POKEA+645,77:POKEA+646,79
|
||||
2020 POKEA+647,86:POKEA+648,73:POKEA+649,78:POKEA+650,71:POKEA+651,46
|
||||
2030 POKEA+652,46:POKEA+653,46:RETURN
|
||||
2050 POKEA+645,74:POKEA+646,85:POKEA+647,77:POKEA+648,80:POKEA+649,73
|
||||
2060 POKEA+650,78:POKEA+651,71:POKEA+652,46:POKEA+653,46:POKEA+654,46
|
||||
2070 RETURN
|
||||
4000 POKEB1,187:POKEB1+1,187:POKEB1+32,187:POKEB1+33,187:RETURN
|
||||
5000 Q=Q-4:IFP(X,Y)=-2THENQ=Q-2
|
||||
5002 L6=1
|
||||
5003 IF(ABS(Y-V)=2ORABS(X-U)=2)ANDRND(X)*100<40THENQ=Q-1
|
||||
5004 IFL9=1ANDL7=1THENQ=Q-1:L7=0
|
||||
5005 GOTO1080
|
||||
9999 END
|
||||
10000 REM-CHESSBOARD-
|
||||
10005 FORB=ATOA+15:POKEB,154:POKEB+544,155:NEXT
|
||||
10010 FORB=B+32TOA+544STEP32:POKEB,156:POKEB-17,157:NEXT
|
||||
10015 POKEA-1,165:POKEA+16,167:POKEA+560,168:POKEA+543,166
|
||||
10017 GOTO10047:REM-THIS FOR ALTERNATE BOARD-
|
||||
10020 FORB=A+33TOA+45STEP2:POKEB,143:POKEB+481,136:NEXT
|
||||
10025 FORB=B+64TOA+512STEP64:POKEB,135:POKEB-47,128:NEXT
|
||||
10040 FORB=A+66TOA+452STEP64:FORB1=BTOB+12STEP2:POKEB1,209:NEXTB1,B
|
||||
10045 FORB=A+97TOA+481STEP64:FORB1=BTOB+12STEP2:POKEB1,207:NEXTB1,B
|
||||
10047 REM-CHEC. INIT.--
|
||||
10050 DIMP(8,8):FORX=1TO8:FORY=1TO3:IF(X+Y)/2=INT((X+Y)/2)THENP(X,Y)=1
|
||||
10055 IF(X+Y+5)/2=INT((X+Y+5)/2)THENP(X,Y+5)=-1
|
||||
10060 NEXTY,X:P(1,7)=-1
|
||||
10065 X=57:FORB=A+62TOA+510STEP64:X=X-1:POKEB,X:NEXT
|
||||
10070 FORB=A+576TOA+590STEP2:POKEB,X:X=X+1:NEXT
|
||||
10075 RETURN
|
||||
20000 REM--PIECES--
|
||||
20005 Y=9:FORB=A+32TOA+480STEP64:X=0:Y=Y-1:FORB1=BTOB+14STEP2:X=X+1
|
||||
20010 E3=168:M=P(X,Y):T=(X+Y)/2:IFM<0THENPOKEB1,88
|
||||
20011 REM INSTRUCTIONS INVOLVING "T" ACCOUNT FOR FILLED BLOCKS
|
||||
20012 IFT<>INT(T)THENGOSUB4000
|
||||
20015 IFM>0THENPOKEB1,79
|
||||
20017 IFT=INT(T)THENPOKEB1+1,32:POKEB1+32,32
|
||||
20020 IFABS(M)=2THENE3=107
|
||||
20040 IFM=0ANDT=INT(T)THENPOKEB1,32:POKEB1+33,32:GOTO20100
|
||||
20050 IFT<>INT(T)THEN20100
|
||||
20099 POKEB1+33,E3
|
||||
20100 NEXTB1,B:RETURN
|
||||
Loading…
Reference in a new issue