Appears on
Assembled by Tim Ward from many sources. Contains programs 10122 – 10175.
Source Code
1 PRINT AT 3,7;"*****************" 2 PRINT AT 4,7;"* *" 3 PRINT AT 5,7;"* K I N G D O M *" 4 PRINT AT 6,7;"* *" 5 PRINT AT 7,7;"*****************" 6 PRINT AT 10,0;"YOU HAVE TO GOVERN A VILLAGE";AT 12,0;"FOR A PERIOD OF FIVE YEARS.YOU";AT 14,0;"MUST TRY TO KEEP ALIVE AS MANY" 7 PRINT AT 16,0;"PEOPLE AS POSSIBLE.THEY WILL DO";AT 18,0;"ONE OF THREE JOBS.";AT 20,0;"YOU MUST PROTECT THEM AGAINST.." 8 PRINT AT 21,5;"PRESS ANY KEY TO CONTINUE" 9 IF INKEY$="" THEN GOTO 9 10 FOR F=10 TO 21 11 LET Y=0 12 NEXT F 13 PRINT AT 10,0;"...(A)>=FLOODS";AT 11,0;"...(B)>=STARVATION";AT 12,0;"...(C)>=THIEVES";AT 14,0;"YOU HAVE TO BE AS RICH AS POSS.";AT 16,0;"AT THE END OF THE FIVE YEARS";AT 18,0;"AND THE RICHEST WINS." 14 PRINT AT 21,5;"PRESS ANY KEY TO CONTINUE" 15 IF INKEY$="" THEN GOTO 15 16 FOR F=10 TO 21 17 PRINT AT F,0;" " 18 NEXT F 19 PRINT AT 10,0;"HOW MANY PLAYERS? "; 20 INPUT A 21 PRINT A 22 DIM N$(A,11) 23 DIM U(A) 24 GOSUB 7000 34 PRINT AT 21,5;"PRESS ANY KEY TO START" 35 IF INKEY$="" THEN GOTO 35 36 FOR F=1 TO 22 37 SCROLL 38 NEXT F 39 GOSUB 8000 40 DIM M(A) 41 DIM C(A) 42 DIM Q(A) 43 FOR F=1 TO A 44 LET M(F)=1000 45 LET Q(F)=1000 46 LET C(F)=2500 47 NEXT F 48 DIM D(A) 49 DIM N(A) 50 DIM Z(A) 51 DIM X(A) 52 DIM T(A) 53 FOR F=1 TO A 54 LET Z(F)=0 55 LET X(F)=0 56 LET T(F)=0 57 NEXT F 100 REM START 105 LET S=0 115 LET S=S+1 120 IF S=1 THEN LET Y$="SPRING" 125 IF S=2 THEN LET Y$="SUMMER" 130 IF S=3 THEN LET Y$="AUTUMN" 135 IF S=4 THEN LET Y$="WINTER" 140 IF S=1 THEN LET Y=Y+1 150 IF S=4 THEN LET S=0 170 FOR P=1 TO A 175 LET N(P)=INT (RND*10) 176 LET Q(P)=Q(P)+N(P) 180 PRINT AT 0,9;Y$;" YEAR ";Y 190 IF N$(P)(11)="M" AND U(P)>18 THEN PRINT "KING ";N$(P)( TO 10) 193 IF N$(P)(11)="F" AND U(P)<=18 THEN PRINT "PRINCESS ";N$(P)( TO 10) 195 IF N$(P)(11)="M" AND U(P)<=18 THEN PRINT "PRINCE ";N$(P)( TO 10) 200 IF N$(P)="F" AND U(P)>18 THEN PRINT "QUEEN ";N$(P)( TO 10) 201 PRINT 202 PRINT N(P);" PEOPLE CAME TO THE VILLAGE." 203 PRINT 210 PRINT TAB 9;"CASUALTIES:" 211 PRINT " STARVED . FLOODS . THIEVES" 212 PRINT TAB 3;X(P);TAB 12;Z(P);TAB 22;T(P) 214 PRINT "********************************" 220 PRINT TAB 10;"YOU HAVE:" 240 PRINT TAB 15-(((LEN (STR$ M(P)))+2)/2);"$";M(P);"," 260 PRINT TAB 15-(((LEN (STR$ Q(P)))+8)/2);Q(P);" PEOPLE," 280 PRINT TAB 15-(((LEN (STR$ C(P)))+15)/2);" SACKS OF CORN." 290 PRINT "********************************" 300 PRINT "LABOR ARRANGEMENT:" 320 PRINT "(A) MENDING THE DYKE "; 330 INPUT A1 335 IF INT A1<>A1 THEN GOTO 330 340 PRINT A1 360 PRINT "(B) PLANTING CORN " 370 INPUT A2 375 IF INT A2<>A2 THEN GOTO 370 380 PRINT A2 400 PRINT "(C) DEFENDING THE VILLAGE " 409 INPUT A3 410 IF INT A3<>A3 THEN GOTO 409 411 PRINT A3 412 IF A1+A2+A3<=Q(P) THEN GOTO 420 413 PRINT AT 21,5;"TOO MANY PEOPLE" 414 FOR F=1 TO 22 415 IF INT A3<>A3 THEN GOTO 410 416 NEXT F 417 GOTO 180 420 IF Y$<>"SPRING" THEN GOTO 430 422 PRINT "HOW MANY SACKS OF CORN ARE TO";" BE PLANTED? "; 423 INPUT D(P) 424 PRINT D(P) 425 IF D(P)>C(P) THEN GOTO 422 426 LET C(P)=C(P)-D(P) 427 IF D(P)/10>A2 THEN LET D(P)=A2*10 430 PRINT AT 21,5;"PRESS ANY KEY TO CONTINUE" 440 IF INKEY$="" THEN GOTO 440 450 FOR F=1 TO 22 460 SCROLL 465 NEXT F 466 FAST 470 PRINT AT 0,0;M$ 490 PRINT AT 8,14;"******";AT 9,14;"* *";AT 10,14;"* ++ *";AT 11,14;"* *";AT 12,14;"******" 500 PRINT AT 10,27;"T" 501 LET T(P)=0 502 LET Z(P)=0 503 LET X(P)=0 504 SLOW 510 IF A1<Q(P)/2.2 THEN GOSUB 1000 520 IF A3<Q(P)/2.2 THEN GOSUB 2000 530 IF D(P)<Q(P)*2 THEN GOSUB 3000 535 LET C(P)=(C(P)/1.2)+D(P)*3 540 IF C(P)+D(P)<Q(P)*2 THEN GOSUB 4000 550 IF C(P)+D(P)>Q(P)*2 THEN GOSUB 5000 560 LET Q(P)=Q(P)*1.2 565 LET Q(P)=INT (Q(P)) 575 LET C(P)=INT (C(P)) 580 LET M(P)=M(P)*1.09 583 LET M(P)=INT (M(P)) 590 FOR F=1 TO 22 600 SCROLL 610 NEXT F 611 IF M(P)<0 THEN LET M(P)=0 612 IF C(P)<0 THEN LET C(P)=0 613 IF Q(P)<0 THEN LET Q(P)=0 620 NEXT P 630 IF Y<5 THEN GOTO 115 640 PRINT AT 0,0;"NOW FOR THE WINNER....." 644 LET W$="" 645 LET W=0 650 FOR F=1 TO A 660 PRINT N$(F)( TO 10);" WITH $";M(F);"," 680 IF M(F)>W THEN LET W$=N$(F)( TO 10) 690 IF M(F)>W THEN LET W=M(F) 700 NEXT F 705 POKE 16418,0 710 PRINT AT 20,0,"CONGRATULATIONS",W$;" YOU ARE THE WINNER OF THE GAME WITH $";W 730 GOTO 10000 1000 REM DYKE 1010 IF INT (RND*3)+1=1 THEN RETURN 1020 LET K=INT (RND*10)+5 1030 FOR F=3 TO K+3 1040 FOR G=0 TO 21 1050 PRINT AT G,F;CHR$ 8 1060 NEXT G 1070 IF K*10>Q(P) THEN LET K=INT (Q(P)/10) 1080 LET Q(P)=Q(P)-K*10 1090 IF K>8 THEN LET M(P)=M(P)-((K-8)*100) 1095 LET Z(P)=K*10 1100 LET C(P)=C(P)-K*15 1110 RETURN 2000 REM DEF 2010 IF INT (T*3)+1=1 THEN RETURN 2020 LET K=INT (RND*10)+5 2025 IF K*6>Q(P) THEN LET K=INT (Q(P)/6) 2030 FOR F=27 TO 16 STEP -1 2040 PRINT AT 10,F;"T " 2050 NEXT F 2060 FOR F=1 TO K 2070 PRINT AT 10,16;"\. " 2080 PRINT EXP 10,16;"\' " 2090 PRINT AT 10,16;"\ '" 2100 PRINT AT 10,16;"\ ." 2110 NEXT F 2120 FOR F=16 TO 27 2130 PRINT AT 10,F;" T" 2140 NEXT F 2150 LET Q(P)=Q(P)-K*6 2151 LET T(P)=K*6 2160 LET C(P)=C(P)-K*25 2170 LET M(P)=M(P)-K*15 2180 RETURN 3000 REM STAR 3010 LET K=ABS (D(P)-(Q(P)*2)) 3015 IF K>Q(P) THEN LET K=Q(P) 3020 LET Q(P)=Q(P)-(INT (K)) 3035 LET X(P)=K 3040 RETURN 4000 REM BUY 4010 LET K=INT (RND*5)+15 4020 FOR F=1 TO 22 4030 SCROLL 4040 NEXT F 4050 PRINT AT 0,0;"YOU HAVEN/T GOT ENOUGH CORN TO FEED ";"YOUR VILLAGE-YOU MUST BUY SOME..." 4060 PRINT 4070 PRINT "CURRENT BUYING RATE = ";K 4080 PRINT 4090 PRINT "YOU HAVE $";M(P) 4100 PRINT 4110 PRINT "THE MOST YOU CAN HAVE ARE ";INT (M(P)/K) 4120 PRINT "SACKS" 4140 PRINT "HOW MANY DO YOU WANT TO BUY?"; 4150 INPUT I 4160 IF I>(M(P)/K) THEN GOTO 4140 4170 PRINT I 4180 PRINT 4190 PRINT "THAT WILLCOST $ ";I*K 4200 LET M(P)=M(P)-(K*I) 4210 LET C(P)=C(P)+1 4220 RETURN 5000 REM SELL 5010 FOR F=1 TO 22 5020 SCROLL 5030 NEXT F 5040 PRINT AT 0,0;"YOU HAVE A SURPLUS OF CORN.DO YOU";"WANT TO SELL ANY? IF SO, SPECIFY THE AMOUNT." 5050 IF A$(1)="N" THEN RETURN 5070 LET K=VAL A$ 5071 IF K<=C(P) THEN GOTO 5080 5072 PRINT 5073 PRINT "YOU ONLY HAVE ";INT (C(P));" SACKS." 5074 IF INKEY$="" THEN GOTO 5074 5075 GOTO 5000 5080 LET J=INT (RND*5)+5 5090 PRINT K;" SACKS OF CORN AT" 5100 PRINT "$";J;" A SACK,WILL MAKE " 5110 PRINT "$";K*J 5120 LET M(P)=M(P)+K*J 5130 LET C(P)=C(P)-K 5140 RETURN 7000 FOR F=1 TO A 7010 CLS 7020 PRINT "PLAYER ";F 7030 PRINT 7040 PRINT "YOUR NAME PLEASE: " 7050 INPUT N$(F) 7051 PRINT N$(F) 7052 PRINT 7060 PRINT "YOUR AGE? "; 7070 INPUT U(F) 7080 PRINT U(F) 7090 PRINT 7100 PRINT "ARE MALE(M) OR FEMALE(F)? "; 7110 INPUT N$(F)(11) 7120 PRINT N$(F)(11) 7130 PRINT 7140 PRINT "O.K.? "; 7150 INPUT H$ 7160 INPUT H$ 7170 IF H$="NO" OR H$="NO" THEN GOTO 7010 7180 NEXT F 7190 RETURN 8000 FAST 8005 LET M$="" 8010 FOR F=1 TO 22 8020 LET M$=M$+"%A%A%A; % ; ;//////" 8030 NEXT F 8040 SLOW 8050 RETURN 9000 SAVE "1014%9" 9005 REM THIS PROGRAM CRASHES REPORT CODE 5/470 9010 RUN