summaryrefslogtreecommitdiffstats
path: root/development/minimal-basic/examples/HAMURABI.BAS
diff options
context:
space:
mode:
Diffstat (limited to 'development/minimal-basic/examples/HAMURABI.BAS')
-rw-r--r--development/minimal-basic/examples/HAMURABI.BAS160
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