0 REM EDITOR:FOOL2002-07-14
1 CLEAR:GRAPH
2 BOX 30,30,60,40,1,1:BOX 114,50,65,39,1,1:BOX 31,31,112,48,1,0
3 LOCATE 3,5:PRINT "ը    ";:LOCATE 5,14:PRINT "Beta B";:INKEY$
4 CLEAR:CLS:LOCATE 4,1:PRINT "PLEASE USE ENGLISH";:LOCATE 1,1
5 PRINT "INPUT YOUR NAME":PRINT "PLAYER ONE:";:INPUT A$:PRINT "PLAYER TWO:";:INPUT B$:CLS
6 IF LEN(A$)=0 THEN PA$="FOOL" ELSE PA$=LEFT$(A$,4)
7 IF LEN(B$)=0 THEN PB$="PIG2" ELSE PB$=LEFT$(B$,4)
8 FOR I=1 TO 4
9 LOCATE I,9:PRINT MID$(PB$,I,1):LOCATE I,12:PRINT MID$(PA$,I,1)
10 NEXT I
19 FOR I=2 TO 62 STEP 6
20 LINE I,2,I,62,1
30 LINE 2,I,62,I,1
40 NEXT I
70 FOR K=2 TO 62 STEP 6
80 LINE 98,K,158,K,1
90 LINE K+96,2,K+96,62,1
100 NEXT K
105 DIM A(10,10):DIM B(10,10):TN=1
107 X=5:Y=5:IF PLA=3 AND TN=1 GOTO 3000
110 IF PLB=3 GOTO 3000
111 PN=0:PS=0:PE=0:PW=0:GT=0:GO=0
112 MK=0:T=1:T1=1:IF PLA<3 THEN PLA=PLA+1 ELSE PLB=PLB+1:DB=96:TN=2
113 LOCATE 5,1:PRINT " No.             ";:LOCATE 5,7:IF X>9 THEN X=X-9
114 IF Y>9 THEN Y=Y-9
115 ON TN GOTO 116,118
116 IF A(X,Y)<>0 THEN X=X+1:Y=Y+1: GOTO 113
117 PRINT PLA;: GOTO 120
118 IF B(X,Y)<>0 THEN X=X+1:Y=Y+1: GOTO 113
119 PRINT PLB;:
120 GOTO 5000
150 PN=0:PS=0:PE=0:PW=0:GT=0:GO=0:A=0:B=0
155 W$=INKEY$:KEY=ASC(W$)
160 IF KEY=20 AND Y>1 THEN Y=Y-1:B=1: GOTO 120
170 IF KEY=21 AND Y<10 THEN Y=Y+1:B=-1: GOTO 120
180 IF KEY=23 AND X>1 THEN X=X-1:A=1: GOTO 120
190 IF KEY=22 AND X<10 THEN X=X+1:A=-1: GOTO 120
200 IF KEY=27 GOTO 221
201 IF KEY<>13 THEN 220
203 IF TN=1 AND BEGIN=0 AND A(X,Y)=0 THEN A(X,Y)=2: GOTO 500
206 IF TN=2 AND BEGIN=0 AND B(X,Y)=0 THEN B(X,Y)=2: GOTO 500
207 IF BEGIN=0 THEN BEEP: GOTO 155
208 ON TN GOTO 209,214
209 IF A(X,Y)=5 THEN A(X,Y)=2:LA=LA-1:HIT=1
210 IF A(X,Y)=4 THEN A(X,Y)=1:HIT=2
211 IF A(X,Y)=3 THEN A(X,Y)=6:HIT=3
212 IF HIT=0 THEN BEEP: GOTO 155
213 GOTO 5000
214 IF B(X,Y)=5 THEN B(X,Y)=2:LB=LB-1:HIT=1
215 IF B(X,Y)=4 THEN B(X,Y)=1:HIT=2
216 IF B(X,Y)=3 THEN B(X,Y)=6:HIT=3
218 IF HIT=0 THEN BEEP: GOTO 155
219 GOTO 5000
220 BEEP: GOTO 155
221 IF BEGIN=1 THEN LOC=8
222 LOCATE 5,9-LOC:PRINT "EXIT?(Y/N) ";: GOTO 230
225 BEEP
230 K$=INKEY$
240 IF K$="y" THEN 242
241 GOTO 250
242 POKE 199,155
250 IF K$="n" THEN BEEP:LOCATE 5,9-LOC:PRINT "          ";: GOTO 255
251 GOTO 260
255 IF LOC=0 THEN 155
256 LOCATE 5,1: GOTO 6030
260 GOTO 225
500 IF X<3 OR X>8 OR Y>7 THEN PS=1
510 IF X<3 OR X>8 OR Y<4 THEN PN=1
520 IF Y>8 OR X>7 OR Y<3 THEN PE=1
530 IF Y>8 OR X<4 OR Y<3 THEN PW=1
595 GOTO 600
598 LOCATE 5,9:PRINT "           ";
599 BEEP
600 W$=INKEY$:KEY=ASC(W$):GT=KEY-19
610 IF KEY=13 THEN 2500
614 IF KEY=25 THEN 3500
615 IF KEY=27 THEN 617
616 GOTO 620
617 IF TN=1 THEN A(X,Y)=0:JU=1: GOTO 645
618 IF TN=2 THEN B(X,Y)=0:JU=1: GOTO 645
620 GOTO 631
630 GOTO 3500
631 IF GT>4 OR GT<1 THEN 599
632 ON GT GOTO 633,635,637,639
633 IF PN=1 THEN 599
634 GOTO 640
635 IF PS=1 THEN 599
636 GOTO 640
637 IF PE=1 THEN 599
638 GOTO 640
639 IF PW=1 THEN 599
640 GOTO 4500
645 IF GO<>0 THEN 660
646 IF GT=8 THEN 2000
650 ON GT GOTO 800,700,900,1000
660 T1=0:ON GO GOTO 681,683,685,687
670 GOTO 600
681 GOTO 700
683 GOTO 800
685 GOTO 900
687 GOTO 1000
700 IF GT=2 AND T1=0 THEN BEEP: GOTO 2000
720 BX=DB+(X-4)*6+4:BY=Y*6+4:GO=1
730 FOR I=6 TO 30 STEP 6
740 BOX BX+I,BY,BX+I+3,BY+3,1,T1
750 IF I=6 OR I=30 THEN 770
760 BOX BX+I,BY+12,BX+I+3,BY+15,1,T1
770 NEXT I
780 BOX BX+18,BY+6,BX+21,BY+9,1,T1
790 GOTO 2000
800 IF GT=1 AND T1=0 THEN BEEP: GOTO 2000
820 GO =2:BX=DB+(X-4)*6+4:BY=(Y-2)*6+4
830 FOR I=6 TO 30 STEP 6
840 BOX BX+I,BY,BX+3+I,BY+3,1,T1
850 IF I=6 OR I=30 THEN 870
860 BOX BX+I,BY-9,BX+I+3,BY-12,1,T1
870 NEXT I
880 BOX BX+18,BY-6,BX+21,BY-3,1,T1
890 GOTO 2000
900 IF GT=3 AND T1=0 THEN BEEP: GOTO 2000
920 GO=3:BX=DB+X*6+4:BY=(Y-4)*6+4
930 FOR I=6 TO 30 STEP 6
940 BOX BX,BY+I,BX+3,BY+I+3,1,T1
950 IF I=6 OR I=30 THEN 970
960 BOX BX+12,BY+I,BX+15,BY+I+3,1,T1
970 NEXT I
980 BOX BX+6,BY+18,BX+9,BY+21,1,T1
990 GOTO 2000
1000 IF GT=4 AND T1=0 THEN BEEP: GOTO 2000
1120 GO=4:BX=DB+(X-2)*6+4:BY=(Y-4)*6+4
1130 FOR I=6 TO 30 STEP 6
1140 BOX BX,BY+I,BX+3,BY+I+3,1,T1
1150 IF I=6 OR I=30 THEN 1170
1160 BOX BX-9,BY+I,BX-12,BY+I+3,1,T1
1170 NEXT I
1180 BOX BX-6,BY+18,BX-3,BY+21,1,T1
1190 GOTO 2000
2000 IF JU=1 THEN JU=0:T1=1: GOTO 150
2005 IF T1=1 THEN MK=GT: GOTO 600
2010 IF T1=0 THEN T1=1:MK=0:GO=0: GOTO 650
2500 IF MK>0 AND MK<5 THEN 2501 ELSE 2507
2501 LOCATE 5,10:PRINT "SURE?(Y/N)";
2502 Y$=INKEY$
2503 IF Y$="y" THEN KEY=0: GOTO 2506
2504 IF Y$="n" THEN 598
2505 GOTO 2502
2506 ON MK GOTO 2510,2520,2530,2540
2507 BEEP: GOTO 600
2510 C=-3:D=-1:E=0:F=-2: GOTO 2700
2520 C=-3:D=1:E=0:F=2: GOTO 2700
2530 C=1:D=-3:E=2:F=0: GOTO 2700
2540 C=-1:D=-3:E=-2:F=0: GOTO 2700
2700 XX=0:YY=0 
2710 ON TN GOTO 2720,2810
2720 A(X+E,Y+F)=1
2730 FOR I=1 TO 5
2740 IF E=0 THEN XX=I ELSE YY=I
2750 A(X+C+XX,Y+D+YY)=1
2760 IF I=1 OR I=5 THEN 2780
2770 A(X+C+XX+E,Y+D+YY+F)=1
2780 NEXT I
2800 GOTO 107
2810 B(X+E,Y+F)=1
2830 FOR I=1 TO 5
2840 IF E=0 THEN XX=I ELSE YY=I
2850 B(X+C+XX,Y+D+YY)=1
2860 IF I=1 OR I=5 THEN 2880
2870 B(X+C+XX+E,Y+D+YY+F)=1
2880 NEXT I
2890 GOTO 107
3000 FOR I=1 TO 5
3001 FOR K=1 TO 5
3002 GA=(5-I)*6+4
3003 GB=(5-K)*6+4
3004 GC=(4+I)*6+4
3005 GD=(4+K)*6+4
3011 IF TN=2 GOTO 3017
3012 A(6-I,6-K)=A(6-I,6-K)+3
3013 A(6-K,5+I)=A(6-K,5+I)+3
3014 A(5+I,5+K)=A(5+I,5+K)+3
3015 A(5+K,6-I)=A(5+K,6-I)+3
3016 GOTO 3060
3017 B(6-I,6-K)=B(6-I,6-K)+3
3018 B(6-K,5+I)=B(6-K,5+I)+3
3019 B(5+I,5+K)=B(5+I,5+K)+3
3020 B(5+K,6-I)=B(5+K,6-I)+3
3060 BOX GA+DB,GB,GA+DB+3,GB+3,1,1
3061 BOX GA+DB,GB,GA+DB+2,GB+2,1,0
3070 BOX GB+DB,GC,GB+DB+3,GC+3,1,1
3071 BOX GB+DB,GC,GB+DB+2,GC+2,1,0
3080 BOX GC+DB,GD,GC+DB+3,GD+3,1,1
3081 BOX GC+DB,GD,GC+DB+2,GD+2,1,0
3090 BOX GD+DB,GA,GD+DB+3,GA+3,1,1
3091 BOX GD+DB,GA,GD+DB+2,GA+2,1,0
3100 NEXT K
3110 NEXT I
3115 IF TN=2 THEN 6000
3120 GOTO 111
4500 ON GT GOTO 4510,4520,4530,4540
4510 C=-3:D=-1:E=0:F=-2: GOTO 4700
4520 C=-3:D=1:E=0:F=2: GOTO 4700
4530 C=1:D=-3:E=2:F=0: GOTO 4700
4540 C=-1:D=-3:E=-2:F=0: GOTO 4700
4700 XX=0:YY=0 
4710 ON TN GOTO 4720,4820
4720 FOR I=1 TO 5
4740 IF E=0 THEN XX=I ELSE YY=I
4750 IF A(X+C+XX,Y+D+YY)<>0 GOTO 599
4760 IF I=1 OR I=5 THEN 4780
4770 IF A(X+C+XX+E,Y+D+YY+F)<>0 GOTO 599
4780 NEXT I
4800 GOTO 645
4820 FOR I=1 TO 5
4840 IF E=0 THEN XX=I ELSE YY=I
4850 IF B(X+C+XX,Y+D+YY)<>0 GOTO 599
4860 IF I=1 OR I=5 THEN 4880
4870 IF B(X+C+XX+E,Y+D+YY+F)<>0 GOTO 599
4880 NEXT I
4900 GOTO 645
5000 IF TN=1 THEN MOV=A(X,Y):MOV2=A(X+A,Y+B)
5005 IF TN=2 THEN MOV=B(X,Y):MOV2=B(X+A,Y+B)
5007 IF KEY=13 THEN A=0:B=0: GOTO 5310
5010 IF A=0 AND B=0 THEN AN=0 ELSE AN=1
5020 DX=DB+(X-1)*6+4:DY=(Y-1)*6+4
5030 ON MOV+1 GOTO 5040,5060,5090,5050,5050,5050,5120
5040 BOX DX,DY,DX+2,DY+2,1,1
5045 GOTO 5300
5050 BOX DX-1,DY-1,DX+3,DY+3,1,0
5051 LINE DX-1,DY-1,DX+2,DY-1,1
5052 LINE DX-1,DY-1,DX-1,DY+2,1
5053 LINE DX+2,DY-1,DX-1,DY+2,1
5055 GOTO 5300
5060 BOX DX,DY,DX+3,DY+3,1,0
5070 BOX DX-1,DY-1,DX+2,DY+2,1,1
5080 GOTO 5300
5090 BOX DX-1,DY-1,DX+3,DY+3,0,1
5100 BOX DX,DY,DX+2,DY+2,1,0
5110 GOTO 5300
5120 BOX DX-1,DY-1,DX+3,DY+3,1,0
5122 LINE DX-1,DY-1,DX+3,DY+3,1
5125 LINE DX+3,DY-1,DX-1,DY+3,1
5130 GOTO 5300
5300 IF AN=0 THEN 5600
5310 DX=DB+(X-1+A)*6+4:DY=(Y-1+B)*6+4
5330 ON MOV2+1 GOTO 5340,5360,5390,5350,5350,5350,5420
5340 BOX DX,DY,DX+2,DY+2,1,0
5342 GOTO 5600
5350 BOX DX-1,DY-1,DX+3,DY+3,1,0
5351 LINE DX,DY+3,DX+3,DY+3,1
5352 LINE DX+3,DY,DX+3,DY+3,1
5355 GOTO 5600
5360 BOX DX-1,DY-1,DX+2,DY+2,1,0
5370 BOX DX,DY,DX+3,DY+3,1,1
5380 GOTO 5600
5390 BOX DX,DY,DX+2,DY+2,1,1
5400 BOX DX-1,DY-1,DX+3,DY+3,0,0
5410 GOTO 5600
5420 BOX DX-1,DY-1,DX+3,DY+3,1,1
5430 LINE DX-1,DY-1,DX+3,DY+3,0
5435 LINE DX+3,DY-1,DX-1,DY+3,0
5440 GOTO 5600
5600 KEY=0:IF HIT<>0 THEN 6085
5610 GOTO 150
6000 LOCATE 5,1:PRINT "LET'S BEGIN!       ";:LA=3:LB=3:BEGIN=1:X=5:Y=5
6010 HIT=0
6015 FOR I=1 TO 2000
6020 NEXT I
6025 LOCATE 5,1
6026 IF LA=0 THEN N$=PA$: GOTO 7000
6027 IF LB=0 THEN N$=PB$: GOTO 7000
6030 ON TN GOTO 6040,6060
6040 PRINT PA$;"'S TURN        ";
6050 GOTO 5000
6060 PRINT PB$;"'S TURN        ";
6080 GOTO 5000
6085 LOCATE 5,1:ON HIT GOTO 6090,6100,6110
6090 PRINT "DESTROYED!!        ";: GOTO 6150
6100 PRINT "YOU HIT IT!        ";: GOTO 6150
6110 PRINT "FAILED!         ";: GOTO 6150
6150 A=0:B=0:IF TN=1 THEN TN=2:DB=96: GOTO 6010
6160 IF TN=2 THEN TN=1:DB=0: GOTO 6010
7000 LOCATE 5,1:PRINT "WINNER:"N$;"! HO~HO";
7010 FOR I=1 TO 10
7020 FOR K=1 TO 10
7025 GA=(K-1)*6+4:GB=(I-1)*6+4
7030 IF A(K,I)=4 THEN 7040
7035 GOTO 7050
7040 BOX GA,GB,GA+3,GB+3,0,1
7050 IF B(K,I)=4 THEN 7060
7055 GOTO 7070
7060 BOX GA+96,GB,GA+99,GB+3,0,1
7070 IF A(K,I)=5 THEN 7080
7075 GOTO 7090
7080 BOX GA-1,GB-1,GA+3,GB+3,1,0
7085 BOX GA,GB,GA+2,GB+2,0,1
7090 IF B(K,I)=5 THEN 7100
7095 GOTO 7110
7100 BOX GA+95,GB-1,GA+99,GB+3,1,0
7105 BOX GA+96,GB,GA+98,GB+2,0,1
7110 NEXT K
7120 NEXT I
7130 END
