10 REM PREVIOUS SOURCE FROM 2000DMP5-5-84ICLCONTRIB A000 11 REM CONVERTED TO PT BASIC 3/08, CHANGES MADE... 12 REM REMOVED '7 ETC CODES, ADDED LET BEFORE ASSIGNMENTS 13 REM ADDED SUBROUTINE AT 9400 TO PRINT INTEGERS WITHOUT SPACES 14 REM MODIFIED INFORMATION PRINT WITH PROPER FORMATTING 15 REM ADDED SUBS AT 9100 9200 9300 TO PRINT PEOPLE BUSHELS ACRES 16 REM WITH PROPER PLURALITY (1 PEOPLE ETC PRINTED 1 PERSON) 17 REM ADDED PROMPT FOR SEED NUMBER, CALLS RND THAT MANY TIMES 30 PRINT "ENTER SEED NUMBER"; 31 INPUT Z 32 FOR Y=1 TO Z 33 LET X=RND(0) 34 NEXT Y 40 PRINT 41 PRINT 42 PRINT 43 PRINT 100 REM ** HAMURABI - GOVERN THE KINGDOM OF SUMERIA 110 REM ** MODIFIED BY PEOPLE'S COMPUTER COMPANY 120 REM ** VARIABLES USED IN THE PROGRAM 130 REM A1 => POPULATION 140 REM A2 => IMMIGRANTS LAST YEAR 150 REM A3 => DEATHS LAST YEAR 160 REM B1 => BUSHELS IN STOREHOUSES 170 REM B2 => BUSHELS DESTROYED LAST YEAR BY RATS 180 REM B3 => HARVEST PER ACRE LAST YEAR 190 REM B4 => TOTAL HARVEST LAST YEAR 200 REM C1 => ACRES OWNED BY CITY 210 REM C2 => VALUE OF AN ACRE 220 REM I => TEMPORARY VARIABLE 230 REM J => " " 300 REM ** INITIALIZATION 310 PRINT "HAMURABI - "; 320 PRINT "WHERE YOU GOVERN THE ANCIENT KINGDOM OF SUMERIA." 330 PRINT "THE OBJECT IS TO FIGURE OUT HOW THE GAME WORKS!!" 331 REM LAST ! IN ABOVE LINE WAS "'7"!"'7 340 PRINT "(IF YOU WANT TO QUIT, SELL ALL YOUR LAND.)" 350 PRINT 400 LET A1=100 410 LET A2=5 420 LET A3=0 430 LET B1=2800 440 LET B2=200 450 LET B3=3 460 LET B4=3000 470 LET C1=1000 480 LET J=1 1000 REM ** REPORT TO HAMURABI 1010 PRINT 1020 PRINT "HAMURABI, I BEG TO REPORT THAT LAST YEAR" 1030 PRINT 1040 REM PRINT A3;"PEOPLE STARVED AND";A2;"PEOPLE CAME TO THE CITY." 1041 LET Z9=A3 1042 GOSUB 9400 1043 GOSUB 9100 1044 PRINT " STARVED AND "; 1045 LET Z9=A2 1046 GOSUB 9400 1047 GOSUB 9100 1048 PRINT " CAME TO THE CITY." 1050 IF J>0 THEN 1100 1060 LET A1=A1-INT(A1/2) 1070 PRINT "THE PLAGUE KILLED HALF THE PEOPLE." 1100 REM PRINT "THE POPULATION IS NOW";A1 1101 PRINT "THE POPULATION IS NOW "; 1102 LET Z9=A1 1103 GOSUB 9400 1104 PRINT "." 1110 PRINT 1120 REM PRINT "WE HARVESTED";B4;"BUSHELS AT";B3;"BUSHELS PER ACRE." 1121 PRINT "WE HARVESTED "; 1122 LET Z9=B4 1123 GOSUB 9400 1124 GOSUB 9200 1125 PRINT " AT "; 1126 LET Z9=B3 1127 GOSUB 9400 1128 GOSUB 9200 1129 PRINT " PER ACRE." 1130 REM PRINT "RATS DESTROYED";B2;"BUSHELS LEAVING";B1; 1131 PRINT "RATS DESTROYED "; 1132 LET Z9=B2 1133 GOSUB 9400 1134 GOSUB 9200 1135 PRINT " LEAVING "; 1136 LET Z9=B1 1137 GOSUB 9400 1140 REM PRINT "BUSHELS IN THE STOREHOUSES." 1141 GOSUB 9200 1142 PRINT " IN THE STOREHOUSES." 1150 PRINT 1160 REM PRINT "THE CITY OWNS";C1;"ACRES OF LAND." 1161 PRINT "THE CITY OWNS "; 1162 LET Z9=C1 1163 GOSUB 9400 1164 GOSUB 9300 1165 PRINT " OF LAND." 1170 LET C2=17+INT(6*RND(0)) 1180 REM PRINT "LAND IS WORTH";C2;"BUSHELS PER ACRE." 1181 PRINT "LAND IS WORTH "; 1182 LET Z9=C2 1183 GOSUB 9400 1184 GOSUB 9200 1185 PRINT " PER ACRE." 1190 PRINT 1200 PRINT 1210 PRINT "HAMURABI . . ." 1300 REM ** BUY LAND? 1310 PRINT 1320 PRINT "BUY HOW MANY ACRES"; 1330 INPUT I 1340 LET I=INT(ABS(I)) 1350 IF I=0 THEN 1500 1360 LET J=I*C2 1370 IF J <= B1 THEN 1400 1380 GOSUB 9000 1390 GOTO 1310 1400 LET B1=B1-J 1410 LET C1=C1+I 1500 REM ** SELL LAND? 1510 PRINT "SELL HOW MANY ACRES"; 1520 INPUT I 1530 LET I=INT(ABS(I)) 1540 IF I=0 THEN 1700 1550 IF I= 0 THEN 1900 1810 LET A2=-A3/2 1820 LET A3=0 1900 REM ** PLANT LAND 1910 PRINT "HOW MANY ACRES SHALL WE PLANT"; 1920 INPUT I 1930 LET I=INT(ABS(I)) 1935 IF I>C1 THEN 1960 1940 LET J=INT(I/2) 1950 IF J <= B1 THEN 1980 1960 GOSUB 9000 1970 GOTO 1910 1980 IF I>10*A1 THEN 1960 1990 LET B1=B1-J 2000 REM ** HARVEST, RATS, AND CHANGES IN POPULATION 2010 LET B3=INT(5*RND(0))+1 2020 LET B4=B3*I 2030 LET B2=INT((B1+B4)*.07*RND(0)) 2040 LET B1=B1-B2+B4 2050 LET J=INT(10*RND(0)) 2060 LET A2=INT(A2+(5-B3)*B1/600+1) 2070 IF A2 <= 50 THEN 2100 2080 LET A2=50 2100 LET A1=A1+A2-A3 2110 GOTO 1010 9000 REM ** ERROR SUBROUTINE 9005 PRINT 9010 PRINT "HAMURABI, THINK AGAIN - YOU ONLY HAVE" 9020 REM PRINT A1;"PEOPLE,";C1;"ACRES, AND"; 9021 LET Z9=A1 9022 GOSUB 9400 9023 GOSUB 9100 9024 PRINT ", "; 9025 LET Z9=C1 9026 GOSUB 9400 9027 GOSUB 9300 9028 PRINT ", AND "; 9030 REM PRINT B1;"BUSHELS IN STOREHOUSES." 9031 LET Z9=B1 9032 GOSUB 9400 9033 GOSUB 9200 9034 PRINT " IN STOREHOUSES." 9040 PRINT 9050 RETURN 9099 REM *** PLURALITY CONTROL *** 9100 IF Z9=1 THEN 9130 9110 PRINT " PEOPLE"; 9120 RETURN 9130 PRINT " PERSON"; 9140 RETURN 9200 PRINT " BUSHEL"; 9210 IF Z9=1 THEN 9240 9230 PRINT "S"; 9240 RETURN 9300 PRINT " ACRE"; 9310 GOTO 9210 9395 REM *** INTEGER PRINT SUBROUTINE *** 9396 REM UP TO 6 DIGITS -999999 to 999999, NO SPACES PRINTED 9397 REM NUMBER TO PRINT IN Z9, Z8 AND Z7 USED FOR TEMPS 9398 REM IF OUT OF RANGE JUST PRINTS 9400 IF ABS(Z9)<=999999 THEN 9405 9402 PRINT Z9 9403 RETURN 9405 IF Z9 >= 0 THEN 9420 9410 PRINT "-"; 9420 LET Z8=ABS(Z9) 9430 LET Z8=INT(Z8) 9440 IF Z8<10 THEN 9560 9450 IF Z8<100 THEN 9530 9460 IF Z8<1000 THEN 9500 9461 IF Z8<10000 THEN 9470 9462 IF Z8<100000 THEN 9466 9463 LET Z7=INT(Z8/100000) 9464 LET Z8=Z8-Z7*100000 9465 GOSUB 9700 9466 LET Z7=INT(Z8/10000) 9467 LET Z8=Z8-Z7*10000 9468 GOSUB 9700 9470 LET Z7=INT(Z8/1000) 9480 LET Z8=Z8-Z7*1000 9490 GOSUB 9700 9500 LET Z7=INT(Z8/100) 9510 LET Z8=Z8-Z7*100 9520 GOSUB 9700 9530 LET Z7=INT(Z8/10) 9540 LET Z8=Z8-Z7*10 9550 GOSUB 9700 9560 LET Z7=Z8 9570 GOSUB 9700 9580 RETURN 9695 REM DIGIT PRINT SUBROUTINE, DIGIT IN Z7 9700 IF Z7=1 THEN 9810 9710 IF Z7=2 THEN 9830 9720 IF Z7=3 THEN 9850 9730 IF Z7=4 THEN 9870 9740 IF Z7=5 THEN 9890 9750 IF Z7=6 THEN 9910 9760 IF Z7=7 THEN 9930 9770 IF Z7=8 THEN 9950 9780 IF Z7=9 THEN 9970 9790 PRINT "0"; 9800 RETURN 9810 PRINT "1"; 9820 RETURN 9830 PRINT "2"; 9840 RETURN 9850 PRINT "3"; 9860 RETURN 9870 PRINT "4"; 9880 RETURN 9890 PRINT "5"; 9900 RETURN 9910 PRINT "6"; 9920 RETURN 9930 PRINT "7"; 9940 RETURN 9950 PRINT "8"; 9960 RETURN 9970 PRINT "9"; 9980 RETURN 9999 END