PROGRAM:REVERSSTART 01 '******************************* 02 '*REVERSI GAME by -ws- 10.06.20* 03 '*Rev. 1.1 Part1 --- LOAD TO P6* 04 '******************************* 05 COL 0,7:CLS :BOX 0,0,45,59,15 06 COL 10,0:POS 2,19:? " REVERSI " 07 BOX 6,7,40,33,8 08 A=10:B=9:C=8:D=10:E=14:F=0 09 FOR I=1 TO 8 10 COL 0,7:POS I*2+2,1:? I 11 POS 2,4:? "A BC DE FG H" 12 FOR J=1 TO 8:FBOX A,B,C,D,E 13 DA 50+F,A:DA 120+F,B 14 DA 190+F,C:DA 260+F,D 15 DA 330+F,14 16 F=F+1:B=B+3:D=D+3:NEXT 17 A=A+4:C=C+4:B=9:D=10:NEXT 18 DA 610,"ABCDEFGH12345678" 19 DA 357,15:DA 358,8 20 DA 365,8:DA 366,15 21 GOS 51:GOS 25:GOS 51:GOS 57 22 IF K=1:GO 1 23 GOS 63 24 'OPTIONS ----------------------- 25 FBOX 8,35,33,57,0:COL 14,0 26 POS 5,18:? "YOU START?" 27 POS 6,18:? "Y/N":GOS ~L+19 28 IF I=0:G=0:POS 6,23:? "YES" 29 IF I=1:G=1:POS 6,23:? "CB2" 30 POS 8,18:? "YOU WHITE?" 31 POS 9,18:? "Y/N":GOS ~L+15 32 IF I=0:DA 1,15:DA 2,8' CB2=BLACK 33 IF I=0:POS 9,23:? "YES" 34 IF I=1:DA 1,8:DA 2,15' CB2=WHITE 35 IF I=1:POS 9,22:? "BLACK" 36 POS 11,18:? "LOW LEVEL?" 37 POS 12,18:? "Y/N":GOS ~L+9 38 IF I=0:O=0:POS 12,23:? "LOW" 39 IF I=1:O=1:POS 12,22:? "HIGH" 40 CALL 8,60 41 POS 14,18:? "AUTO-MOVE?" 42 POS 15,18:? "Y/N":GOS ~L+4 43 IF I=0:T=0:POS 15,23:? "YES" 44 IF I=1:T=1:POS 15,22:? "ENTER" 45 RET 46 K=KEY(0)' ---------------- QUERY 47 IF K=121:I=0:WAIT 3:RET ' YES 48 IF K=110:I=1:WAIT 3:RET ' NO 49 IF K=237:END 50 GO ~L-4 51 'UPDATE GAMEBOARD -------------- 52 FOR I=0 TO 63 53 A=AR(50+I):B=AR(120+I) 54 C=AR(190+I):D=AR(260+I) 55 E=AR(330+I):FBOX A,B,C,D,E:NEXT 56 RET 57 'TOGGLE PLAYER ---------------- 58 IF G=1:CALL 8,5:GO ~L+2' CB2 59 P=0:GOS 79:GOS 63:CALL 7,5' USER 60 GOS 51:CALL 7,30 61 IF K=1:RET ' NEW GAME 62 GO ~L-4 63 'NAVIGATION -------------------- 64 COL 15,9 65 POS 21,5:? " YOUR MOVE " 66 K=KEY(0) 67 IF K=226:P=P-1:GOS 82' LEFT 68 IF K=227:P=P+1:GOS 82' RIGHT 69 IF K=228:P=P-8:GOS 82' UP 70 IF K=229:P=P+8:GOS 82' DOWN 71 IF K=237:END ' CANCEL 72 IF K=234:CALL 7,12:RET 'CALLBACK 73 GO ~L-7 74 'DISPLAY CURSOR POSITION ------- 75 V=P:GOS 89 76 COL AR(2),AR(1) 77 POS 21,3:? %AR(610+S) 78 POS 21,4:? %AR(618+R):RET 79 'REPLACE CURSOR ---------------- 80 A=AR(50):B=AR(120):C=AR(190) 81 D=AR(260):FBOX A,B,C+2,D,10:RET 82 'SET CURSOR -------------------- 83 IF P<0:P=0 84 IF P>63:P=63 85 GOS 74:GOS 51 86 A=AR(50+P):B=AR(120+P) 87 C=AR(190+P):D=AR(260+P) 88 FBOX A,B,C+2,D,10:WAIT 2:RET 89 'CALCULATE POSITION ------------ 90 R=V/8:FOR K=0 TO 7 91 IF V/8=K:S=V-K*8 92 NEXT :RET #