image of READY prompt

Wang2200.org

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

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