image of READY prompt

Wang2200.org

Listing of file='WAR' on disk='vmedia/more_games.wvd.zip'

# Sector 1463, program filename = 'WAR'
0010 REM *WAR*
   : LOAD DC T#6,"GAMES"
0020 PRINT HEX(030A0A)
0030 PRINT "THIS IS A WAR GAME IN WHICH YOU ARE FIRING AT"
0040 PRINT "AND BEING FIRED UPON BY SOME ENEMY. INPUT IS"
0050 PRINT "MADE IN DEGREES OF ELEVATION.(A KILL IS WITHIN 30 METERS.)"
0060 PRINT "YOU WILL BE TOLD WHEN TO FIRE AND WHEN YOU ARE BEING FIRED AT."
0070 C6=400
0080 PRINT "ON YOUR TURN YOU WILL HAVE APPROXIMATELY";INT(C6/40);"SECONDS TO F
     IRE."
0090 PRINT
0100 PRINT "   TO START, KEY S.F. 0"
0110 KEYIN E$,110,120
   : GOTO 110
0120 X1=30
   : X2=30
0130 SELECT D
0140 SELECT P
0150 SELECT PRINT 005(64)
0160 DIM C$1,D$
0170 DIM M$(15)64,B$(5),N$1
0180 P1=0
   : P2=0
0190 B$(1)=".  .  .    "
0200 B$(2)=" .  . .   ."
0210 B$(3)="  .  ..  . "
0220 B$(4)="   . .. .  "
0230 B$(5)=" ...BOOM.. "
0240 J1=INT(RND(1)*4000)
0250 IF J1<200 THEN 240
0260 E=0
0270 L0=0
0280 H1=45
0290 PRINT "YOUR RANGE IS ";J1;"METERS."
0300 J3=INT(RND(1)*3000)
0310 IF J3<100 THEN 300
0320 IF J3>J1 THEN 300
0330 PRINT "THE ENEMY IS ";J3;"METERS AWAY."
0340 K=J3/54
0350 J2=INT(RND(1)*4000)
0360 IF J2<J3 THEN 350
0370 V2=SQR(32*J2)
0380 D0=0
0390 D1=J2
0400 V1=SQR(32*J1)
0410 R1=0
0420 H=0
0430 R=RND(1)
   : IF R<.5 THEN 440
   : U=.5
   : GOTO 960
0440 U=0
0450 PRINT "YOUR ANGLE OF ELEVATION IS.....";
0460 D$=" "
0470 C7=1
0480 KEYIN C$,490,480
   : C7=C7+1
   : IF C7<C6 THEN 480
   : U=.5
   : PRINT HEX(0D0A),"ENEMY NOW FIRING."
   : GOTO 970
0490 IF C$=HEX(0D) THEN 550
0500 IF C$<>HEX(08) THEN 520
0510 STR(D$,LEN(D$),1)=HEX(20)
   : GOTO 540
0520 IF C$<HEX(2D) THEN 480
   : IF C$>HEX(39) THEN 480
0530 STR(D$,LEN(D$)+1,1)=C$
0540 PRINT C$;
   : GOTO 480
0550 IF STR(D$,LEN(D$),1)=HEX(20) THEN 480
   : CONVERT D$ TO A1
