home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
MBUG
/
MBUG055.ARC
/
KINGDOM.BAS
< prev
next >
Wrap
BASIC Source File
|
1979-12-31
|
8KB
|
264 lines
10 REM **************************************************
20 REM * *
30 REM * K I N G D O M . or Joe's Land. *
40 REM * *
50 REM * Source :- UNKNOWN *
60 REM * Modified by :- P. Turner. *
70 REM * Date :- 12th MAY 1983. *
80 REM * *
90 REM **************************************************
100 REM U S E R E Q U A T E A R E A.
110 LET CLS$ = CHR$(26): 'CLEAR SCREEN
120 REM E N D U S E R E Q U A T E.
130 REM
140 REM PRINT TITLE PAGE
150 PRINT CLS$:
160 FOR LN = 1 TO 5: 'POSITION CURSOR
170 PRINT:
180 NEXT LN
190 PRINT TAB(10)"W e l c o m e t o K I N G D O M.":
200 FOR LN = 1 TO 4:
210 PRINT:
220 NEXT LN:
230 LET N5=8:
240 LET N4=8:
250 PRINT "YOUR GOAL: TO COMPLETE YOUR ";N4;" YEAR TERM.":
260 PRINT "GOOD LUCK.":
270 RANDOMIZE
280 LET M=INT(70000!+(RND*1000)-(RND*1000)):
290 LET M=M*500:
300 LET P=INT(500 +(RND*10)-(RND*10)):
310 LET L=4000:
320 LET W=0:
330 LET X2=0:
340 LET E0=0:
350 LET X1=0:
360 LET E1=0:
370 LET S9=0:
380 LET S0=0:
390 LET M5=0:
400 LET S1=0:
410 LET D1=INT(P/3):
420 LET L1=INT((RND*5)+10):
430 LET L0=INT(RND*10+95):
440 PRINT CLS$:
450 GOSUB 2160:
460 PRINT "YOU HAVE";M;"RALLODS,";
470 PRINT P;"COUNTRYMEN, ":
480 IF W=0 THEN GOTO 500:
490 PRINT W;"FOREIGN WORKERS, ";
500 PRINT "AND";L;"SQ. MILES OF LAND.":
510 PRINT "THIS YEAR INDUSTRY WILL BUY LAND FOR";L0;"RALLODS/SQ. MILE":
520 PRINT "LAND CURRENTLY COSTS";L1;"RALLODS/SQ. MILE TO PLANT":
530 IF S1=0 THEN GOTO 550:
540 PRINT "POLLUTION LEVEL IS ";S1;" UNITS.":
550 GOSUB 2160:
560 INPUT"HOW MANY SQ. MILES TO SELL TO INDUSTRY ";L2:
570 IF L2<0 THEN GOTO 560:
580 IF L2<(L-1000) THEN GOTO 650:
590 PRINT " THINK AGAIN. YOU'VE ONLY ";L-1000;" SQ. MILES OF FARM LAND":
600 IF X<>1 THEN GOTO 560:
610 PRINT "(FOREIGN INDUSTRY NOT INTERESTED IN FOREST LAND BECAUSE":
620 PRINT "OF GREATER DEVELOPMENT COST)":
630 LET X1=1:
640 GOTO 560:
650 LET M=INT(M+L2*L0):
660 LET L=INT(L-L2):
670 LET X9=INT(44*(2000-L)):
680 LET M2=0:
690 LET M3=0:
700 M4=0
710 INPUT"HOW MANY RALLODS TO DISTRIBUTE TO YOUR COUNTRYMEN ";M1
720 IF M1<0 THEN GOTO 710:
730 IF M1<=M THEN GOTO 760:
740 GOSUB 2180:
750 GOTO 710:
760 LET M=INT(M-M1):
770 IF M=0 THEN GOTO 1090:
780 INPUT"HOW MANY SQ. MILES TO PLANT ";L3
790 IF L3<0 THEN GOTO 780:
800 IF L3<=P*2 THEN GOTO 830:
810 PRINT "EACH COUNTRYMAN CAN ONLY PLANT 2 SQ. MILES":
820 GOTO 890:
830 IF L3<=L-1000 THEN GOTO 860:
840 PRINT "ONLY GOT ";L-1000;" SQ. MILES OF FARM LAND.":
850 GOTO 890:
860 LET M4=INT(L3*L1):
870 IF M4<=M THEN GOTO 930:
880 GOSUB 2180:
890 PRINT "YOU CAN AFFORD ";INT(M/L1);
900 PRINT " AND HAVE LABOR FOR ";P*2;
910 PRINT " AND HAVE ";L-1000;" SQ. MILES":
920 GOTO 780:
930 LET M=INT(M-M4):
940 IF M=0 THEN GOTO 1090:
950 INPUT"HOW MUCH TO SPEND FOR EDUCATION ";M2:
960 IF M2<0 THEN GOTO 950:
970 IF M2<M THEN GOTO 1000:
980 GOSUB 2180:
990 GOTO 950:
1000 LET M=INT(M-M2):
1010 IF M=0 THEN GOTO 1090:
1020 IF L=2000 THEN GOTO 1090:
1030 INPUT"HOW MUCH TO SPEND TO COMBAT POLLUTION ";M3:
1040 IF M3<0 THEN GOTO 1030:
1050 IF M3<=M THEN GOTO 1080:
1060 GOSUB 2180:
1070 GOTO 1030:
1080 LET M=INT(M-M3):
1090 GOSUB 2160:
1100 LET D0=0:
1110 LET E2=M2/P:
1120 LET D2=INT(P-M1/100):
1130 IF D2<=0 THEN GOTO 1160:
1140 LET D0=D2:
1150 PRINT D2;"COUNTRYMEN DIED OF STARVATION.":
1160 LET D3=INT((S1/100000!)*(.1+.4*RND)*P):
1170 IF D3<=0 THEN GOTO 1200:
1180 PRINT D3;" COUNTRYMEN DIED OF EXCESS POLLUTION.":
1190 LET D0=D0+D3:
1200 IF D0 <= 0 THEN GOTO 1330:
1210 LET F=D0*9:
1220 PRINT "YOU WERE FORCE TO SPEND";F;
1230 PRINT "RALLODS FOR FUNERAL EXPENSES":
1240 LET M=INT(M-F):
1250 IF M<=0 THEN GOTO 1330:
1260 PRINT "INSUFFICIENT RESOURCES FORCED SALE OF LAND.":
1270 LET T0=-INT((M-L0+1)/L0):
1280 LET L=L-T0:
1290 IF L>=1000 THEN GOTO 1320:
1300 PRINT "NOT ENOUGH LAND TO SELL":
1310 GOTO 2200:
1320 LET M=M+T0*L0:
1330 IF D0>200 THEN GOTO 2230:
1340 LET P=P-D0:
1350 LET D1=D1-D0:
1360 IF D1 < 0 THEN GOTO 2340:
1370 IF D2 <= 2 THEN GOTO 1390:
1380 IF M > 500 THEN GOTO 2460:
1390 IF L2=0 THEN GOTO 1450:
1400 LET T0=INT(L2+L2*RND*2):
1410 IF W=0 THEN GOTO 1430:
1420 LET T0=INT(T0+.1*W):
1430 PRINT T0;" WORKERS CAME TO THE ISLAND AND":
1440 LET W=W+T0:
1450 LET T0=INT(((500-P)/10-D3/3-D2/5)*.75*(1+RND)):
1460 PRINT ABS(T0);" COUNTRYMEN ";
1470 IF T0<0 THEN GOTO 1500:
1480 PRINT "CAME TO ";
1490 GOTO 1510:
1500 PRINT "LEFT ";
1510 PRINT " THE ISLAND.":
1520 LET P=P+T0:
1530 IF P<W THEN GOTO 2410:
1540 LET T0=0:
1550 IF L=2000 THEN GOTO 1610:
1560 LET T0=INT((S1/100000!)*L3):
1570 IF T0<=L3 THEN GOTO 1590:
1580 LET T0=L3:
1590 IF T0=0 THEN GOTO 1610:
1600 PRINT "OF ";L3;" SQ. MILES PLANTED, ";
1610 PRINT "YOU HARVESTED ";L3-T0;" SQ. MILES OF CROPS.":
1620 IF T0=0 THEN GOTO 1690:
1630 IF X2>=2 THEN GOTO 1690:
1640 PRINT " (DUE TO ";
1650 IF X2=0 THEN GOTO 1670:
1660 PRINT "INCREASED ";
1670 PRINT "POLLUTION LEVEL)":
1680 LET X2=X2+1:
1690 LET T1=INT((39+RND*20)*(1+.25*(E0+E1)/20)):
1700 PRINT " MAKING ";INT(T1*(L3-T0));" RALLODS.":
1710 LET M=M+INT(T1*(L3-T0)):
1720 LET E0=E1:
1730 IF E2 <= 10 THEN GOTO 1750:
1740 LET E2=10:
1750 LET E1=E2:
1760 LET T0=2000-L:
1770 IF T0 < 2 THEN GOTO 2040:
1780 IF T0 <= 26 THEN GOTO 1800:
1790 LET T0=26:
1800 LET T0=INT(T0*500*(.52+.5*RND)):
1810 LET T1=S1/100000!:
1820 IF T1<=1 THEN GOTO 1840:
1830 LET T1=1:
1840 LET T1=T1*T0:
1850 PRINT "YOU MADE ";INT(T0-T1);" RALLODS FROM TOURIST TRADE"
1860 LET M=M+INT(T0-T1):
1870 IF INT(T0-T1) <= M5 THEN GOTO 2020:
1880 IF S1<=S9 THEN GOTO 2020:
1890 PRINT " DECREASE BECAUSE ";
1900 LET T2=RND*10:
1910 ON (T2/2)+1 GOTO 1920,1950,1970,1990,2010,2010:
1920 PRINT "FISH POPULATION HAS DWINDLED DUE TO":
1930 PRINT " WATER POLLUTION":
1940 GOTO 2020:
1950 PRINT "AIR POLLUTION IS KILLING GAME BIRD POPULATION":
1960 GOTO 2020:
1970 PRINT "MINERAL BATHS ARE BEING RUINED BY WATER POLLUTION":
1980 GOTO 2020:
1990 PRINT "UNPLEASANT SMOG IS DISCOURIGING SUN BATHERS":
2000 GOTO 2020:
2010 PRINT "HOTEL ARE LOOKING SHABBY DUE TO SMOG GRIT":
2020 LET M5=INT(T0-T1):
2030 LET S9=S1:
2040 LET S2=(2000-L)^2-M3/.44:
2050 PRINT "YOU RECEIVED ";X9;" RALLODS FROM TAXES ON INDUSTRY"
2060 IF S2>=0 THEN GOTO 2110:
2070 LET S1=INT(S1+S2/2):
2080 IF S1 >= S0 THEN GOTO 2100:
2090 LET S1=S0:
2100 GOTO 2130:
2110 LET S1=INT(S1+S2):
2120 LET S0=INT(S0+S2/10):
2130 LET N5=N5-1:
2140 IF N5>0 THEN GOTO 420:
2150 GOTO 2510:
2160 PRINT:
2170 RETURN:
2180 PRINT "ONLY GOT ";M;" RALLODS LEFT!":
2190 RETURN:
2200 PRINT "YOU'VE BEEN THROWN OUT OF OFFICE AND YOU ARE NOW":
2210 PRINT "RESIDING IN PRISON.":
2220 END:
2230 PRINT D0;"COUNTRYMEN DIED IN ONE YEAR!":
2240 PRINT "DUE TO THIS EXTREME MISMANAGEMENT YOU HAVE NOT ONLY"
2250 PRINT "BEEN IMPEACHED AND THROWN OUT OF OFFICE BUT YOU"
2260 LET T0=INT(RND*2.01)+1:
2270 ON T0 GOTO 2280,2300,2320:
2280 PRINT "ALSO HAD YOUR LEFT EYE GOUGED OUT.":
2290 END:
2300 PRINT "HAVE ALSO GAINED A VERY BAD REPUTATION.":
2310 END:
2320 PRINT "HAVE ALSO BEEN DECLARED NATIONAL FINK.":
2330 END:
2340 PRINT "OVER 1/3 OF THE POPULATION HAS DIED SINCE YOU":
2350 PRINT "WERE ELECTED TO OFFICE. THE PEOPLE (REMAINING)":
2360 PRINT "HATE YOUR GUTS.":
2370 GOTO 2380:
2380 IF RND < .25 THEN GOTO 2200:
2390 PRINT "YOU HAVE BEEN ASSASINATED.":
2400 END:
2410 PRINT "THE NUMBER OF FOREIGN WORKERS HAS EXCEEDED";
2420 PRINT " THE NUMBER OF COUNTRYMEN.":
2430 PRINT "AS A MAJORITY THEY HAVE REVOLTED AND ";
2440 PRINT "TAKEN OVER THE COUNTRY.":
2450 GOTO 2380:
2460 PRINT "MONEY WAS LEFT OVER IN THE TREASURY WHICH YOU DID NOT":
2470 PRINT "SPEND. AS A RESULT SOME OF YOUR COUNTRYMEN DIED OF ":
2480 PRINT "STARVATION. THE PUBLIC IS ENRAGED AND YOU HAVE BEEN":
2490 PRINT "FORCED TO EITHER RESIGN OR COMMIT SUICIDE.":
2500 END:
2510 PRINT:
2520 PRINT "CONGRATULATIONS":
2530 PRINT "YOU HAVE SUCCESSFULLY COMPLETED YOUR ";N4;" YEAR TERM":
2540 PRINT "OF OFFICE. YOU HAVE DONE SUCH A GOOD JOB THAT YOU MIGHT":
2550 PRINT "WANT TO RUN FOR ELECTION AGAIN THIS TIME.":
2560 PRINT "TYPE 0 (ZERO) IF YOU DO";
2570 INPUT Q
2580 LET N5=N4:
2590 IF Q=0 THEN GOTO 410:
2600 END:
AIN THIS TIME.":
2560 PRINT "TYPE 0 (ZERO) IF YOU DO";
2570 INPUT Q
2580 LET N5=N