1 REM *** GEOWAR 2 REM *** WRITTEN BY GARY LORENC, IDEA BY KENNETH JANOWIAK 3 REM *** ST. PATRICK HS, 5900 W. BELMONT AVE, CHICAGO, ILL 4 REM *** UPDATED TO BASIC-PLUS BY DAVE AHL, DIGITAL PDP-11/45 GROUP 5 PRINT"DO YOU WANT A DESCRIPTION OF THE GAME? (1-YES,0-NO) "; 6 INPUT I 7 IF I=0 THEN 46 8 PRINT 9 PRINT" THE FIRST QUADRANT OF A REGULAR COORDINATE GRAPH WILL"; 10 PRINT" SERVE AS" 11 PRINT"THE BATTLEFIELD. FIVE ENEMY INSTALLATIONS ARE LOCATED "; 12 PRINT"WITHIN A" 13 PRINT"30 BY 30 UNIT AREA. NO TARGET IS INSIDE THE 10 BY 10 "; 14 PRINT"UNIT AREA" 15 PRINT"ADJACENT TO THE ORIGIN, AS THIS IS THE LOCATION OF OUR "; 16 PRINT"BASE. WHEN" 17 PRINT"THE MACHINE ASKS FOR THE DEGREE OF THE SHOT, RESPOND "; 18 PRINT"WITH A NUMBER" 19 PRINT"BETWEEN 1 AND 90." 20 PRINT 21 PRINT TAB(51),"SCARE**********" 22 PRINT" 1. A DIRECT HIT IS A HIT WITHIN 1 DEGREE OF"; 23 PRINT TAB(51),"* *" 24 PRINT" THE TARGET.",TAB(51),"* HIT****** *" 25 PRINT" 2. A HIT MUST PASS BETWEEN THE FIRST SET OF"; 26 PRINT TAB(51),"* * * *" 27 PRINT" INTEGRAL POINTS NW AND SE OF THE TARGET."; 28 PRINT TAB(51),"* * D * *" 29 PRINT" 3. A SCARE MUST PASS BETWEEN THE NEXT SET OF"; 30 PRINT TAB(51),"* * * *" 31 PRINT" INTEGRAL POINTS NW AND SE OF THE TARGET,"; 32 PRINT TAB(51),"* ******HIT *" 33 PRINT" AND CAUSES THE ENEMY TO RELOCATE A "; 34 PRINT TAB(51),"* *" 35 PRINT" MAXIMUM OF 1 UNIT IN ANY DIRECTION."; 36 PRINT TAB(51),"**********SCARE" 37 PRINT 38 PRINT 39 PRINT" MISSILES HAVE INFINITE RANGE AND MAY HIT MORE THAN "; 40 PRINT"ONE TARGET." 41 PRINT"A MISSILE THAT NEARLY MISSES AN INSTALLATION (A SCARE) "; 42 PRINT"WILL BE" 43 PRINT"IMMEDIATELY SHOT DOWN. ANY HITS BEFORE THIS TIME WILL "; 44 PRINT"NOT BE COUNTED" 45 PRINT"UNLESS A DIRECT HIT WAS MADE." 46 PRINT 47 PRINT 48 PRINT"READY TO GO? (1-YES,0-NO) "; 49 INPUT R2 50 IF R2=0 THEN 192 51 PRINT"GOOD LUCK!" 52 PRINT 53 DIM C(10),H(20),D(10),S(20),F(5) 54 DEF FNV(V1)=INT((180/3.14159)*ATN(V1)+.5) 55 X=250 56 X1=RND(X) 57 G2=0 58 S2=0 59 D2=0 60 H2=0 61 FOR K=1 TO 10 62 GO SUB 154 63 IF INT(K/2)<>K/2 THEN 70 64 IF C(K-1)>10 THEN 70 65 IF C(K)>10 THEN 70 66 FOR L=K-1 TO K 67 GO SUB 154 68 NEXT L 69 GO TO 63 70 NEXT K 71 S=0 72 FOR L=1 TO 5 73 D(L)=FNV(C(2*L)/C(2*L-1)) 74 NEXT L 75 A=2 76 L1=10 77 T5=5 78 D5=0 79 H5=0 80 GO SUB 147 81 PRINT 82 PRINT"ENTER DEGREE OF SHOT "; 83 D1=0 84 H1=0 85 FOR Q=1 TO 5 86 F(Q)=20 87 NEXT Q 88 INPUT D 89 IF D>=90 THEN 81 90 IF D<0 THEN 177 ELSE IF D=0 THEN 192 91 S=S+1 92 FOR A=2 TO 10 STEP 2 93 IF D>S(A) THEN 103 94 IF DH(A) THEN 105 96 IF DD(A/2)+1 THEN 101 98 IF D0 THEN 118 106 GO SUB 138 107 GO TO 81 108 IF D1+H1<>0 THEN 112 109 IF T5=1 THEN 159 110 PRINT"NO LUCK -- TRY AGAIN." 111 GO TO 81 112 IF D1>0 THEN 118 113 IF H1>1 THEN 116 114 PRINT"**CONGRATULATIONS** A HIT." 115 GO TO 124 116 PRINT"**CONGRATULATIONS**";H1;" HITS." 117 GO TO 124 118 PRINT"****BULLS EYE**** "; 119 IF D1>1 THEN 123 120 IF H1>0 THEN 123 121 PRINT" A DIRECT HIT!" 122 GO TO 124 123 PRINT D1+H1;" HITS -- A DIRECT HIT ON";D1;" OF THEM!" 124 T5=T5-(D1+H1) 125 D5=D5+D1 126 H5=H5+H1 127 IF T5=0 THEN 167 128 FOR J= 1 TO H1+D1 129 Z=F(J) 130 D(Z/2)=0 131 H(Z)=0 132 H(Z-1)=0 133 S(Z)=0 134 S(Z-1)=0 135 NEXT J 136 PRINT 5-T5;" DOWN --";T5;" TO GO." 137 GO TO 81 138 PRINT"A NEAR HIT. ENEMY HAS RELOCATED." 139 FOR R=1 TO 2 140 X2=INT(RND(0)*100) 141 IF ABS(C(A-(R-1))-X2)>1 THEN 140 142 IF C(A-(R-1))<=2 THEN 140 143 C(A-(R-1))=X2 144 NEXT R 145 D(A/2)=FNV(C(A)/C(A-1)) 146 L1=A 147 FOR I=A TO L1 STEP 2 148 H(I-1)=FNV((C(I)-1)/(C(I-1)+1)) 149 H(I)=FNV((C(I)+1)/(C(I-1)-1)) 150 S(I-1)=FNV((C(I)-2)/(C(I-1)+2)) 151 S(I)=FNV((C(I)+2)/(C(I-1)-2)) 152 NEXT I 153 RETURN 154 R=INT(RND(0)*100) 155 IF R>30 THEN 154 156 IF R<3 THEN 154 157 C(K)=R 158 RETURN 159 FOR Z1=1 TO 5 160 IF D(Z1)>1 THEN 162 161 NEXT Z1 162 IF D