10 'ELECTRIC FENCING by ALEXANDER MARTIN
20 'copyright (c) AMSOFT 1985 30 ' 40 DEFINT a-z:CALL &BC02:INK 6,20 50 MODE 0:SPEED INK 30,30 60 GOSUB 980 70 GOSUB 1370 80 GOSUB 270 90 GOSUB 1520 100 GOSUB 1370 110 GOSUB 1270 120 ' 130 ' 140 REM start 150 IF finished THEN GOTO 100 160 GOSUB 240 170 CALL &BD19:IF p1dir THEN GOSUB 570 ELSE CALL &BD19:CALL &BD19 180 CALL &BD19:IF p2dir THEN GOSUB 620 ELSE CALL &BD19:CALL &BD19 190 IF p1sa=-1 THEN GOSUB 670 200 IF p2sa=-1 THEN GOSUB 720 210 GOTO 140 220 ' 230 ' 240 IF j THEN 380 ELSE 480 250 ' 260 ' 270 CLS:PEN 6 280 PRINT:PRINT" CHOOSE CONTROL" 290 PRINT:PRINT:PRINT:PRINT"press J/K then ENTER" 300 LOCATE 4,10:PRINT"JOYSTICK";TAB(5);"OR KEYS" 310 LOCATE 12,10:IF j THEN PRINT"*":ELSE PRINT" " 320 LOCATE 12,11:IF j THEN PRINT" ":ELSE PRINT"*" 330 IF NOT(INKEY(45)) THEN j=-1 340 IF NOT(INKEY(37)) THEN j=0 350 IF NOT(INKEY(18)) THEN RETURN ELSE 310 360 ' 370 ' 380 p1=JOY(0):p2=JOY(1) 390 p1dir=(p1 AND 1)*-1+(p1 AND 2)*0.5 400 p2dir=(p2 AND 1)*-1+(p2 AND 2)*0.5 410 IF P1 AND 16 THEN p1sa=p1sa-1:IF p1sa=-1 THEN AFTER 15 GOSUB 770 420 IF P2 AND 16 THEN p2sa=p2sa-1:IF p2sa=-1 THEN AFTER 15 GOSUB 770 430 IF p1sa THEN p1dir=0 440 IF p2sa THEN p2dir=0 450 RETURN 460 ' 470 ' 480 p2dir=((INKEY(4)=0)*1)+((INKEY(5)=0)*-1) 490 p1dir=((INKEY(69)=0)*1)+((INKEY(71)=0)*-1) 500 IF INKEY(63)=0 THEN p1sa=p1sa-1:IF p1sa=-1 THEN AFTER 15 GOSUB 770 510 IF INKEY(10)=0 THEN p2sa=p2sa-1:IF p2sa=-1 THEN AFTER 15 GOSUB 770 520 IF p1sa THEN p1dir=0 530 IF p2sa THEN p2dir=0 540 RETURN 550 ' 560 ' 570 pt=p1wp+p1dir:IF pt>25 OR pt<6 THEN RETURN ELSE p1wp=pt 580 p1dir=0 590 PEN 1:LOCATE 3,p1wp:CLS #3:PRINT CHR$(209);:RETURN 600 ' 610 ' 620 pt=p2wp+p2dir:IF pt>25 OR pt<6 THEN RETURN ELSE p2wp=pt 630 p2dir=0 640 PEN 2:LOCATE 18,p2wp:CLS #5:PRINT CHR$(211);:RETURN 650 ' 660 ' 670 PAPER #4,4:WINDOW #4,4,17,p1wp,p1wp:CLS#4:CALL &BD19:CALL &BD19 680 PAPER #4,0:CLS#4 690 GOTO 570 700 ' 710 ' 720 PAPER #6,5:WINDOW #6,4,17,p2wp,p2wp:CLS#6:CALL &BD19:CALL &BD19 730 PAPER #6,0:CLS#6 740 GOTO 620 750 ' 760 ' 770 pwpe=(p1wp=p2wp):IF p1sa AND NOT(p2sa) AND pwpe THEN p1sc=p1sc+1:SOUND 132,120,10,0,1,0:PRINT#1,a$(p1sc);:IF p1sc=9 THEN 860 780 IF p2sa AND NOT(p1sa) AND pwpe THEN p2sc=p2sc+1:SOUND 132,100,10,0,1,0:PRINT#2,a$(p2sc);:IF p2sc=9 THEN 860 790 IF p1sa THEN SOUND 132,40,70,0,1,1 800 IF p2sa THEN SOUND 132,56,70,0,1,1 810 p1sa=0 820 p2sa=0 830 RETURN 840 ' 850 ' 860 PEN 6 870 LOCATE 6,10:PRINT"GAME OVER" 880 IF p1sc=9 THEN INK 1,2,20:INK 2,0 ELSE INK 2,6,17:INK 1,0 890 SOUND 129,1000,0,12,3:SOUND 130,900,0,12,3 900 WHILE INKEY$<>"":WEND 910 65519 F:WHILE 6900 TAG>TIME:WEND 920 WHILE INKEY$="":WEND 930 CLS 940 finished=-1 950 RETURN 960 ' 970 ' 980 a$(0)="111101101101111" 990 a$(1)="001001001001001" 1000 a$(2)="111001111100111" 1010 a$(3)="111001111001111" 1020 a$(4)="100100101111001" 1030 a$(5)="111100111001111" 1040 a$(6)="111100111101111" 1050 a$(7)="111001001010010" 1060 a$(8)="111101111101111" 1070 a$(9)="111101111001001" 1080 FOR n=0 TO 9 1090 howlong=LEN(a$(n)) 1100 FOR n2=1 TO howlong 1110 IF MID$(a$(n),n2,1)="1"THEN MID$(a$(n),n2,1)=CHR$(143)ELSE MID$(a$(n),n2,1)=CHR$(32) 1120 NEXT n2,n 1130 ' 1140 ' 1150 b$="ELECTRIC FENCING" 1160 c$=CHR$(32)+CHR$(164)+" Alexander Martin" 1170 ENV 1,=9,2000:ENT -1,6,3,1 1180 ENV 2,127,0,0,127,0,0,127,0,0,127,0,0,127,0,0 1190 ENV 3,=9,9000 1200 ' 1210 ' 1220 BORDER 0 1230 INK 0,12:PEN #4,1:PEN #6,2:PEN #1,1:PEN #2,2:PAPER #1,3:PAPER #2,3:PEN #0,6:PAPER#3,0:PAPER#5,0 1240 RETURN 'FROM SETTING UP CONSTANTS 1250 ' 1260 ' 1270 INK 0,12:INK 1,2:INK 2,6:INK 3,13:INK 4,20:INK 5,17:INK 6,20 1280 WINDOW #3,3,3,6,25:WINDOW #5,18,18,6,25 1290 WINDOW #1,3,5,1,5:WINDOW #2,16,18,1,5:WINDOW #7,1,20,1,5:PAPER #7,3 1300 CLS:CLS#7:PRINT#1,a$(0);:PRINT#2,a$(0);:p1sc=0:p2sc=0:p1wp=5:p2wp=24:p1dir=1:p2dir=1 1310 GOSUB 570:GOSUB 620 1320 SOUND 1,1000,0,12,2:SOUND 2,900,0,12,2 1330 p1sa=0:p2sa=0:finished=0 1340 RETURN 'FROM GAME SHEET RESTORE 1350 ' 1360 ' 1370 CLS 1380 PEN 7 1390 FOR n=1 TO LEN(b$) 1400 LOCATE 2+n,10 1410 FOR n2=LEN(b$) TO n STEP-1 1420 PRINT MID$(b$,n2,1) 1430 LOCATE 2+n,10 1440 SOUND 135,20*n2,5,12,2,1 1450 NEXT n2,n 1460 SOUND 135,100,0,13,3,1,20 1470 PEN 6:PRINT:PRINT:PRINT:PRINT c$ 1480 FOR n=1 TO 5000:NEXT 1490 RETURN 1500 ' 1510 ' 1520 IF j THEN RETURN 1530 CLS 1540 LOCATE 7,5 1550 PRINT"CONTROLS" 1560 PRINT 1570 PRINT" PLAYER1 PLAYER2" 1580 PRINT 1590 PRINT" A up 6" 1600 PRINT" Z down 3" 1610 PRINT" X fire 7" 1620 65519 F:WHILE 6900 #E8FU$ 1630 RETURN |