Listing of file='DUKE.BAS;01' on disk='vmedia/dukedom-sector.ccvf'
100 CLEAR 1000 110 M= 1.95:FL= 0:TPI= 6.28315 120 PLOT 12,6,1:PRINT TAB( 25);"DUKEDOM":PRINT :PRINT 130 PLOT 15,6,2 140 REM 150 INPUT "DO YOU WISH TO SKIP THE DETAILED REPORTS AT THE END OF EACH YEAR ?";R$ 160 DIM P(8),L(3),G(10),S(6),U(6),R(8),P$(8),L$(3),G$(10) 170 READ Y,C1,U1,U2,K,D,P,L,G 180 DATA 0,3.95,0,0,0,0,100,600,4177 190 FOR I= 1TO 8:READ P(I):NEXT I 200 DATA 96,0,0,0,0,0,-4,8 210 FOR I= 1TO 3:READ L(I):NEXT I 220 DATA 600,0,0 230 FOR I= 1TO 10:READ G(I):NEXT I 240 DATA 5193,-1344,0,-768,0,0,0,1510,-120,-300 250 FOR I= 1TO 6:READ S(I):NEXT I 260 DATA 216,200,184,0,0,0 270 FOR I= 1TO 8:READ P$(I):NEXT I 280 DATA "PEASANTS AT START","STARVATIONS","KINGS LEVY","WAR CASUALTIES","LOOTING VICTIMS" 290 DATA "DISEASE VICTIMS","NATURAL DEATHS","BIRTHS" 300 FOR I= 1TO 3:READ L$(I):NEXT I 310 DATA "LAND AT START","BOUGHT/SOLD","FRUITS OF WAR" 320 FOR I= 1TO 10:READ G$(I):NEXT I 330 DATA "GRAIN AT START","USED FOR FOOD","LAND DEALS","SEEDINGS","RAT LOSSES" 340 DATA "MERCENARY HIRE","FRUITS OF WAR","CROP YIELD","CASTLE EXPENSES","ROYAL TAX" 350 REM 360 PRINT :PLOT 20:INPUT "HIT RETURN TO CONTINUE";A$:PLOT 18 365 PLOT 12:PRINT "YEAR";Y;" PEASANTS";P;" LAND";L;" GRAIN";G:PRINT 370 IF R$= "Y"THEN 620 380 REM POPULATION STATUS DISPLAY 390 FOR J1= 1TO 8 400 IF P(J1)< > 0OR J1= 1THEN PRINT P$(J1);TAB( 20);P(J1) 410 NEXT J1 420 PRINT "PEASANTS AT END";TAB( 20);P:PRINT 430 REM 440 REM LAND STATUS DISPLAY 445 PLOT 17 450 FOR J1= 1TO 3 460 IF L(J1)< > 0OR J1= 1THEN PRINT L$(J1);TAB( 20);L(J1) 470 NEXT J1 480 PRINT "LAND AT END";TAB( 20);L:PRINT 490 REM 550 REM GRAIN STATUS DISPLAY 555 PLOT 21:I= 0 560 FOR J1= 1TO 10 570 IF G(J1)< > 0OR J1= 1THEN PLOT 3,30,3+ I:PRINT G$(J1):PLOT 3,50,3+ I:PRINT G(J1):I= I+ 1 580 NEXT J1 590 PLOT 3,30,3+ I:PRINT "GRAIN AT END":PLOT 3,50,3+ I:PRINT G 595 PLOT 3,0,16,18 600 REM 601 REM LAND YIELD DISPLAY 602 PRINT " 100% 80% 60% 40% 20% DEPL" 603 FOR J1= 1TO 6:PRINT S(J1),:NEXT J1:PRINT 604 REM 610 IF Y< = 0THEN PRINT "( SEVERE CROP DAMAGE DUE TO SEVEN YEAR LOCUSTS )" 620 PRINT :Y= Y+ 1 630 FOR I= 1TO 8:P(I)= 0:NEXT I 640 FOR I= 1TO 3:L(I)= 0:NEXT I 650 FOR I= 1TO 10:G(I)= 0:NEXT I 660 P(1)= P:L(1)= L:G(1)= G 670 IF P> = 33GOTO 710 680 PRINT "YOU HAVE SO FEW PEASANTS LEFT THAT" 690 PRINT "THE HIGH KING HAS ABOLISHED YOUR DUCAL RIGHT":PRINT 700 GOTO 2730 710 IF L> = 199GOTO 730 720 PRINT "YOU HAVE SO LITTLE LAND LEFT THAT":GOTO 690 730 IF U1> 88OR U2> 99GOTO 750 740 IF G> 429GOTO 770 750 PRINT "THE PEASANTS TIRE OF WAR AND STARVATION" 760 PRINT "YOU ARE DEPOSED":PRINT :GOTO 2730 770 IF Y> 45AND K= 0THEN PRINT "YOU HAVE REACHED THE AGE OF MANDATORY RETIREMENT":GOTO 2730 780 U1= 0 790 IF K> 0THEN PRINT "THE HIGH KING DEMANDS TWICE THE ROYAL TAX IN THE HOPE" 800 IF K> 0THEN PRINT "OF PROVOKING WAR":INPUT "WILL YOU PAY ?";V$:K= 2:IF V$= "N"THEN K= - 1 810 REM 820 INPUT "GRAIN FOR FOOD =";V 830 IF V< = 100THEN V= V* P 840 IF V> GTHEN GOSUB 2760:GOTO 820 850 HATE= 0 860 IF V/ P< 11AND V< > GTHEN HATE= 1 870 IF HATE= 1THEN PRINT "THE PEASANTS DEMONSTRATE BEFORE THE CASTLE" 880 IF HATE= 1THEN PRINT "WITH SHARPENED SCYTHES":U1= U1+ 3:GOTO 820 890 HATE= 0 900 G(2)= - V:G= G+ G(2) 910 X1= V/ P 920 IF X1< 13THEN P(2)= - INT (P- V/ 13):P= P+ P(2) 930 IF X1< - 13THEN P(2)= - INT (P- V/ 13):P= P+ P(2) 940 X1= X1- 14 950 IF X1> 4THEN X1= 4 960 U1= U1- 3* P(2)- 2* X1 970 IF U1> 88GOTO 750 980 IF P< 33GOTO 670 990 C= C1:GOSUB 2850:X1= INT (2* C+ 20* A- 5) 1000 IF X1< 4THEN X1= 4 1010 PRINT "LAND TO BUY AT";X1; 1020 INPUT " HL./HA. =";V:G(3)= - V* X1 1030 IF - G(3)> GTHEN GOSUB 2760:GOTO 1010 1040 L(2)= V:S(3)= S(3)+ V 1050 IF V> 0GOTO 1250 1060 X2= S(1)+ S(2)+ S(3) 1070 FOR J1= 1TO 3 1080 X1= X1- 1 1090 PRINT "LAND TO SELL AT";X1; 1100 INPUT " HL./HA. =";V 1110 IF V> X2THEN PRINT "BUT YOU ONLY HAVE";X2;" HA. OF GOOD LAND":GOTO 1090 1120 G(3)= V* X1 1130 IF G(3)< = 4000GOTO 1180 1140 PRINT "NO BUYERS HAVE THAT MUCH GRAIN - SELL LESS" 1150 NEXT J1 1160 PRINT "BUYERS HAVE LOST INTEREST" 1170 V= 0:G(3)= 0 1180 L(2)= - V 1190 FOR J1= 3TO 1STEP - 1 1200 IF V< = S(J1)GOTO 1240 1210 V= V- S(J1):S(J1)= 0 1220 NEXT J1 1230 PRINT "LAND SELLING LOOP ERROR":END 1240 S(J1)= S(J1)- V 1250 L= L+ L(2) 1260 IF L< 10GOTO 710 1270 IF L(2)< 0AND X1< 4THEN G(3)= INT (G(3)/ 2):GOTO 1290 1280 G= G+ G(3):GOTO 1310 1290 PRINT "THE HIGH KING APPROPRIATES HALF YOUR EARNINGS" 1300 PRINT "AS PUNISHMENT FOR SELLING AT SUCH A LOW PRICE" 1310 IF K< > - 2GOTO 1420 1320 PRINT "THE KINGS ARMY IS ABOUT TO ATTACK YOUR DUCY" 1330 FOR I= 0TO 300:NEXT I:X1= INT (G/ 100) 1335 PLOT 12,14,22 1340 PRINT TAB( 10);"YOU HAVE HIRED";X1;" FOREIGN MERCENARIES":PRINT 1350 PRINT TAB( 14);"AT 100 HL. EACH (PAYMENT IN ADVANCE)" 1360 IF 8* X1+ P> 2399GOTO 1390:FOR I= 0TO 500:NEXT I 1370 PRINT "THE PLACEMENT OF YOUR HEAD ATOP THE CASTLE GATE" 1380 PRINT "SIGNIFIES THAT":GOTO 690 1390 PRINT "WIPE THE BLOOD FROM YOUR CROWN - YOU ARE NOW HIGH KING" 1400 PRINT :PRINT "A NEARBY MONARCHY THREATENS WAR" 1410 PRINT "HOW MANY..............":END 1420 INPUT "LAND TO PLANT =";V 1430 IF V> LTHEN GOSUB 2800:GOTO 1420 1440 IF V> 4* PTHEN GOSUB 2820:GOTO 1420 1450 G(4)= - 2* V 1460 IF G(4)> GTHEN GOSUB 2760:GOTO 1420 1470 G(8)= V:G= G+ G(4) 1480 FOR I= 1TO 6:U(I)= 0:NEXT I 1490 FOR I= 1TO 6 1500 IF V< = S(I)THEN 1540 1510 V= V- S(I):U(I)= S(I):S(I)= 0 1520 NEXT I 1530 PRINT "LAND TABLE UPDATING ERROR":END 1540 U(I)= V:S(I)= S(I)- V:S(1)= S(1)+ S(2):S(2)= 0 1550 FOR J1= 3TO 6 1560 S(J1- 2)= S(J1- 2)+ S(J1):S(J1)= 0 1570 NEXT J1 1580 FOR J1= 1TO 5:S(J1+ 1)= S(J1+ 1)+ U(J1):NEXT J1 1590 S(6)= S(6)+ U(6) 1600 GOSUB 2850:C= INT (12* A+ 3) 1610 IF INT (Y/ 7)* 7= YTHEN PRINT "SEVEN YEAR LOCUSTS":C= C/ 2 1620 X1= 0 1630 FOR J1= 1TO 5 1640 X1= X1+ U(J1)* (1.2- .2* J1) 1650 NEXT J1 1660 IF G(8)= 0THEN C1= 0:C= 0 1670 C1= INT ((C* (X1/ G(8)))* 100)/ 100:C= C1 1680 PRINT "YIELD =";C;" HL./HA." 1690 GOSUB 2850:X1= INT (A* 12+ 3) 1700 IF X1< 9GOTO 1820 1710 G(5)= - INT ((X1* G)/ 83) 1720 G= G+ G(5) 1730 PRINT "RATS INFEST THE GRAINERY" 1740 IF P< 67OR K= - 1GOTO 1820 1750 GOSUB 2850:X1= INT (A* 5) 1760 IF X1> P/ 30GOTO 1820 1770 PRINT "THE HIGH KING REQUIRES";X1;" PEASANTS FOR HIS ESTATES AND MINES." 1780 PRINT "WILL YOU SUPPLY THEM (Y) OR PAY";X1* 100;" HL." 1790 INPUT "OF GRAIN INSTEAD (N) ?";V$ 1800 IF V$= "N"THEN G(10)= - 100* X1:G= G+ G(10):GOTO 1820 1810 P(3)= - X1:P= P+ P(3) 1820 IF K= - 1THEN PRINT "THE HIGH KING CALLS FOR PEASANT LEVIES " 1830 IF K= - 1THEN PRINT "AND HIRES MANY FOREIGN MERCENARIES":K= - 2:GOTO 2500 1840 X1= INT (11- 1.5* C) 1850 IF X1> = 2THEN X1= - X1* X1:GOTO 1870 1860 X1= - 2* X1 1870 IF K< > 0OR P< = 109OR 17* (L- 400)+ G< = 10600GOTO 1910 1880 PRINT "THE HIGH KING GROWS UNEASY AND MAY BE" 1890 PRINT "SUBSIDISING WARS AGAINST YOU":X1= X1+ 2 1900 X2= Y+ 5:GOTO 1920 1910 X2= 0 1920 GOSUB 2850:X3= INT (A* 5) 1930 IF X3> X1GOTO 2500 1940 PRINT "A NEARBY DUKE THREATENS WAR" 1950 GOSUB 2850:X2= INT (X2+ 85+ 18* A* 6) 1960 X4= 1.2- U1/ 16:X5= INT (P* X4)+ 13 1970 INPUT "WILL YOU ATTACK FIRST ?";V$ 1980 IF V$= "N"GOTO 2060 1990 IF X2> = X5GOTO 2020 2000 PRINT "PEACE NEGOTIATIONS WERE SUCCESSFUL" 2010 P(4)= - X1- 1:X2= 0:GOTO 2040 2020 PRINT "FIRST STRIKE FAILED YOU NEED PROFESSIONALS" 2030 P(4)= - X3- X1- 2:X2= X2+ 3* P(4) 2040 P= P+ P(4) 2050 IF X2< 1THEN U1= U1- 2* P(4)- 3* P(5):GOTO 2500 2060 INPUT "HOW MANY MERCENARIES WILL YOU HIRE AT 40 HL. EACH =";V 2070 IF V> 75THEN PRINT "THERE ARE ONLY 75 MERCENARIES AVAILABLE FOR HIRE":GOTO 2060 2080 X2= INT (X2* M):X5= INT (P* X4)+ 7* V+ 13 2090 X6= X2- 4* V- INT (.25* X5):X2= X5- X2 2100 L(3)= INT (.8* X2) 2110 IF - L(3)> .67* LTHEN PRINT "YOU HAVE BEEN OVERRUN AND HAVE LOST THE ENTIRE DUKEDOM":GOTO 1370 2120 X1= L(3) 2130 FOR J1= 1TO 3 2140 X3= INT (X1/ (4- J1)) 2150 IF - X3< = S(J1)THEN X5= X3:GOTO 2170 2160 X5= - S(J1) 2170 S(J1)= S(J1)+ X5 2180 X1= X1- X5 2190 NEXT J1 2200 FOR J1= 4TO 6 2210 IF - X1< = S(J1)THEN X5= X3:GOTO 2230 2220 X5= - S(J1) 2230 S(J1)= S(J1)+ X5 2240 X1= X1- X5 2250 NEXT J1 2260 IF L(3)< 399GOTO 2340 2270 PRINT "YOU HAVE OVERRUN THE ENEMY AND ANNEXED HIS ENTIRE DUKEDOM" 2280 G(7)= 3513:G= G+ G(7):X6= - 47:X4= .55 2290 IF K> 0GOTO 2380 2300 K= 1 2310 PRINT "THE KING FEARS FOR HIS THRONE AND" 2320 PRINT "MAY BE PLANNING DIRECT ACTION" 2330 GOTO 2380 2340 IF X2> = 0THEN PRINT "YOU HAVE WON THE WAR":X4= .67:G(7)= INT (1.7* L(3)):G= G+ G(7):GOTO 2360 2350 PRINT "YOU HAVE LOST THE WAR":X4= G(8)/ L 2360 IF X6< = 9THEN X6= 0:GOTO 2380 2370 X6= INT (X6/ 10) 2380 IF X6> PTHEN X6= P 2390 P(4)= P(4)- X6 2400 P= P- X6:G(8)= G(8)+ INT (X4* L(3)) 2410 X6= 40* V 2420 IF X6< = GTHEN G(6)= - X6:GOTO 2450 2430 G(6)= - G:P(5)= - INT ((X6- G)/ 7)- 1 2440 PRINT "THERE IS NOT ENOUGH GRAIN TO PAY THE MERCENARIES" 2450 REM 2460 G= G+ G(6) 2470 IF - P(5)< PTHEN P(5)= - P(5) 2480 P= P+ P(5) 2490 L= L+ L(3):U1= U1- 2* P(4)- 3* P(5) 2500 GOSUB 2850:X1= INT (A* 7) 2510 IF X1> 3GOTO 2590 2520 IF X1> 1GOTO 2570 2530 IF D> 0GOTO 2590 2540 PRINT "THE BLACK PLAGUE HAS STRUCK THE DUCHY" 2550 D= 13:X2= 3 2560 P(6)= - INT (P/ X2):P= P+ P(6):GOTO 2590 2570 PRINT "A POX EPIDEMIC HAS BROKEN OUT":X2= X1* 5 2580 P(6)= - INT (P/ X2):P= P+ P(6) 2590 GOSUB 2850:X1= INT (A* 6+ 4) 2600 IF P(5)< > 0THEN X1= 4.5 2610 P(8)= INT (P/ X1) 2620 P(7)= INT (.3- P/ 22):P= P+ P(7)+ P(8):D= D- 1 2630 G(8)= INT (C* G(8)):G= G+ G(8):X1= G(8)- 4000 2640 IF X1> 0THEN G(9)= - INT (.1* X1) 2650 G(9)= G(9)- 120:G= G+ G(9) 2660 IF K< 0GOTO 2720 2670 X1= - INT (L/ 2) 2680 IF K> = 2THEN X1= 2* X1 2690 IF X1> GTHEN PRINT "YOU HAVE INSUFFICIENT GRAIN TO PAY THE ROYAL TAX" 2700 IF X1> GGOTO 690 2710 G(10)= G(10)+ X1:G= G+ X1 2720 U2= INT (U2* .85)+ U1:GOTO 360 2730 PRINT :INPUT "DO YOU WISH TO TRY ANOTHER GAME ?";V$ 2740 IF V$= "Y"GOTO 100 2750 END 2760 PRINT "BUT YOU DONT HAVE ENOUGH GRAIN" 2770 PRINT "YOU HAVE";G;" HL. OF GRAIN LEFT" 2780 IF X1> = 4THEN PRINT "ENOUGH TO BUY";INT (G/ X1);" HA.OF LAND":RETURN 2790 PRINT "ENOUGH TO PLANT";INT (G/ 2);" HA. OF LAND":RETURN 2800 PRINT "BUT YOU DONT HAVE ENOUGH LAND" 2810 PRINT "YOU ONLY HAVE";L;" HA. OF LAND LEFT":RETURN 2820 PRINT "BUT YOU DONT HAVE ENOUGH PEASANTS" 2830 PRINT "YOUR PEASANTS CAN ONLY PLANT";4* P;" HA. OF LAND":RETURN 2840 END 2850 RA= RND (PEEK (33209)) 2860 RB= RND (PEEK (33209)) 2870 A= (- 2* LOG (RA))^ (.5) 2880 IF FL= 0THEN A= A* COS (TPI* RB):FL= 1:GOTO 2900 2890 A= A* SIN (TPI* RB):FL= 0 2900 A= (A+ 2)/ 4 2910 IF A< 0OR A> 1GOTO 2850 2920 RETURN 2930 END