1000 'SWARMS2 - YET ANOTHER GEM FROM 'ZOSO' 1010 CLEAR : CLEAR 1000 1020 PRINT CHR$(26);"!!!!! ATTENTION: THE BEES ARE ATTACKING !!!!!!" 1030 PRINT : PRINT 1040 PRINT "BEGIN DEFENSE PLAN: " : PRINT 1050 PRINT "TIME: 1" 1060 INPUT "ENTER YOUR NAME FOR IDENTIFICATION CHECK"; N$ 1070 PRINT CHR$(26) 1080 INPUT "ENTER CODE WORD FOR NUCLEAR CLEARANCE"; C$ 1090 GOSUB 6120 1100 REM CREATE TWO INITIAL SWARMS 1110 DIM E(21),S(21),A$(21),U(21),G(21),M(21),D(21),C(21) 1120 DIM K(21),V(21),R(21) 1130 A1=INT(RND(1)*21+1) 1140 A2=INT(RND(1)*21+1) 1150 IF A1=A2 THEN 1130 1160 S(A1) = INT(RND(1)*5+2) 1170 S(A2) = INT(RND(1)*5+2) 1180 E(A1) = INT(RND(1)*9+6) 1190 E(A2) = INT(RND(1)*9+6) 1200 REM SUBTRACT ONE HOUR FROM ALL ETA'S 1210 FOR A=1 TO 21 1220 IF E(A)=0 THEN 1240 1230 GOTO 1250 1240 IF U(A) = 0 THEN 1460 1250 IF S(A) = 1 THEN 1460 1260 IF ABS(U(A)) = 1 THEN 1370 1270 IF ABS(E(A)) = 1 THEN 1310 1280 E(A)=E(A) - 1 1290 C(A)=C(A)+(17-E(A)) 1300 GOTO 1460 1310 IF E(A) = -1 THEN 1350 1320 PRINT "THE BEES HAVE ARRIVED IN THE MAJOR CITY IN SECTION ";A 1330 E(A)=-1 1340 U(A)=6 1350 U(A)=U(A)-1 1360 GOTO 1460 1370 IF U(A) = -1 THEN 1460 1380 PRINT "THE BEES HAVE DESTROYED THE MAJOR CITY IN SECTION ";A 1390 U(A)=-1 1400 IF V(A)<>-1 THEN 1430 1410 PRINT "BUT THE POPULATION HAS BEEN EVACUATED" 1420 GOTO 1450 1430 K(A)=1 1440 C(A)=(1E+06*(RND(1)*A+1))+C(A) 1450 GOTO 1460 1460 NEXT A 1470 REM ADD ONE UNIT TO TIME 1480 T=T+1 1490 REM CREATE NEW SWARM 1500 IF T/30<>INT(T/30) THEN 1590 1510 A=INT(RND(1)*21+1) 1520 IF S(A)<>0 THEN 1500 1530 IF R(A)<>0 THEN 1500 1540 IF K(A)<>0 THEN 1500 1550 S(A)=INT(RND(1)*5+2) 1560 E(A)=INT(RND(1)*9+16) 1570 C(A)=INT(RND(1)*10) 1580 PRINT "A NEW SWARM IS REPORTED IN SECTION ";A 1590 REM CHECK COMBATED SWARMS 1600 FOR A=1 TO 21 1610 IF T<>G(A) THEN 1770 1620 IF S(A)<> 1 THEN 1710 1630 S(A)=0 1640 G(A)=0 1650 E(A)=0 1660 M(A)=0 1670 K(A)=0 1680 U(A)=0 1690 PRINT "** THE SWARM IN SECTION ";A;" IS TOTALLY DESTROYED." 1700 GOTO 1770 1710 S(A)=S(A)-M(A) 1720 PRINT "** THE PHASE ON SECTION ";A;" WAS SUCCESSFUL." 1730 IF S(A)>=1 THEN 1750 1740 S(A)=1 1750 G(A)=0 1760 M(A)=0 1770 NEXT A 1780 REM ADD ONE UNIT TO EACH UNCOMBATTED SWARM 1790 FOR A=1 TO 21 1800 IF E(A)=1 THEN 2050 1810 IF S(A)=1 THEN 2020 1820 IF S(A)=0 THEN 2050 1830 IF S(A)+1<9 THEN 1990 1840 IF A=1 THEN 1920 1850 IF S(A-1)>0 THEN 1910 1860 IF R(A-1)<>0 THEN 2050 1870 PRINT "** THE SWARM IN SECTION ";A;" HAS SPREAD TO SECTION ";A-1 1880 S(A-1)=3 1890 E(A-1)=INT(RND(1)*10+5) 1900 GOTO 2050 1910 IF A=21 THEN 2050 1920 IF S(A+1)>0 THEN 2050 1930 IF R(A+1)<>0 THEN 2050 1940 PRINT "** THE SWARM IN SECTION ";A;" HAS SPREAD TO SECTION ";A+1 1950 IF R(A+1)<>0 THEN 2050 1960 S(A+1)=3 1970 E(A+1)=INT(RND(1)*10+5) 1980 GOTO 2050 1990 S(A)=S(A)+1 2000 C(A)=C(A)+S(A) 2010 GOTO 2050 2020 IF D(A)=1 THEN 2050 2030 PRINT "** THE SWARM IN SECTION ";A;" IS READY TO BE DESTROYED." 2040 D(A)=1 2050 NEXT A 2060 REM WINNER CHECK 2070 W=0 2080 FOR A=1 TO 21 2090 W=S(A)+W 2100 NEXT A 2110 IF W>=1 THEN 2180 2120 PRINT "*******ALL SWARMS ARE NOW DESTROYED*******" 2130 PRINT "FINAL STATISTICS ON ATTACKS AND DESTRUCTION ARE NOW " 2140 PRINT "BEING COMPUTED, ... FINAL RESULTS FOLLOW ....." 2150 A=0 2160 PRINT 2170 GOTO 5590 2180 REM EVACUATION CHECK 2190 FOR A=1 TO 21 2200 IF V(A)<>T THEN 2300 2210 IF U(A)=-1 THEN 2270 2220 IF K(A)>0 THEN 2270 2230 PRINT "** POPULATION IN SECTION ";A;" IS EVACUATED" 2240 C(A)=C(A)+INT(RND(1)*17) 2250 V(A)=-1 2260 GOTO 2300 2270 PRINT "** POPULATION IN SECTION ";A;" WAS DESTROYED BEFORE " 2280 PRINT " IT COULD BE EVACUATED" 2290 V(A)=0 2300 NEXT A 2310 REM RETURN EVACUATION CHECK 2320 FOR A=1 TO 21 2330 IF R(A)<>T THEN 2390 2340 IF R(A)<1 THEN 2390 2350 K(A)=0 2360 R(A)=0 2370 V(A)=0 2380 PRINT "** THE POPULATION HAS RETURNED TO THE CITY IN SECTION ";A 2390 NEXT A 2400 REM LOSER CHECK 2410 Q=0 2420 FOR A=1 TO 21 2430 Q=C(A)+Q 2440 NEXT A 2450 IF Q<7.5E+07 THEN 2550 2460 PRINT "THE BEES HAVE DEVASTATED THE UNITED STATES AND " 2470 PRINT "THERE ARE NOW OVER 75 MILLION CASUALTIES, THE BEES" 2480 PRINT "ARE NOW CONSIDERED TO BE THE VICTORS OVER MODERN" 2490 PRINT "TECHNOLOGY." 2500 A=0 2510 Q=0 2520 W=0 2530 PRINT 2540 GOTO 5590 2550 REM COMMAND INPUT 2560 PRINT "TIME: ";T+1 2570 INPUT "COMMAND"; COM 2580 IF COM>8 OR COM<1 OR COM<>INT(COM) THEN PRINT "WRONG !!!"; : GOTO 2570 2590 ON COM GOTO 2600,3110,3520,4740,4960,5560,5820,6090 2600 REM MAP PRINT OUT 2610 PRINT CHR$(26);"1) ATTACK SCAN MAP" 2620 PRINT 2630 FOR A=1 TO 21 2640 IF S(A)>6 THEN 2760 2650 IF S(A)>4 THEN 2740 2660 IF S(A)>1 THEN 2720 2670 IF S(A)>0 THEN 2700 2680 A$(A)= "?" 2690 GOTO 2770 2700 A$(A)="." 2710 GOTO 2770 2720 A$(A)="+" 2730 GOTO 2770 2740 A$(A)="*" 2750 GOTO 2770 2760 A$(A)="#" 2770 NEXT A 2780 PRINT "----------------------------------------------------" 2790 PRINT TAB(48);"---" 2800 PRINT TAB(20);"CANADA- NO INFORMATION / /" 2810 Z1$="----------------------- / "+A$(18)+"/" 2820 PRINT TAB(15);Z1$ 2830 PRINT TAB(15);"! ! ! ! ! !\- -/ /" 2840 Z1$="! "+A$(1)+" ! "+A$(3)+" ! "+A$(6)+" ! " 2850 Z1$=Z1$+A$(9)+" ! "+A$(13)+" ! \--/---/" 2860 PRINT TAB(15);Z1$ 2870 Z1$= "! !---!---!----!----! "+A$(16)+" ! /" 2880 PRINT TAB(15);Z1$ 2890 Z1$= "!---! ! ! ! ! ! "+A$(19)+" !" 2900 PRINT TAB(15);Z1$ 2910 Z1$="! ! "+A$(4)+" ! "+A$(7)+" ! "+A$(10)+" ! " 2920 Z1$=Z1$+A$(14)+" !---!---!" 2930 PRINT TAB(15);Z1$ 2940 Z1$="! "+A$(2)+" !---!---!----!----! ! !" 2950 PRINT TAB(15);Z1$ 2960 Z1$=" \ ! ! ! ! ! "+A$(17)+" ! "+A$(20)+" !" 2970 PRINT TAB(15);Z1$ 2980 Z1$=" \ ! "+A$(5)+" ! "+A$(8)+" ! "+A$(11)+" ! " 2990 Z1$=Z1$+A$(15)+" ! ! /" 3000 PRINT TAB(15);Z1$ 3010 Z1$=" \!---!---!----!----!---! "+A$(21)+"!" 3020 PRINT TAB(15);Z1$ 3030 PRINT TAB(27);"\ !";TAB(42);"\ !" 3040 Z1$=" \ "+A$(12)+"!" 3050 PRINT TAB(15);Z1$;TAB(42);"! !" 3060 PRINT TAB(30);"\-!";TAB(42);"!-!" 3070 PRINT TAB(20);"MEXICO- NO INFORMATION" 3080 PRINT 3090 PRINT "----------------------------------------------------" 3100 GOTO 1200 3110 REM ETA REPORT 3120 PRINT CHR$(12);"2) ETA REPORT" 3130 PRINT 3140 INPUT "ENTER SECTION #"; A 3150 IF A<1 OR A>21 OR A<>INT(A) THEN PRINT "WRONG !!!"; : GOTO 3140 3160 PRINT "*************************************" 3170 IF A<>0 THEN 3200 3180 D7=-1 3190 FOR A = 1 TO 21 3200 IF S(A)=1 THEN 3420 3210 IF R(A)=-1 THEN 3450 3220 IF E(A)=0 THEN 3400 3230 IF U(A)=-1 THEN 3280 3240 IF E(A)=-1 THEN 3310 3250 PRINT "THE BEES WILL ARRIVE AT THE MAJOR CITY IN" 3260 PRINT " SECTION ";A;" AT ";E(A)+T;" HOURS." 3270 GOTO 3470 3280 PRINT "THE BEES HAVE ALREADY DESTROYED THE CITY IN" 3290 PRINT "SECTION ";A;" AND ARE NOW INHABITING IT." 3300 GOTO 3470 3310 PRINT "THE BEES HAVE ARRIVED AT THE CITY IN" 3320 IF V(A)<>-1 THEN 3360 3330 PRINT "SECTION ";A;" BUT THE POPULATION HAS BEEN" 3340 PRINT " EVACUATED" 3350 GOTO 3470 3360 PRINT "SECTION ";A;" AND THE POPULATION OF THAT CITY" 3370 PRINT "CAN ONLY SURVIVE FOR ABOUT ";U(A);" MORE HOURS." 3380 PRINT " USE OF URBAN DEFENSES IS RECOMMENDED." 3390 GOTO 3470 3400 PRINT " NO SWARMS REPORTED IN SECTION ";A 3410 GOTO 3470 3420 PRINT "THE BEES IN SECTION ";A;" ARE READY TO BE " 3430 PRINT "DESTROYED." 3440 GOTO 3470 3450 PRINT "SECTION ";A;" IS A RADIOACTIVE WASTELAND THAT" 3460 PRINT " IS COMPLETELY UNPOPULATED" 3470 PRINT "*************************************" 3480 IF D7<>-1 THEN 3500 3490 NEXT A 3500 D7=0 3510 GOTO 1200 3520 REM BATTLE PHASE OPTIONS 3530 PRINT CHR$(26) 3540 PRINT "3) BATTLE PHASE OPTIONS" 3550 INPUT "ENTER SECTION #"; A 3560 INPUT "ENTER PHASE"; P 3570 IF V(A)<1 THEN 3600 3580 PRINT "SECTION ";A;" IS BEING EVACUATED" 3590 GOTO 1200 3600 IF G(A)>0 THEN 3620 3610 GOTO 3640 3620 PRINT "THE SWARM IN SECTION ";A;" IS ALREADY BEING COMBATTED" 3630 GOTO 1200 3640 IF S(A)=0 THEN 3660 3650 GOTO 3680 3660 PRINT "NO SWARM IS REPORTED IN SECTION ";A 3670 GOTO 1200 3680 IF S(A)<>1 THEN 3720 3690 IF P=5 THEN 3760 3700 PRINT "THE DESTRUCTION PHASE SHOULD BE USED IN SECTION ";A 3710 GOTO 1200 3720 IF E(A)<>-1 THEN 3760 3730 IF P=6 THEN 3760 3740 PRINT "URBAN DEFENSES SHOULD BE USED IN SECTION ";A 3750 GOTO 1200 3760 N=RND(1) 3770 ON P GOTO 3780,3870,3960,4020,4110,4190 3780 REM PHASE 1 3790 PRINT "BEE COCKTAIL: PHASE ONE, NOW BEING ATTEMPTED." 3800 IF N>.95 THEN 1200 3810 G(A)=T+INT(RND(1)*3+1) 3820 IF S(A)>5 THEN 3850 3830 M(A)=S(A)-2 3840 GOTO 1200 3850 M(A)=S(A)-5 3860 GOTO 1200 3870 REM PHASE TWO 3880 PRINT "PROJECT QUEEN: PHASE TWO, NOW BEING ATTEMPTED." 3890 IF N>.92 THEN 1200 3900 G(A) = T+INT(RND(1)*3+4) 3910 IF S(A)>3 THEN 3940 3920 M(A)=1 3930 GOTO 1200 3940 M(A)=S(A)-1 3950 GOTO 1200 3960 REM PHASE THREE 3970 PRINT "PROJECT BRUSH FIRE: PHASE THREE, NOW BEING ATTEMPTED." 3980 IF N>.96 THEN 1200 3990 G(A)=T+1 4000 M(A)=2 4010 GOTO 1200 4020 REM PHASE 4 4030 PRINT "PROJECT STERILE MALE: PHASE FOUR, NOW BEING ATTEMPTED." 4040 IF N>.89 THEN 1200 4050 G(A)=T+INT(RND(1)*3+3) 4060 IF S(A)>6 THEN 4090 4070 M(A)=S(A)-1 4080 GOTO 1200 4090 M(A)=4 4100 GOTO 1200 4110 REM PHASE 5 4120 IF S(A)=1 THEN 4150 4130 PRINT "SWARM TOO LARGE: DESTRUCTION NOT POSSIBLE" 4140 GOTO 1200 4150 PRINT "DESTRUCTION: PHASE FIVE, NOW BEING ATTEMPTED." 4160 IF N>.7 THEN 1200 4170 G(A)=T+INT(RND(1)*3+2) 4180 GOTO 1200 4190 REM PHASE 6 4200 IF E(A)<>-1 THEN 3700 4210 INPUT "ENTER URBAN DEFENSE CODE"; D$ 4220 C(A)=C(A)+INT(200*RND(1)) 4230 IF RND(1) >.8 THEN 1200 4240 IF D$="A" THEN 4330 4250 IF D$="B" THEN 4390 4260 IF D$="C" THEN 4450 4270 IF D$="D" THEN 4510 4280 IF D$="E" THEN 4570 4290 IF D$="F" THEN 4610 4300 IF D$="G" THEN 4650 4310 PRINT "INVALID URBAN DEFENSE CODE !!!" : PRINT : GOTO 4210 4320 GOTO 1200 4330 REM *A* 4340 IF S(A)>5 THEN 4370 4350 S(A)=S(A)-1 4360 GOTO 4680 4370 S(A)=2 4380 GOTO 4680 4390 REM *B* 4400 IF S(A)>4 THEN 4430 4410 S(A)=S(A)-3 4420 GOTO 4680 4430 S(A)=S(A)-2 4440 GOTO 4680 4450 REM *C* 4460 IF S(A)>7 THEN 4490 4470 S(A)=S(A)-3 4480 GOTO 4680 4490 S(A)=1 4500 GOTO 4680 4510 REM *D* 4520 IF S(A)>3 THEN 4550 4530 S(A)=1 4540 GOTO 4680 4550 S(A)=S(A)-3 4560 GOTO 4680 4570 REM *E* 4580 IF RND(1)>.5 THEN 4680 4590 S(A)=2 4600 GOTO 4680 4610 REM *F* 4620 IF RND(1)>.4 THEN 4680 4630 S(A)=1 4640 GOTO 4680 4650 REM *G* 4660 IF RND(1)>.8 THEN 4680 4670 S(A)=S(A)-4 4680 PRINT "THE URBAN DEFENSE IN SECTION ";A;" WAS SUCCESSFUL" 4690 IF S(A)>1 THEN 1200 4700 S(A)=1 4710 D(A)=1 4720 PRINT "** SWARM IN SECTION ";A;" IS READY TO BE DESTROYED" 4730 GOTO 1200 4740 REM EVACUATION PROCEDURE 4750 PRINT CHR$(26); 4760 PRINT "4) EVACUATION PROCEDURE" 4770 INPUT "ENTER SECTION #"; A 4780 IF A<1 OR A>21 OR A<>INT(A) THEN PRINT "WRONG !!! "; : GOTO 4770 4790 IF S(A)=0 THEN 4850 4800 IF V(A)>0 THEN 4870 4810 IF V(A)=-1 THEN 4890 4820 IF K(A)>0 THEN 4910 4830 IF U(A)=-1 THEN 4910 4840 GOTO 4930 4850 PRINT "COMPUTER FAILSAFE...NO SWARMS REPORTED IN SECTION ";A 4860 GOTO 1200 4870 PRINT "SECTION ";A;" IS BEING EVACUATED ALREADY" 4880 GOTO 1200 4890 PRINT "CITY IN SECTION ";A;" IS ALREADY EVACUATED" 4900 GOTO 1200 4910 PRINT "POPULATION IN SECTION ";A;" HAS BEEN DESTROYED" 4920 GOTO 1200 4930 PRINT "EVACUATION PROCEDURE NOW IN PROGRESS" 4940 V(A)=5+T 4950 GOTO 1200 4960 REM ***** NUCLEAR DESTRUCTION SEQUENCE ***** 4970 PRINT CHR$(26) 4980 PRINT "5) NUCLEAR DESTRUCTION SEQUENCE" 4990 INPUT "PLEASE ENTER YOUR NAME"; N1$ 5000 IF N$<>N1$ THEN 5170 5010 INPUT "PLEASE ENTER YOUR CODE WORD"; C1$ 5020 IF C$<>C1$ THEN 5170 5030 PRINT "POSITIVE IDENTIFICATION CHECK";CHR$(7) 5040 PRINT "CODE WORD CHECK IS VALID" 5050 PRINT "ID SEQUENCE COMPLETED" 5060 INPUT "PLEASE ENTER SECTION #"; A 5070 IF A<1 OR A>21 OR A<>INT(A) THEN PRINT "WRONG !!! "; : GOTO 5060 5080 IF E(A)<>-1 THEN 5120 5090 IF S(A)=0 THEN 5150 5100 PRINT 5110 GOTO 5210 5120 PRINT "COMPUTER FAILSAFE: BEES NOT ARRIVED IN THE MAJOR" 5130 PRINT "CITY IN SECTION ";A 5140 GOTO 1200 5150 PRINT "COMPUTER FAILSAFE: NO SWARM REPORTED IN SECTION ";A 5160 GOTO 1200 5170 PRINT "ID SEQUENCE DEFAULT....IGNORED" 5180 GOTO 1200 5190 PRINT "NUCLEAR DESTRUCTION ABORTED." 5200 GOTO 1200 5210 PRINT "BOMB IN SECTION ";A;" IS NOW ACTIVE" 5220 IF K(A)=1 THEN 5270 5230 IF V(A)=-1 THEN 5270 5240 PRINT "SECTION ";A;" HAS NOT BEEN EVACUATED" 5250 INPUT "DO YOU WISH TO CONTINUE"; K$ 5260 IF LEFT$(K$,1)="Y" THEN 5270 ELSE 5190 5270 INPUT "TYPE 'X' FOR BOMB DETONATION"; F$ 5280 IF F$<>"X" THEN 5190 5290 PRINT CHR$(26) 5300 PRINT "!!!!!!!!!!!!!!!! BOMB DETONATED !!!!!!!!!!!!!!!!" 5310 PRINT "SWARM HAS BEEN DESTROYED!!!!!!!!!" 5320 PRINT "CITY HAS BEEN DESTROYED!!!!!!!!!!" 5330 C(A)=2413 5340 S(A)=0 5350 E(A)=0 5360 U(A)=0 5370 D(A)=0 5380 G(A)=0 5390 M(A)=0 5400 IF K(A)=1 THEN 5490 5410 IF V(A)<>-1 THEN 5480 5420 PRINT "THE POPULATION WILL MOVE BACK TO THE CITY" 5430 PRINT "IN SECTION ";A;" WHEN THE RADIATION LEVEL" 5440 PRINT "HAS DECREASED." 5450 K(A)=2 5460 R(A)=T+7 5470 GOTO 1200 5480 C(A)=INT(2E+06*(RND(1)*A+1))+C(A) 5490 PRINT "** NO SURVIVORS ARE REPORTED IN SECTION ";A 5500 PRINT "** THE BEES WILL NOT ENTER A SECTION WITH" 5510 PRINT "** NO HUMAN INHABITANTS, SO SECTION ";A 5520 PRINT "** IS COMPLETELY LACKING LIFE OF ANY KIND." 5530 K(A)=2 5540 R(A)=-1 5550 GOTO 1200 5560 REM CASUALTY REPORT 5570 PRINT CHR$(26);"6) CASUALTY REPORT" 5580 INPUT "ENTER SECTION #"; A 5590 PRINT "************************************" 5600 IF A<>0 THEN 5650 5610 D7=-1 5620 FOR A=1 TO 21 5630 IF C(A)=0 THEN 5670 5640 IF C(A)>=1E+06 THEN 5690 5650 PRINT "SECTION ";A;": ";C(A);" CASUALTIES REPORTED" 5660 GOTO 5700 5670 PRINT "SECTION ";A;": NO BEE RELATED CASUALTIES" 5680 GOTO 5700 5690 PRINT "SECTION ";A;": ";C(A)/1E+06;" MILLION CASUALTIES" 5700 PRINT "************************************" 5710 F=C(A)+F 5720 IF D7<>-1 THEN 5790 5730 NEXT A 5740 D7=0 5750 IF F<1E+06 THEN 5780 5760 PRINT "TOTAL CASUALTIES REPORTED: ";F/1E+06;" MILLION CASUALTIES" 5770 GOTO 5790 5780 PRINT "TOTAL CASUALTIES REPORTED: ";F 5790 IF W=0 THEN 6100 5800 F=0 5810 GOTO 1200 5820 REM PRINT COMMANDS IN SHORT 5830 PRINT CHR$(26) 5840 PRINT "************************COMMANDS*********************" 5850 PRINT 5860 PRINT " 1) ATTACK SCAN MAP" 5870 PRINT " 2) ETA REPORT" 5880 PRINT " 3) BATTLE PHASE OPTIONS" 5890 PRINT " 1. BEE COCKTAIL" 5900 PRINT " 2. PROJECT QUEEN" 5910 PRINT " 3. PROJECT BRUSH FIRE" 5920 RINT " 4. P