Another new game from Creative Computing... GEOWAR No writeup was included with this game except, of course, the instmctions and remarks in the listing. The idea and approach came from Kenneth Janowiak, a teacher at St. Patrick HS, Chicago. Programming was done by Gary Lorenc, a former student. (See the review of GEOWAR on the facing page.) PROGRAM LISTING 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 AML 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, AND 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 DTN C(10),H(20),D(10),S(20),F(5) 54 DEF PNV(V1)=INT((180/3.14159)*ATN(V1)*.5) 55 X=250 56 X1=RND(X) 57 G2=0 58 S2=0 59 C2=0 60 H2=0 61 FOR X=1 TO 10 62 GO SUB 154 63 IF INT(X/2)<>X/2) THEN 70 64 IF C(X-1)>10 THEN 70 65 IF C(X)>10 THEN 70 66 FOR L*X=1 10 X 67 GOSUB 154 68 NEXT L 69 GO TO 63 70 NEXT X 71 S=0 72 FOR L=1 TO 5 73 DFLO=FNV(C(2*L)/C(2*L-1)) 74 NEXT L 75 A=2 76 L1=10 77 T5=5 78 DS=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 FPR A=2 TO 10 STEP 2 93 IF D>S(A) THEN 103 94 IF D<S(A-1) THEN 103 95 IF D>H(A) THEN 105 96 IF D<H(A-1) THEN 105 97 IF D>D(A/2)+1 THEN 101 98 IF D<D(A/2)-1 THEN 101 99 D1=D1+1 100 GO TO 102 101 H1=H1+1 102 F(D1+H1)*A 103 NEXT A 104 GO TO 108 105 IF D1>0 THEN 118 106 GO SUB 138 107 GO TO 81 108 IF D1+H1<>P 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)=P 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)(2)*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 T=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 158 C(X)-R 158 RETURN 159 FOR Z1=1 TO 5 160 IF D(Z1)>1 THEN 162 161 NEXT Z1 162 IF D<D(Z1) THEN 165 163 PRINT"TOO HIGH -- TRY AGAIN." 164 GO TO 81 165 PRINT"TOO LOW -- TRY AGAIN." 166 GO TO 81 167 PRINT 168 PRINT"GAME TOTALS:";H5;" HITS AND";D5; "DIRECT HITS ON";S;"SHOTS." 169 PRINT 170 PRINT"READY FOR A NEW GAME? (1=YES,0=NO) "; 171 G2=G2+1 172 S2=S2+8 173 D2=D2+D5 174 H2=H2+H5 175 INPUT G 176 IG G=0 THEN 184 177 PRINT 178 PRINT 179 PRINT 180 PRINT"FIVE NEW INSTALLATIONS HAVE BEEN BUILT AT DIFFERENT "; 181 PRINT"LOCATIONS." 182 PRINT"GOOD LUCK!" 183 GO TO 61 184 PRINT 185 PRINT 186 PRINT "TOTALS FOR"G2"GAMES:"H2"HITS AND"D2 187 PRINT "DIRECT HITS ON"S2"SHOTS." 188 PRINT "AN AVERAGE OF"S2/(D2+H2)"SHOTS PER TARGET." 192 END SAMPLE RUN RUN DO YOU WANT A DESCRIPTION OF THE GAME? (1=YES,0=NO) ! 1 THE FIRST QUADRANT OF A REGULAR COORDINATE GRAPH WILL SERVE AS THE BATTLEFIELD. FIVE ENEMY INSTALLATIONS ARE LOCATED WITHIN A 30 BY 30 UNIT AREAL. NO TARGET IS INSIDE THE 10 BY 10 UNIT AREA ADJACENT TO THE ORIGIN, AS THIS IS THE LOCATION OF OUR BASE. WHEN THE MACHINE ASKS FOR THE DEGREE OF THE SHOT, RESPOND WITH A NUMBER BETWEEN 1 AND 90. SCARE.......... 1. A DIRECT HIT IS A HIT WITHIN 1 DEGREE OF . . THE TARGET. . HIT...... . 2. A HIT MUST PASS BETWEEN THE FIRST SET OF . . . . INTEGRAL POINTS NW AND SE OF THE TARGET. . . D . . 3. A SCARE MUST PASS BETWEEN THE NEXT SET OF . . . . INTEGRAL POINTS NW AND SE OF THE TARGET, . ......HIT . AND CAUSES THE ENEMY TO RELOCATE A . . MAXIMUM OF 1 UNIT IN ANY DIRECTION. ..........SCARE MISSILES HAVE INFINITE RANGE AND MAY HIT MORE THAN ONE TARGET. A MISSILE THAT NEARLY MISSES AN INSTALLATION (A SCARE) WILL BE IMMEDIATELY SHOT DOWN. ANY HITS BEFORE THIS TIME WILL NOT BE COUNTED UNLESS A DIRECT HIT WAS MADE. 266