0560 IF A1<90 THEN 600
0570 PRINT "DUM-DUM, TRY SHOOTING AT THE ENEMY!"
0580 R1=R1+1
0590 GOTO 450
0600 IF A1>0 THEN 640
0610 PRINT "THIS SHOT MAY KILL AN ANT OR TWO,BUT..."
0620 R1=R1+1
0630 GOTO 450
0640 R1=R1+1
0650 V0=V1
0660 A=A1
0670 GOSUB 1370
0680 D=INT(V1*COS(A1)*T)
0690 Q=D-J3
0700 IF D<X1 THEN 800
0710 A=A1
0720 V0=V1
0730 N=1
0740 O=6
0750 N$="+"
0760 V9=15
0770 GOSUB 1530
0780 IF ABS(Q)<X1 THEN 870
0790 GOTO 850
0800 N=1
0810 GOSUB 1830
0820 IF E=1 THEN 1330
0830 PRINT HEX(01);"YOU JUST KILLED YOUR SELF DUMMY!"
0840 GOTO 240
0850 PRINT HEX(01);"YOU MISSED BY ";Q;"METTERS.(YOUR LAST ANGLE WAS =";A1;" )"
0860 GOTO 960
0870 N=54
0880 GOSUB 1830
0890 PRINT HEX(01)
0900 PRINT "YOU GOT HIM!!!!!"
0910 PRINT "IT ONLY TOOK YOU ";R1;"TRIES."
0920 P1=P1+1
0930 PRINT "ENEMY ";P2;":YOU ";P1
0940 GOTO 240
0950 REM .....LOGIC FOR ENEMY SHOT.....
0960 PRINT "ENEMY NOW FIRING."
0970 IF D1-J3>J3-D0 THEN 1000
0980 B=1
0990 GOTO 1010
1000 B=-1
1010 A2=(H1+L0)/2.0+B*RND(1)*(H1-L0)/2.0
1020 IF A2=H1 THEN 970
1030 PRINT HEX(010C0C)
1040 S=1
1050 IF U=0 THEN 1110
1060 V0=V2
1070 A=A2
1080 FOR I8=1 TO 1000
   : NEXT I8
1090 GOSUB 1370
1100 U=0
1110 A=A2
1120 V0=V2
1130 N=-1
1140 O=59
1150 N$="*"
1160 V9=14
1170 IF R1<1 THEN 1190
   : IF C7=C6 THEN 1190
1180 STR(M$(14),1,17)="ENEMY NOW FIRING."
1190 GOSUB 1530
1200 D=INT(V2*COS(A2)*T)
1210 Q=D-J3
1220 IF ABS(Q)<X2 THEN 1310
1230 PRINT HEX(010A);"THE ENEMY MISSED YOU BY ";Q;"METERS."
1240 IF Q<0 THEN 1280
1250 H1=A2
1260 D1=Q
1270 GOTO 450
1280 L0=A2
1290 D0=Q
1300 GOTO 450
1310 E=1
1320 GOTO 800
1330 PRINT HEX(01);"YOU ARE DEAD!!!!";TAB(62);HEX(20)
1340 P2=P2+1
1350 GOTO 930
1360 REM .....LOGIC FOR CLEARING.....
1370 FOR I=1 TO 15
1380 M$(I)=" "
1390 NEXT I
1400 STR(M$(1),59,1)="E"
1410 STR(M$(1),6,1)="Y"
1420 PRINT HEX(030C0C)
1430 PRINT M$(1)
   : PRINT HEX(0C)
1440 S=1
1450 T=V0*SIN(A)/16
1460 T2=T/2
1470 IF A<45 THEN 1500
1480 K0=(-16*T2*T2+V0*SIN(A)*T2)/14
1490 GOTO 1510
1500 K0=K
1510 RETURN
1520 REM .....LOGIC FOR DISPLAY.....
1530 S7=V0*SIN(A)
1540 S6=V0*COS(A)
1550 S5=K/S6
1560 T=S7/16
1570 FOR I1=1 TO 58
1580 T0=I1*S5
1590 IF T0>T THEN 1790
1600 L=-16*T0*T0+S7*T0
1610 L=INT(L/K0+.5)+1
1620 IF L>V9 THEN 1800
1630 IF S>L THEN 1740
1640 IF S=L THEN 1700
1650 C=L-S
1660 FOR I2=1 TO C
1670 PRINT HEX(0C)
1680 NEXT I2
1690 S=L
1700 STR(M$(S),N*I1+O,1)=N$
1710 PRINT M$(S)
1720 PRINT HEX(0C)
1730 GOTO 1800
1740 C=S-L
1750 FOR I2=1 TO C
1760 PRINT
1770 NEXT I2
1780 GOTO 1690
1790 I1=58
1800 NEXT I1
1810 RETURN
1820 REM .....LOGIC FOR KILL.....
1830 FOR I9=1 TO 5
1840 STR(M$(I9),N,11)=B$(6-I9)
1850 NEXT I9
1860 PRINT HEX(010C0C)
1870 SELECT P2
1880 FOR I9=1 TO 5
1890 PRINT M$(I9);HEX(0C0C)
1900 NEXT I9
1910 SELECT P
1920 RETURN
1930 GOTO 10