1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program .... SEABAT 3 REM ! Utg}va 1.5 79-01-19 4 REM ! Taget ur engelsk datortidskrift 5 REM ! {ndrat av GST 6 REM ! Copyright GST 7 REM ! Minne 32 Kbytes 8 REM ! Ins{nt av GST 9 REM +++++++++++++++++++++++++++++++++ 10 REM F|r instruktioner se separat fil 11 REM 12 ; CHR$(12%) 13 RANDOMIZE 14 ONERRORGOTO 82 15 DIM A%(20%,20%) 16 ; 'YOUR NAME PLEASE? '; : INPUTLINE N$ : N$=LEFT$(N$,LEN(N$)-2%) 17 ; : ; : ; 18 REM ** 19 FOR I%=1 TO 20 20 FOR J%=1 TO 20 21 A%(I%,J%)=0 22 NEXT J% 23 NEXT I% 24 REM *** 25 RESTORE 640 26 FOR X%=7% TO 13% 27 FOR Y%=7% TO 12% 28 READ A%(X%,Y%) 29 NEXT Y% 30 NEXT X% 31 REM *** 32 S1%=10% 33 S2%=10% : A%(S1%,S2%)=2% 34 REM *** 35 S%=INT(RND*16%+15%) 36 RESTORE 620 37 FOR X%=1% TO (INT(RND*4%)+1%)*2%-1% 38 READ D8%,D9% 39 NEXT X% 40 FOR X%=1% TO S% 41 X1%=INT(RND*20%+1%) 42 X2%=INT(RND*20%+1%) 43 IF A%(X1%,X2%)<>0% GOTO 41 44 A%(X1%,X2%)=3% 45 NEXT X% 46 ; 'YOU MUST DESTROY'S%' ENEMY SHIPS TO WIN 'N$ 47 REM ** 48 S3%=INT(RND*20%+1%) 49 S4%=INT(RND*20%+1%) 50 IF A%(S3%,S4%)<>0% GOTO 48 51 A%(S3%,S4%)=4% 52 REM *** 53 FOR X%=1% TO INT(RND*8%+8%) 54 X1%=INT(RND*20%+1%) 55 X2%=INT(RND*20%+1%) 56 IF A%(X1%,X2%)<>0% GOTO 54 57 A%(X1%,X2%)=5% 58 NEXT X% 59 REM ** 60 FOR X%=1% TO 4% 61 X1%=INT(RND*18%+2%) 62 X2%=INT(RND*18%+2%) 63 IF A%(X1%,X2%)<>0% GOTO 61 64 A%(X1%,X2%)=6% 65 RESTORE 620 66 FOR Y%=1% TO INT(RND*8%+1%) 67 READ M1%,M2% 68 NEXT Y% 69 NEXT X% 70 REM ** 71 FOR I%=1% TO 9% 72 D(I%)=0 73 NEXT I% 74 C%=30% 75 P%=6000% 76 F%=2500% 77 T%=10% : M%=3% 78 D%=100% 79 D2%=2% 80 REM ** 81 OUT 6,0 82 ; : ; 'WHAT ARE YOUR ORDERS 'N$; 83 ONERRORGOTO 82 84 INPUT O$ : IF ASC(O$)<48% OR ASC(O$)>57% GOTO 87 ELSE O%=VAL(O$) 85 IF O%>9% GOTO 82 86 ON INT(O%+1%) GOTO 99,163,218,267,328,344,374,392,445,471 87 ; CHR$(12)'THE COMMANDS ARE:' 88 ; ' #0 : NAVIGATION' 89 ; ' #1 : SONAR' 90 ; ' #2 : TORPEDO CONTROL' 91 ; ' #3 : POLARIS MISSILE CONTROL' 92 ; ' #4 : MANUEVERING' 93 ; ' #5 : STATUS/DAMAGE REPORT' 94 ; ' #6 : HEADQUARTERS' 95 ; ' #7 : SABOTAGE' 96 ; ' #8 : POWER CONVERSION' 97 ; ' #9 : SURRENDER' 98 GOTO 80 99 REM *** 100 IF D(1%)>=0% GOTO 103 101 ; 'ENGINES ARE UNDER REPAIR 'N$'.' 102 GOTO 80 103 IF C%>8% GOTO 106 104 ; "THERE'S NOT ENOUGH CREW TO MAN THE ENGINES "N$'.' 105 GOTO 80 106 IF D%<=50% D1%=1% ELSE D1%=1%+(.23+RND/10%) 107 GOSUB 619 108 ; 'POWER AVAILABLE ='P%'. POWER TO USE'; 109 INPUT P1% 110 IF P1%<0% OR P1%>P% GOTO 108 111 IF P1%<=1000% GOTO 116 112 IF RND<.43 GOTO 116 113 ; 'ATOMIC PILE GOES SUPERCRITICAL 'N$ : ; 'HEADQURTERS WILL WARN ALL SUBS' 114 ; 'TO STAY AWAY FROM RADIOACTIVE AREA.' 115 GOTO 629 116 X%=S1% 117 Y%=S2% 118 Q1%=1% 119 FOR X2%=1% TO INT(INT(P1%/100%+.5)*D1%+.5) 120 IF X%+X1%>0% AND X%+X1%<21% AND Y%+Y1%>0% AND Y%+Y1%<21% GOTO 123 121 ; "YOU CAN'T LEAVE THE AREA "N$ 122 GOTO 129 123 ON A%(X%+X1%,Y%+Y1%)+1% GOTO 124,128,158,134,139,142,144 124 X%=X%+X1% 125 Y%=Y%+Y1% 126 P%=P%-100% 127 GOTO 147 128 ; 'YOU ALMOST RAN AGROUND 'N$'!!!' 129 A%(X%,Y%)=2% 130 A%(S1%,S2%)=0% 131 S1%=X% 132 S2%=Y% 133 GOTO 474 134 IF D%>50% GOTO 124 135 ; "YOU RAMMED A SHIP!!! YOU'RE BOTH SUNK "N$'!!' 136 S%=S%-1% 137 IF S%=0% GOTO 637 138 GOTO 629 139 IF D%>50% GOTO 124 140 ; "YOU RAMMED YOUR HEADQUARTERS!! YOU'RE SUNK "N$ 141 GOTO 629 142 ; "YOU'VE BEEN BLOWN UP BY A MINE "N$ 143 GOTO 629 144 IF RND<.21 GOTO 158 145 REM 146 GOTO 629 147 REM *** 148 FOR X3%=X%-2% TO X%+2% 149 FOR Y3%=Y%-2% TO Y%+2% 150 IF X3%<1% OR X3%>20% OR Y3%<1% OR Y3%>20% GOTO 156 151 IF A%(X3%,Y3%)<>6% GOTO 156 152 IF RND<.25 GOTO 145 153 IF Q1%=0% GOTO 156 154 ; 'YOU JUST HAD A NARROW ESCAPE WITH A SEAMONSTER 'N$'!!' 155 Q1%=0% 156 NEXT Y3% 157 NEXT X3% 158 NEXT X2% 159 ; 'NAVIGATION COMPLET. POWER LEFT ='P% 160 IF P%>0% GOTO 129 161 ; 'ATOMIC PILE HAS GONE DEAD!!! SUB SINKS, CREW SUFFOCATES' 162 GOTO 629 163 REM *** 164 IF D(2%)>=0% GOTO 167 165 ; 'SONAR IS UNDER REPAIR 'N$'.' 166 GOTO 80 167 IF C%>5% GOTO 170 168 ; 'NOT ENOGH CREW TO WORK SONAR'N$'.' 169 GOTO 80 170 ; 'OPTION #'; 171 INPUT O% 172 ; CHR$(12) 173 IF O%<0% OR O%>1% GOTO 170 174 ON INT(O%+1%) GOTO 175,195 175 REM *** 176 ; 177 A$(1%)=' ' : A$(2%)='**' : A$(3%)='()' : A$(4%)='<>' : A$(5%)='##' : A$(6%)=' $' : A$(7%)='&%' 178 FOR X%=1% TO 20% 179 FOR Y%=1% TO 20% 180 IF A%(X%,Y%)<>0% GOTO 184 181 IF X%<>1% AND X%<>20% AND Y%<>1% AND Y%<>20% GOTO 184 182 ; ' .'; 183 GOTO 189 184 REM 185 B$=A$(A%(X%,Y%)+1%) 186 IF D%<50% AND RND<.23 AND A%(X%,Y%)<>1% AND A%(X%,Y%)<>2% GOTO 182 187 IF RND<.15 AND A%(X%,Y%)>2% GOTO 182 188 ; B$; 189 NEXT Y% 190 REM 191 NEXT X% 192 P%=P%-50% 193 IF P%>0% GOTO 80 194 GOTO 161 195 REM ** 196 FOR I%=1% TO 5% 197 B%(I%)=0% 198 NEXT I% 199 ; 'DIRECTION # OF SHIPS DISTANCES' 200 RESTORE 620 201 FOR X%=1% TO 8% 202 READ X1%,Y1% 203 X3%=0% 204 FOR X4%=1% TO 20% 205 IF S1%+X1%*X4%<1% OR S1%+X1%*X4%>20% OR S2%+Y1%*X4%<1% OR S2%+Y1%*X4%>20% GOTO 211 206 IF A%(S1%+X1%*X4%,S2%+Y1%*X4%)<>3% GOTO 209 207 X3%=X3%+1% 208 B%(X3%)=X4% 209 NEXT X4% 210 IF X3%=0% GOTO 217 211 ; ' 'X%,X3%, 212 FOR X4%=1% TO X3% 213 ; B%(X4%); 214 NEXT X4% 215 ; 216 NEXT X% 217 GOTO 192 218 REM ** 219 IF D(3%)>=0% GOTO 222 220 ; 'TORPEDO TUBES ARE UNDER REPAIR 'N$'.' 221 GOTO 80 222 IF C%>=10% GOTO 225 223 ; 'NOT ENOGH CREW TO FIRE TORPEDO 'N$'.' 224 GOTO 80 225 IF T% GOTO 226 ELSE ; 'NO TORPEDOES LEFT 'N$'.' : GOTO 80 226 IF D%<2000% GOTO 231 227 IF RND>.5 GOTO 231 228 OUT 6,141 229 ; 'PRESSURE IMPLODES SUB UPON FIRING... YOURE CRUSHED!!' 230 GOTO 629 231 GOSUB 619 232 X%=S1% 233 Y%=S2% 234 OUT 6,153 235 FOR T=0 TO 500 : NEXT T 236 IF D%<50% T3%=1% ELSE T3%=0% 237 FOR X2%=1% TO INT(7%+5%*T3%-RND*4%+.5) 238 IF X%+X1%>0% AND X%+X1%<21% AND Y%+Y1%>0% AND Y%+Y1%<21% GOTO 244 239 ; 'TORPEDO OUT OF SONAR RANGE... INEFFECTUAL 'N$'.' 240 T%=T%-1% 241 P%=P%-150% 242 IF P%>0% GOTO 474 243 GOTO 161 244 OUT 6,0 : OUT 6,141 : ON A%(X%+X1%,Y%+Y1%)+1% GOTO 245,250,264,253,257,260,262 245 X%=X%+X1% 246 Y%=Y%+Y1% 247 ; '..!..'; 248 OUT 6,0 : OUT 6,147 : FOR T=0 TO 300 : NEXT T 249 GOTO 264 250 ; 'YOU TOOK OUT SOME ISLAND 'N$'!!' 251 A%(X%+X1%,Y%+Y1%)=0% 252 GOTO 240 253 ; 'OUCH!!! YOU GOT ONE 'N$'!!' 254 S%=S%-1% 255 IF S%<>0% GOTO 251 256 GOTO 637 257 ; 'YOU BLEW UP YOUR HEADQUARTERS 'N$'!!!' 258 S3%=0% : S4%=0% : D2%=0% 259 GOTO 251 260 ; 'BLAM!!! SHOT WASTED ON A MINE 'N$'!!' 261 GOTO 251 262 ; 'A SEAMONSTER HAD A TORPEDO FOR LUNCH 'N$'!!' 263 GOTO 240 264 NEXT X2% 265 ; 'DUD.' 266 GOTO 240 267 REM 268 IF D(4%)>=0 GOTO 271 269 ; 'MISSILE SILOS ARE UNDER REPAIR 'N$'.' 270 GOTO 80 271 IF C%>23% GOTO 274 272 ; 'NOT ENOUGH CREW TO LAUNCH A MISSILE 'N$'.' 273 GOTO 80 274 IF M%<>0 GOTO 277 275 ; 'NO MISSILES LEFT 'N$'.' 276 GOTO 80 277 IF D%>50 AND D%<2000 GOTO 285 278 ; 'RECOMMEND THAT YOU DO NOT FIRE AT THIS DEPTH... PROCEED'; 279 INPUT A$ 280 IF ASC(A$)=ASC('N') GOTO 80 281 IF RND<.5 GOTO 285 282 OUT 6,141 283 ; 'MISSILE EXPLODES UPON FIRING 'N$' YOURE DEAD!!' 284 GOTO 629 285 GOSUB 619 286 ; 'FUEL (LBS.)'; 287 INPUT F1% 288 IF F1%>0 AND F1%<=F% GOTO 291 289 ; 'YOU HAVE'F%' LBS. OF FUEL LEFT.' 290 GOTO 286 291 F2%=INT(F1%/75%+.5) 292 OUT 6,11 : FOR T=0 TO 500 : NEXT T 293 OUT 6,0 : OUT 6,141 294 IF S1%+X1%*F2%>0 AND S1%+F2%*X1%<21 AND S2%+Y1%*F2%>0 AND S2%+Y1%*F2%<21 GOTO 300 295 ; 'MISSILE OUT OF SONAR TRACKING 'N$'.' : ; 'MISSILE LOST.' 296 M%=M%-1% 297 F%=F%-F1% 298 P%=P%-300% 299 GOTO 242 300 D3%=0 : D4%=0 : D5%=0 : D6%=0 301 FOR X%=S1%+X1%*F2%-1 TO S1%+X1%*F2%+1 302 FOR Y%=S2%+Y1%*F2%-1 TO S2%+Y1%*F2%+1 303 IF X%<1 OR X%>20 OR Y%<1 OR Y%>20 GOTO 316 304 IF A%(X%,Y%)=3% D3%=D3%+1 305 IF A%(X%,Y%)=6% D4%=D4%+1 306 IF A%(X%,Y%)=5% D5%=D5%+1 307 IF A%(X%,Y%)=1% D6%=D6%+1 308 IF A%(X%,Y%)<>4% GOTO 312 309 ; 'YOU HAVE DESTROYED YOUR HEADQUARTERS 'N$'!!!' 310 S3%=0 : S4%=0 : D2%=0 311 GOTO 315 312 IF A%(X%,Y%)<>2% GOTO 315 313 ; 'YOU JUST DESTROYED YOUR SELF 'N$'!!!' : ; 'DUMMY!!' 314 GOTO 629 315 A%(X%,Y%)=0% 316 NEXT Y% 317 NEXT X% 318 IF D6%=0 GOTO 320 319 ; 'YOU BLEW OUT SOME ISLAND 'N$'.' 320 IF D5%=0 GOTO 322 321 ; 'YOU DESTROYED'D5%' MINES 'N$'.' 322 IF D4%=0 GOTO 324 323 ; 'YOU GOT'D4%' SEAMONSTERS 'N$'!!! GOOD WORK!!!' 324 ; 'YOU DESTROYED'D3%' ENEMY SHIPS!!!' 325 S%=S%-D3% 326 IF S%=0 GOTO 637 327 GOTO 296 328 REM ** 329 IF D(5%)>=0% GOTO 332 330 ; 'BALLAST CONTROLS ARE BEING REPAIRED 'N$'.' 331 GOTO 80 332 IF C%>12 GOTO 335 333 ; 'THERE ARE NOT ENOUGH CREW TO WORK THE CONTROLS 'N$'.' 334 GOTO 80 335 ; 'NEW DEPTH'; 336 INPUT D1% 337 IF D1%>=0% AND D1%<3000% GOTO 340 338 ; 'HALL CRUSHED BY PRESSURE 'N$'!!' 339 GOTO 629 340 P%=P%-INT(ABS((D%-D1%)/2%+.5)) 341 ; 'MANEUVER COMPLETE. POWER LOSS='INT(ABS((D%-D1%)/2%+.5)) 342 D%=D1% 343 GOTO 474 344 REM ** 345 IF D(6%)>=0% GOTO 348 346 ; 'NO REPORTS ARE ABLE TO GET THROUGH 'N$'.' 347 GOTO 80 348 IF C%>3% GOTO 351 349 ; 'NO ONE LEFT TO GIVE REPORT 'N$'.' 350 GOTO 80 351 ; CHR$(12)'# OF ENEMY SHIPS LEFT......'S% 352 ; '# OF POWER UNITS LEFT......'P% 353 ; '# OF TORPEDOS LEFT.........'T% 354 ; '# OF MISSILES LEFT.........'M% 355 ; '# OF CREWMEN LEFT..........'C% 356 ; 'LBS. OF FUEL LEFT..........'F% 357 ; 358 ; 'WANT DAMAGE REPORT'; 359 INPUT A$ 360 IF ASC(A$)=ASC('N') GOTO 371 361 ; CHR$(12); 362 ; ' ITEM DAMAGE (+ GOOD,-BAD)' 363 ; ' ---- ------' 364 DATA 'ENGINES','SONAR','TORPEDOS','MISSILES','MANEUVERING','STATUS','HEADQUARTERS','SABOTAGE','CONVERTER' 365 REM ** 366 RESTORE 364 367 FOR X=1 TO 9 368 READ A$ 369 ; A$,D(X) 370 NEXT X 371 ; : ; 'YOU ARE AT LOCATION ('S1%','S2%').' 372 ; 373 GOTO 80 374 REM ** 375 IF D(7%)>=0% GOTO 378 376 ; 'HEADQUARTERS IS DAMAGED. UNABLE TO HELP 'N$'.' 377 GOTO 80 378 IF D(2%)<>0 GOTO 381 379 ; 'HEADQUARTERS IS DESERTED 'N$'.' 380 GOTO 80 381 IF SQR((S1%-S3%)*(S1%-S3%)+(S2%-S4%)*(S2%-S4%))<=2 AND D%<51 GOTO 384 382 ; 'UNABLE TO COMPLY WITH DOCKINGORDERS 'N$'.' 383 GOTO 80 384 ; 'DIVERS FROM HEADQUARTERS BRING OUT SUPPLIES AND MEN .' 385 P%=4000% 386 T%=8% 387 M%=2% 388 F%=1500% 389 C%=25 390 D2%=D2%-1 391 GOTO 474 392 REM 393 IF D(8%)>=0 GOTO 396 394 ; 'HATCHES INACCESSIBLE 'N$'. NO SABOTAGES POSSIBLE' 395 GOTO 80 396 IF C%>10% GOTO 399 397 ; 'NOT ENOUGH CREW TO GO ON A MISSION 'N$'.' 398 GOTO 80 399 D3%=0% 400 D4%=0 : FOR X%=S1%-2% TO S1%+2% 401 FOR Y%=S2%-2% TO S2%+2% 402 IF X%<1 OR X%>20 OR Y%<1 OR Y%>20 GOTO 405 403 IF A%(X%,Y%)=3% D3%=D3%+1 404 IF A%(X%,Y%)=6% D4%=D4%+1 405 NEXT Y% 406 NEXT X% 407 IF D3%<>0 GOTO 410 408 ; 'NO SHIPS IN RANGE 'N$'.' 409 GOTO 80 410 ; 'THERE ARE'D3%' SHIPS IN RANGE 'N$'.' 411 ; 'HOW MANY MEN ARE GOING 'N$' '; 412 INPUT Q1% 413 IF C%-Q1%>=10 GOTO 416 414 ; 'YOU MUST LEAVE AT LEAST 10 MEN ONBORD 'N$'.' 415 GOTO 411 416 D5%=INT(D3%/Q1%+.5) 417 D6%=0 418 FOR X%=S1%-2 TO S1%+2 419 FOR Y%=S2%-2 TO S2%+2 420 IF X%<0 OR X%>20 OR Y%<0 OR Y%>20 GOTO 427 421 IF D3%/Q1%>1-RND AND RND+D3%/Q1%<.9 GOTO 427 422 IF A%(X%,Y%)<>3% GOTO 427 423 D6%=D6%+1 424 A%(X%,Y%)=0 425 S%=S%-1 426 IF S%=0 GOTO 637 427 NEXT Y% 428 NEXT X% 429 ; D6%' SHIPS WERE DESTROYED 'N$'.' 430 D6%=0 431 D7%=0 : FOR X%=1 TO Q1% 432 IF RND>.6 D7%=D7%+1 433 NEXT X% 434 FOR X%=1 TO Q1%-D7% 435 IF RND<.15 D6%=D6%+1 436 NEXT X% 437 IF D4%=0 GOTO 441 438 ; 'A SEAMONSTER SMELLS THE MEN ON THE WAY BACK !!!' 439 ; D7%' MEN WERE EATEN 'N$'.' 440 C%=C%-D7% 441 ; D6%' MEN WERE LOST THROUGH ACCIDENTS 'N$'.' 442 C%=C%-D6% 443 P%=P%-INT(10*Q1%+RND*10%) 444 GOTO 474 445 REM ** 446 IF D(9%)>=0 GOTO 449 447 ; 'POWER CONVERTER IS DAMAGED 'N$'.' 448 GOTO 80 449 IF C%>5 GOTO 452 450 ; 'NOT ENOUGH MEN TO WORK THE CONVERTER 'N$'.' 451 GOTO 80 452 ; 'OPTION (1=FUEL TO POWER,2=POWER TO FUEL)'; 453 INPUT O% 454 IF O%=1 GOTO 456 ELSE IF O%=2 GOTO 463 ELSE GOTO 452 455 REM ** 456 REM ** 457 ; 'FUEL AVAILABLE='F%'. CONVERT'; 458 INPUT C1% 459 IF C1%>F% OR C1%<0 GOTO 457 460 F%=F%-C1% 461 P%=P%+INT(C1%/3) 462 GOTO 469 463 REM * 464 ; 'POWER AVAILABLE='P%-1'. CONVERT'; 465 INPUT C1% 466 IF C1%>P%-1 OR C1%<0 GOTO 464 467 P%=P%-C1% 468 F%=F%+INT(C1%*3) 469 ; 'CONVERSION COMPLETE. POWER='P%'. ' : ; 'FUEL='F%'.' 470 GOTO 474 471 REM ** 472 ; 'COWARD!! YOU ARE NOT VERY PATRIOTIC 'N$'!!!' 473 GOTO 629 474 REM **[ 475 Q=0% 476 FOR X%=S1%-4% TO S1%+4% 477 FOR Y%=S2%-4% TO S2%+4% 478 IF X%<1% OR X%>20% OR Y%<1% OR Y%>20% GOTO 481 479 IF A%(X%,Y%)<>3% GOTO 481 480 Q=Q+(RND/2/SQR((S1%-X%)*(S1%-X%)+(S2%-Y%)*(S2%-Y%))) 481 NEXT Y% 482 NEXT X% 483 IF Q<>0 GOTO 486 484 ; 'NO SHIPS IN RANGE TO DEPTHCHARGE YOU 'N$'!!' 485 GOTO 531 486 ; 'DEPTH CHARGES OFF'; 487 IF RND>.5 GOTO 490 488 ; 'PORT SIDE 'N$'!!!' 489 GOTO 491 490 ; 'STARBOARD SIDE 'N$'!!!' 491 IF Q>.13 OR RND>.92 GOTO 494 492 ; 'NO REAL DAMAGE SUSTAINED 'N$'.' 493 GOTO 531 494 IF Q>.36 OR RND>.96 GOTO 500 495 ; 'LIGHT,SUPEFICIAL DAMAGE 'N$'.' 496 P%=P%-50% 497 T3%=INT(RND*9%)+1% 498 D(T3%)=D(T3%)-RND*2% 499 GOTO 531 500 IF Q>.6 OR RND>.975 GOTO 508 501 ; 'MODERATE DAMAGE. REPAIRS NEEDED.' 502 P%=P%-75%+INT(RND*30%) 503 FOR Y%=1% TO 2% 504 X%=INT(RND*9%)+1% 505 D(X%)=D(X%)-RND*8% 506 NEXT Y% 507 GOTO 531 508 IF Q>.9 OR RND>.983 GOTO 516 509 ; 'HEAVY DAMAGE!! REPAIRS IMMEDIATE 'N$'!!!' 510 P%=P%-(200%+INT(RND*76%)) 511 FOR X%=1% TO 4%+INT(RND*2%) 512 Y%=INT(RND*9%+1%) 513 D(Y%)=D(Y%)-RND*11% 514 NEXT X% 515 GOTO 531 516 ; 'DAMAGE CRITICAL!!!! WE NEED HELP!!!' 517 A$='HFGHJDFKGJKJKFDHGNFDHYURP]HJIERPOIWP]OWLE' 518 X%=INT(RND*16%+1%) 519 ; "SEND 'HELP' IN CODE. HERE IS THE CODE:" 520 ; : ; TAB(17%)MID$(A$,X%,4%) 521 REM 522 FOR I9=1 TO 3000 : NEXT I9 523 POKE (65011),PEEK(65011)-1 : ; TAB(17%)'****' 524 ; 'ENTER CODE'; : INPUT B$ 525 ; 526 IF B$<>MID$(A$,X%,4%) GOTO 529 527 ; 'FAST WORK 'N$'!! HELP ARRIVES IN TIME TO SAVE YOU!!!' 528 GOTO 510 529 ; 'MESSAGE GARBLED 'N$'... NO HELP ARRIVES' 530 GOTO 629 531 REM 532 IF D(1)>=0% OR D(3%)>=0% OR D(4%)>=0% OR D(5%)>=0% OR D(7%)>=0% GOTO 536 533 IF D(8%)>=0% OR D(9%)>=0% GOTO 536 534 ; 'DAMAGE TOO MUCH 'N$"!!! YOU'RE SUNK!!" 535 GOTO 629 536 REM 537 ; : ; : ; '--** RESULT OF LAST ENEMY MANUEVER **--' 538 FOR X%=1% TO 20% 539 FOR Y%=1% TO 20% 540 IF A%(X%,Y%)<>3% GOTO 579 541 REM 542 W%=D8% 543 V%=D9% 544 IF X%+W%>0% AND X%+W%<21% AND Y%+V%>0% AND Y%+V%<21% GOTO 552 545 FOR X0%=19% TO 1% STEP -1% 546 IF A%(X%-W%*X0%,Y%-V%*X0%)<>0% GOTO 550 547 A%(X%-W%*X0%,Y%-V%*X0%)=3% 548 A%(X%,Y%)=0% 549 X0%=1% 550 NEXT X0% 551 GOTO 610 552 ON A%(X%+W%,Y%+V%)+1% GOTO 553,556,563,556,566,570,575 553 A%(X%+W%,Y%+V%)=3% 554 A%(X%,Y%)=0% 555 GOTO 610 556 REM 557 RESTORE 620 558 FOR X0%=0% TO INT(RND*8%+1%) 559 READ W%,V% 560 NEXT X0% 561 IF X%+W%<1% OR X%+W%>20% OR Y%+V%<1% OR Y%+V%>20% GOTO 557 562 GOTO 552 563 IF D%>50% GOTO 556 564 PRINT "YOU'VE BEEN RAMMED BY A SHIP "N$"!!" 565 GOTO 629 566 IF RND<.15 GOTO 556 567 PRINT '** YOUR HEADQUARTERS WAS RAMMED 'N$'!!!' 568 S3%=0% : S4%=0% : D2%=0% : A%(X%+W%,Y%+V%)=0% 569 GOTO 572 570 IF RND<.7 GOTO 556 571 PRINT '** SHIP DESTROYED BY A MINE' 572 S%=S%-1% 573 IF S%<>0% GOTO 554 574 GOTO 637 575 IF RND<.8 GOTO 556 576 ; '** SHIP EATEN BY A SEAMONSTER !!' 577 S%=S%-1% 578 GOTO 573 579 REM ** 580 IF A%(X%,Y%)<>6% GOTO 610 581 IF X%+M1%<1% OR X%+M1%>20% OR Y%+M2%<1% OR Y%+M2%>20% GOTO 586 582 ON A%(X%+M1%,Y%+M2%)+1% GOTO 583,586,593,595,600,583,603 583 A%(X%+M1%,Y%+M2%)=6% 584 A%(X%,Y%)=0% 585 GOTO 610 586 REM ** 587 RESTORE 620 588 FOR X0%=1% TO INT(RND*8%+1%) 589 READ M1%,M2% 590 NEXT X0% 591 IF X%+M1%<1% OR X%+M1%>20% OR Y%+M2%<1% OR Y%+M2%>20% GOTO 586 592 GOTO 582 593 PRINT "** YOU'VE BEEN EATEN BY A SEA MONSTER "N$"!!!" 594 GOTO 629 595 IF RND>.2 GOTO 586 596 ; '** SHIP EATEN BY A SEMONSTER' 597 S%=S%-1% 598 IF S%<>0% GOTO 583 599 GOTO 637 600 ; '** A SEAMONSTER ATE YOUR HEADQUARTERS 'N$'!!' 601 S3%=0% : S4%=0% : D2%=0% 602 GOTO 583 603 IF RND<.75 GOTO 586 604 ; '** A SEAMONSTER FIGHT 'N$'!!!' 605 IF RND<.8 GOTO 608 606 ; 'AND ONE DIES!!' 607 GOTO 583 608 ; "IT'S A TIE!!'" 609 GOTO 586 610 NEXT Y% 611 NEXT X% 612 REM ** 613 FOR Y%=1% TO 9% 614 X%=INT(RND*9%+1%) 615 IF D%<50% OR D%>2000% T3%=1% ELSE T3%=0% 616 D(X%)=D(X%)+T3%*RND+RND 617 NEXT Y% 618 GOTO 80 619 REM *** 620 DATA -1,0,-1,1,0,1,1,1,1,0,1,-1,0,-1,-1,-1 621 ; 'COURSE (1-8)'; : INPUT C1% 622 REM 623 IF C1%<1% OR C1%>8% GOTO 621 624 RESTORE 620 625 FOR X9%=1% TO INT(C1%+.5) 626 READ X1%,Y1% 627 NEXT X9% 628 RETURN 629 REM ** 630 ; 'THERE IS STILL'S%' ENEMY SHIPS LEFT 'N$'.' 631 ; 'YOU WILL BE DEMOTED TO RANK OF DECK- SCRUBBER!!!' 632 ; 'WANT ANOTHER GAME'; 633 INPUT A$ 634 IF ASC(A$)=ASC('N') GOTO 636 635 GOTO 18 636 END 637 ; 'GOOD WORK 'N$'!!! YOU GOT THEM ALL!!!' 638 ; 'PROMOTION AND COMMENDATIONS WILL BE GIVEN IMMEDIATELY!!!' 639 GOTO 632 640 DATA 0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,0,0,0,1,0,0,0