This file is part of Miscellaneous Programs
. Download the collection to get this file.
Successfully manage your kingdom for 10 years to win. A variation of Hamurabi.
Content
Source Code
10 REM KINGDOM
20 CLS : GO TO 1130
30 PRINT AT 21,4; FLASH 1;"TAP ANY KEY TO CONTINUE ": PAUSE 0: RETURN
40 FOR f=21 TO 9 STEP -1: PRINT AT f,0;" ": NEXT f: RETURN
50 LET s=s+1: REM START
60 LET y$=("Spring" AND s=1)+("Summer" AND s=2)+("Autumn" AND s=3)+("Winter" AND s=4)
70 IF s=4 THEN LET s=NOT s
80 IF s=1 THEN LET y=y+1
90 IF y>5 THEN GO TO 1490
100 FOR p=1 TO a
110 LET N(p)=INT (RND*10)
120 LET p(p)=p(p)+n(p): CLS
130 PRINT TAB 8;y$;" of Year ";y
140 IF n$(p,11)="m" OR n$(p,11)="M" THEN GO SUB 1600
150 IF n$(p,11)="f" OR n$(p,11)="F" THEN GO SUB 1610
160 PRINT r$;n$(p, TO 10)'n(p);" People came to the village."
170 PRINT TAB 10;"Casualities:","Starved . Floods . Thieves"
180 PRINT " ";x(p);TAB 12;z(p);TAB 22;t(p): LET x=RND*6
190 PRINT INK X;"********************************"
200 PRINT TAB 10;"You have:";TAB 16-(LEN STR$ m(p))+2/2;"$";m(p);","
210 PRINT TAB 16-(LEN STR$ p(p)+8)/2;p(p);" People."
220 PRINT TAB 16-(LEN STR$ c(p)+15)/2;c(p);" Sacks of grain."
230 PRINT INK X;"********************************"; INK 0;"Labor arrangement:"
240 INPUT "Mending the dyke? ";a1
250 IF INT a1<>a1 THEN GO TO 240
260 PRINT "(A).Mending the dyke";TAB 31-(LEN STR$ a1);a1
270 INPUT "Planting grain? ";a2
280 IF INT a2<>a2 THEN GO TO 270
290 READ g$: IF G$="E" THEN RESTORE 1290: GO TO 290
300 PRINT "(B).Planting the ";G$;TAB 31-(LEN STR$ a2);a2
310 INPUT "Defending the Kingdom? ";a3
320 IF INT a3<>a3 THEN GO TO 310
330 PRINT "(C).Defending Kingdom";TAB 31-(LEN STR$ a3);a3
340 IF a1+a2+a3>p(p) THEN GO SUB 1620
350 IF y$="Spring" THEN GO SUB 1630
360 GO SUB ph: CLS
370 PRINT 'm$; INK 0 ;AT 8,14;"▛▀▀▀▀▜";AT 9,14;"▌ ▐";AT 10,14;"▌ "; INK 6;"^^"; INK 0;" ▐";AT 11,14;"▌ ▐";AT 12,14;"▙▄▄▄▄▟"
380 PRINT AT 10,28;"\a"
390 LET t(p)=0: LET z(p)=0: LET x(p)=0
400 IF a1<p(p)/2.2 THEN GO SUB 540
410 IF a3<p(p)/2.2 THEN GO SUB 650
420 IF d(p)<p(p)*2 THEN GO SUB 830
430 LET c(p)=c(p)/1.2+d(p)*3
440 IF c(p)+d(p)>p(p)*2 THEN GO SUB 1000
450 IF c(p)+d(p)<p(p)*2 THEN GO SUB 880
460 LET p(p)=INT (p(p)*1.2)
470 LET m(p)=INT (m(p)*1.09)
480 LET c(p)=INT c(p)
490 IF m(p)<0 THEN LET m(p)=0
500 IF c(p)<0 THEN LET c(p)=0
510 IF p(p)<0 THEN LET p(p)=0
520 NEXT p
530 GO TO 50
540 IF INT (RND*3)+1=1 THEN RETURN : REM DYKE
550 LET k=INT (RND*10)+5
560 PAUSE ph
570 FOR f=3 TO k+3
580 FOR n=1 TO 19: PRINT AT n,f; BRIGHT 1; INK 1;"█": NEXT n
590 NEXT f
600 IF k*10>p(p) THEN LET k=INT (p(p)/10)
610 LET p(p)=p(p)-k*10
620 IF k>8 THEN LET m(p)=m(p)-(k-8)*100
630 LET z(p)=k*10
640 LET c(p)=INT (c(p)-k*15): RETURN
650 IF INT (RND*3)+1=1 THEN RETURN : REM DEFEND
660 LET k=INT (RND*10)+5
670 IF k*6>p(p) THEN LET k=INT p(p)/6
680 FOR n=28 TO 16 STEP -1
690 PRINT AT 10,n;"\a ": PAUSE 5
700 PRINT AT 10,n;"\b ": PAUSE 5
710 NEXT n
720 FOR n=1 TO k
730 PRINT AT 10,16;"@": PAUSE 9: PRINT AT 10,16;"©": PAUSE 5
740 NEXT n
750 FOR n=16 TO 27
760 PRINT AT 10,n;" \s\a": PAUSE 3
770 PRINT AT 10,n;" \s\b": PAUSE 3
780 NEXT n
790 LET p(p)=p(p)-k*6
800 LET c(p)=c(p)-k*25
810 LET m(p)=m(p)-k*15
820 LET t(p)=k*6: RETURN
830 REM STARVE
840 LET k=ABS (d(p)-p(p)*2)
850 IF k>p(p) THEN LET k=p(p)
860 LET p(p)=p(p)-INT k
870 LET x(p)=k: RETURN
880 REM BUY
890 LET k=INT (RND*5)+13: CLS
900 PRINT n$(p, TO 10)''"You haven""t got enough grain to feed your village-You must buy some on the Common Market..."
910 PRINT '"Current Market rate = $";k
920 PRINT '"You have $";m(p)
930 PRINT '"You can buy ";INT (m(p)/k);" sacks."
940 INPUT "How many do you wish to buy? ";i
950 IF i>m(p)/k THEN GO TO 940
960 PRINT i;" sacks will cost $";i*k
970 LET m(p)=m(p)-k*i
980 LET c(p)=c(p)+1
990 GO SUB ph: RETURN
1000 REM sell
1010 CLS : PRINT n$(p, TO 10)''"You have surplus grain. Do you wish to sell any, if so input the amount. "; FLASH 1;"N= none"
1020 INPUT "I am selling "; LINE A$
1030 IF A$(1)="N" OR A$(1)="n" THEN RETURN
1040 IF a$="a" THEN LET a$=STR$ INT c(p)
1050 LET k=VAL a$: IF k<=INT c(p) THEN GO TO 1070
1060 PRINT ''"You can not sell that much at this time.": GO SUB ph: GO TO 1000
1070 LET j=INT (RND*5)+5
1080 PRINT k;" sacks of grain, at $";j
1090 PRINT "a sack, making","$";k*j
1100 LET m(p)=m(p)+k*j
1110 LET c(p)=c(p)-k
1120 GO SUB ph: RETURN
1130 REM SETUP
1140 LET s=0: LET y=s
1150 LET ph=30
1160 PRINT '" "; FLASH 1;"A ""PEH SOFTWARE"" SPECIAL"
1170 PRINT ''; INK 1;" *****************"," * *"
1180 PRINT " * K i n g d o m *"," * *"
1190 PRINT INK 1;" *****************"'' INK 0;" You have 5 years to govern your"''"kingdom. You must try to keep"''"alive as many of your serfs as"
1200 PRINT '"possible, they have 3 jobs."''"You must protect them against"
1210 GO SUB ph: GO SUB 40
1220 DATA 24,24,24,24,231,36,36,100,36,189,24,24,36,36,66,36,0,0,0,0,255,255,102,102
1230 FOR d=0 TO 7: READ r: POKE USR "a"+d,r: READ r: POKE USR "b"+d,r: NEXT d
1240 PRINT "...(A) FLOODS"'"...(B) STARVATION"'"...(C) THIEVES"
1250 PRINT '"You have to be the richest"''"player after 5 years to "; FLASH 1;"WIN"; FLASH 0;"."
1260 FOR d=0 TO 7: READ r: POKE USR "s"+d,r: NEXT d
1270 GO SUB ph: GO SUB 40
1280 INPUT "How many are playing ";a
1290 DATA "corn","wheat","rice","rye","barly","E"
1300 DIM n$(a,11): DIM u(a)
1310 DIM M(a): DIM C(a)
1320 DIM P(a): DIM D(a)
1330 DIM N(a): DIM Z(a)
1340 DIM x(a): DIM t(a)
1350 LET m$="██████████████████████████^^^^^^"
1360 FOR f=1 TO 3: LET m$=m$+m$+m$: NEXT f: LET m$=m$( TO 838)
1370 FOR p=1 TO a
1380 LET c(p)=2500
1390 LET m(p)=1e3
1400 LET p(p)=m(p)
1410 INPUT "Who are you? "; LINE n$(p)
1420 INPUT "How old are you? ";u(p)
1430 INPUT "Are you ""M"" OR ""F"" "; LINE n$(p,11)
1440 PRINT "Palyer No. ";p'n$(p, TO 10);" age = ";u(p);" sex = ";n$(p,11)
1450 INPUT "Is this O.K.? (Y/N) "; LINE h$
1460 IF h$(1)="n" THEN GO TO 1410
1470 NEXT p
1480 GO TO 50
1490 REM WINNER
1500 PRINT '"AND NOW FOR THE "; FLASH 1;"WINNER"
1510 LET W$="": LET w=NOT a
1520 FOR P=1 TO A
1530 PRINT N$(P, TO 10);" WITH $";M(P);","
1540 IF M(p)>w THEN LET W$=N$(p, TO 10)
1550 IF M(p)>w THEN LET W=M(p)
1560 NEXT p
1570 PRINT AT 10,0; FLASH 1;"Congratulations ";W$'' FLASH 0;"You are the "; FLASH 1;"WINNER"; FLASH 0;" of the game"''"with $";W
1580 STOP
1590 SAVE "Kingdom" LINE 10
1600 LET r$=("King " AND u(p)>18)+("Prince " AND u(p)<=18): RETURN
1610 LET r$=("QUEEN " AND u(p)>18)+("Princess " AND u(p)<=18): RETURN
1620 PRINT AT 20,3; INK 2;"Too many people": GO SUB ph: GO TO 130
1630 INPUT "Pl LLIST nt how many sacks of grain? ";d(p)
1640 IF d(p)>c(p) THEN GO TO 1630
1650 PRINT d(p);" sacks of ";G$;" planted."
1660 LET c(p)=c(p)-d(p)
1670 IF d(p)/10>a2 THEN LET d(p)=a2*10
1680 RETURN
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.


