diff options
Diffstat (limited to 'development/minimal-basic/examples/HAMURABI.BAS')
-rw-r--r-- | development/minimal-basic/examples/HAMURABI.BAS | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/development/minimal-basic/examples/HAMURABI.BAS b/development/minimal-basic/examples/HAMURABI.BAS new file mode 100644 index 0000000000..7d8cf17976 --- /dev/null +++ b/development/minimal-basic/examples/HAMURABI.BAS @@ -0,0 +1,160 @@ +5 RANDOMIZE +10 PRINT TAB(32);"HAMURABI" +20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" +30 PRINT +40 PRINT TAB(11);"ECMA-55 PORT BY B. WATSON, URCHLAY AT SLACKWARE.UK" +50 PRINT +80 PRINT "TRY YOUR HAND AT GOVERNING ANCIENT SUMERIA" +90 PRINT "FOR A TEN-YEAR TERM OF OFFICE." +92 PRINT +95 LET D1=0 +97 LET P1=0 +100 LET Z=0 +102 LET P=95 +104 LET S=2800 +106 LET H=3000 +107 LET E=H-S +110 LET Y=3 +120 LET A=H/Y +130 LET I=5 +140 LET Q=1 +210 LET D=0 +215 PRINT +216 PRINT +217 PRINT "HAMURABI: I BEG TO REPORT TO YOU," +218 LET Z=Z+1 +220 PRINT "IN YEAR";Z;",";D;"PEOPLE STARVED,";I;"CAME TO THE CITY," +225 LET P=P+I +227 IF Q>0 THEN 230 +228 LET P=INT(P/2) +229 PRINT "A HORRIBLE PLAGUE STRUCK! HALF THE PEOPLE DIED." +230 PRINT "POPULATION IS NOW";P +232 PRINT "THE CITY NOW OWNS";A;"ACRES." +235 PRINT "YOU HARVESTED";Y;"BUSHELS PER ACRE." +250 PRINT "THE RATS ATE";E;"BUSHELS." +260 PRINT "YOU NOW HAVE";S;"BUSHELS IN STORE." +261 PRINT +270 IF Z=11 THEN 860 +310 LET C=INT(10*RND) +311 LET Y=C+17 +312 PRINT "LAND IS TRADING AT";Y;"BUSHELS PER ACRE." +320 PRINT "HOW MANY ACRES DO YOU WISH TO BUY"; +321 INPUT Q +322 IF Q<0 THEN 850 +323 IF Y*Q<=S THEN 330 +324 GOSUB 710 +325 GOTO 320 +330 IF Q=0 THEN 340 +331 LET A=A+Q +332 LET S=S-Y*Q +333 LET C=0 +334 GOTO 400 +340 PRINT "HOW MANY ACRES DO YOU WISH TO SELL"; +341 INPUT Q +343 IF Q<0 THEN 850 +345 IF Q<A THEN 360 +347 GOSUB 720 +350 GOTO 340 +360 LET A=A-Q +370 LET S=S+Y*Q +380 LET C=0 +400 PRINT +410 PRINT "HOW MANY BUSHELS DO YOU WISH TO FEED YOUR PEOPLE"; +411 INPUT Q +412 IF Q<0 THEN 850 +418 REM *** TRYING TO USE MORE GRAIN THAN IS IN SILOS? +420 IF Q<=S THEN 430 +421 GOSUB 710 +422 GOTO 410 +430 LET S=S-Q +433 LET C=1 +435 PRINT +440 PRINT "HOW MANY ACRES DO YOU WISH TO PLANT WITH SEED"; +442 INPUT D +443 IF D=0 THEN 511 +444 IF D<0 THEN 850 +445 REM *** TRYING TO PLANT MORE ACRES THAN YOU OWN? +446 IF D<=A THEN 450 +447 GOSUB 720 +448 GOTO 440 +449 REM *** ENOUGH GRAIN FOR SEED? +450 IF INT(D/2)<=S THEN 455 +452 GOSUB 710 +453 GOTO 440 +454 REM *** ENOUGH PEOPLE TO TEND THE CROPS? +455 IF D<10*P THEN 510 +460 PRINT "BUT YOU HAVE ONLY";P;"PEOPLE TO TEND THE FIELDS! NOW THEN," +470 GOTO 440 +510 LET S=S-INT(D/2) +511 GOSUB 800 +512 REM *** A BOUNTIFUL HARVEST! +515 LET Y=C +518 LET H=D*Y +520 LET E=0 +521 GOSUB 800 +522 IF INT(C/2)<>C/2 THEN 530 +523 REM *** RATS ARE RUNNING WILD!! +525 LET E=INT(S/C) +530 LET S=S-E+H +531 GOSUB 800 +532 REM *** LET'S HAVE SOME BABIES +533 LET I=INT(C*(20*A+S)/P/100+1) +539 REM *** HOW MANY PEOPLE HAD FULL TUMMIES? +540 LET C=INT(Q/20) +541 REM *** HORROS, A 15% CHANCE OF PLAGUE +542 LET Q=INT(10*(2*RND-.3)) +550 IF P<C THEN 210 +551 REM *** STARVE ENOUGH FOR IMPEACHMENT? +552 LET D=P-C +553 IF D>.45*P THEN 560 +555 LET P1=((Z-1)*P1+D*100/P)/Z +556 LET P=C +557 LET D1=D1+D +558 GOTO 215 +560 PRINT +562 PRINT "YOU STARVED";D;"PEOPLE IN ONE YEAR!!!" +565 PRINT "DUE TO THIS EXTREME MISMANAGEMENT YOU HAVE NOT ONLY" +566 PRINT "BEEN IMPEACHED AND THROWN OUT OF OFFICE BUT YOU HAVE" +567 PRINT "ALSO BEEN DECLARED NATIONAL FINK!!!!" +569 GOTO 990 +710 PRINT "HAMURABI: THINK AGAIN. YOU HAVE ONLY" +711 PRINT S;"BUSHELS OF GRAIN. NOW THEN," +712 RETURN +720 PRINT "HAMURABI: THINK AGAIN. YOU OWN ONLY";A;"ACRES. NOW THEN," +730 RETURN +800 LET C=INT(RND*5)+1 +801 RETURN +850 PRINT +852 PRINT "HAMURABI: I CANNOT DO WHAT YOU WISH." +855 PRINT "GET YOURSELF ANOTHER STEWARD!!!!!" +857 GOTO 990 +860 PRINT "IN YOUR 10-YEAR TERM OF OFFICE,";P1;"PERCENT OF THE" +862 PRINT "POPULATION STARVED PER YEAR ON THE AVERAGE, I.E. A TOTAL OF" +865 PRINT D1;"PEOPLE DIED!!" +867 LET L=A/P +870 PRINT "YOU STARTED WITH 10 ACRES PER PERSON AND ENDED WITH" +875 PRINT L;"ACRES PER PERSON." +877 PRINT +880 IF P1>33 THEN 565 +885 IF L<7 THEN 565 +890 IF P1>10 THEN 940 +892 IF L<9 THEN 940 +895 IF P1>3 THEN 960 +896 IF L<10 THEN 960 +900 PRINT "A FANTASTIC PERFORMANCE!!! CHARLEMANGE, DISRAELI, AND" +905 PRINT "JEFFERSON COMBINED COULD NOT HAVE DONE BETTER!" +910 GOTO 990 +940 PRINT "YOUR HEAVY-HANDED PERFORMANCE SMACKS OF NERO AND IVAN IV." +945 PRINT "THE PEOPLE (REMAINING) FIND YOU AN UNPLEASANT RULER, AND," +950 PRINT "FRANKLY, HATE YOUR GUTS!!" +955 GOTO 990 +960 PRINT "YOUR PERFORMANCE COULD HAVE BEEN SOMEWHAT BETTER, BUT" +965 PRINT "REALLY WASN'T TOO BAD AT ALL. ";INT(P*.8*RND);"PEOPLE" +970 PRINT "WOULD DEARLY LIKE TO SEE YOU ASSASSINATED BUT WE ALL HAVE" +975 PRINT "OUR TRIVIAL PROBLEMS." +989 REM BAS55 HAS NO CHR$() FUNCTION, NO WAY TO RING A BELL. +990 REM 990 PRINT: FOR N=1 TO 10: PRINT CHR$(7);: NEXT N +991 PRINT +995 PRINT "SO LONG FOR NOW." +997 PRINT +999 END |