Advertisement
Guest User

KINGDOM.BAS

a guest
Aug 9th, 2017
379
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GwBasic 11.97 KB | None | 0 0
  1. 100 '    KINGDOM
  2. 110 '
  3. 120 GOSUB 2180: GOSUB 1970
  4. 130 KEY OFF: WIDTH 80
  5. 140 RANDOMIZE VAL(RIGHT$(TIME$, 2))
  6. 150 CLS: RESTORE: K = 100: S = 500: P = 2500: Q = 100
  7. 160 A = 0: D = 1: M = 0: N = 0: Z1 = 0
  8. 170 GOSUB 1830
  9. 180 B1 = 0: B2 = 0: B3 = 0: B4 = 0: B5 = 0: K1 = 0: S1 = 0: P1 = 0: N1 = 0
  10. 190 ON M GOTO 320, 430, 530, 680
  11. 200 IF S <= 2 * KORS < T1 THEN M = M + 1: GOTO 320
  12. 210 IF 5 * K <= Q THEN M = M + 1: GOTO 320
  13. 220 INPUT "HOW MANY SQUARES DO YOU WISH TO TRADE SERVANTS FOR"; B1
  14. 230 IF B1 >= 0 AND S - (B1 * T1) >= 2 * K THEN 270
  15. 240 PRINT "SERVANTS MUST TEND YOUR KNIGHTS, ";
  16. 250 PRINT "YOU MAY TRADE FOR ONLY"; INT((S - 2 * K) / T1); "SQUARES."
  17. 260 GOTO 220
  18. 270 IF Q + B1 <= 5 * K THEN 300
  19. 280 PRINT "YOU HAVEN'T ENOUGH KNIGHTS TO PROTECT SUCH A KINGDOM!"
  20. 290 GOTO 220
  21. 300 S = S - B1 * T1: Q = Q + B1
  22. 310 M = M + 1: GOTO 170
  23. 320 IF P <= 5 * Q + T2 OR P < T2 THEN M = M + 1: GOTO 430
  24. 330 IF 5 * K <= Q THEN M = M + 1: GOTO 430
  25. 340 INPUT "HOW MANY SQUARES DO YOU WISH TO ACQUIRE BY TRADING PEASANTS FOR"; B2
  26. 350 IF B2 >= 0 AND P - (B2 * T2) >= 5 * (Q + B2) THEN 390
  27. 360 GOSUB 1730
  28. 370 PRINT "PEASANTS MUST TEND YOUR LAND, ";
  29. 380 PRINT "YOU MAY TRADE FOR ONLY"; Z; "SQUARES.": GOTO 340
  30. 390 IF Q + B2 <= 5 * K THEN 420
  31. 400 PRINT "YOU HAVE NOT ENOUGH KNIGHTS TO PROTECT SUCH A KINGDOM!"
  32. 410 GOTO 340
  33. 420 P = P - (B2 * T2): Q = Q + B2: GOTO 310
  34. 430 IF D = 1 OR N < T3 OR 5 * K <= Q THEN M = M + 1: GOTO 530
  35. 440 INPUT "HOW MANY SQUARES DO YOU WISH TO ACQUIRE BY TRADING NOMADS FOR"; B5
  36. 450 IF B5 >= 0 AND N - (B5 * T3) >= 0 THEN 490
  37. 460 PRINT "SIR, YOU HAVE NOT ENOUGH NOMADS TO MAKE SUCH A TRADE!"
  38. 470 X = INT(N / T3): IF Q + X > 5 * K THEN X = 5 * K - Q
  39. 480 PRINT "YOU MAY TRADE FOR ONLY"; X; "SQUARES.": GOTO 440
  40. 490 IF Q + B5 <= 5 * K THEN 520
  41. 500 PRINT "SIR, YOU HAVEN'T ENOUGH KNIGHTS TO PROTECT SUCH A KINGDOM"
  42. 510 GOTO 440
  43. 520 N = N - B5 * T3: Q = Q + B5: GOTO 310
  44. 530 INPUT "HOW MANY SQUARES DO YOU WISH TO TRADE FOR SERVANTS"; B3
  45. 535 IF B3 < 0 OR B3 > Q THEN PRINT "SIR, YOU HAVEN'T THE LAND TO MAKE SUCH A TRADE!": PRINT: GOTO 530
  46. 540 IF B3 < Q / 2 + 1 THEN 660
  47. 550 IF Z1 = 0 THEN 620
  48. 560 CLS
  49. 570 IF Z1 = 1 THEN CLS: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT
  50. 580 IF Z1 = 1 THEN PRINT "SUCH A FOOL!!  THOUGH WARNED,"
  51. 590 PRINT "YOU TRADED AWAY MORE THAN HALF THE KINGDOM."
  52. 600 PRINT "THE PEOPLE HAVE RIOTED, YOU HAVE BEEN DETHRONED AND"
  53. 610 PRINT "SHALL BE BEHEADED ON THE MORROW.": GOTO 1660
  54. 620 Z1 = 1: PRINT "SIR!!  IF YOU TRADE AWAY SUCH LAND, THE PEOPLE"
  55. 630 PRINT "WILL SURELY REVOLT.  PLEASE I BEG YOU RECONSIDER."
  56. 640 IF M = 4 THEN 680
  57. 650 GOTO 530
  58. 660 S = S + B3 * T1: Q = Q - B3
  59. 670 GOTO 310
  60. 680 INPUT "HOW MANY SQUARES DO YOU WISH TO TRADE FOR PEASANTS"; B4
  61. 690 IF B4 >= 0 AND B4 < Q / 2 + 1 THEN 720
  62. 700 IF Z1 = 0 THEN 620
  63. 710 IF Z1 = 1 THEN 560
  64. 720 P = P + B4 * T2: Q = Q - B4
  65. 730 M = 0: A = 1
  66. 740 CLS
  67. 750 GOSUB 1830: PRINT: PRINT "THE BARBARIANS ARE MARCHING TOWARD THE KINGDOM."
  68. 760 PRINT "YOU MUST SEND YOUR PEOPLE OUT TO FIGHT THEM OFF!": PRINT
  69. 770 IF Q / 5 > K OR K <= 1 THEN 800
  70. 780 INPUT "HOW MANY KNIGHTS  WILL YOU SEND "; K1
  71. 790 IF K1 < 0 OR K1 > K / 2 THEN PRINT "HALF YOUR KNIGHTS MUST STAY TO DEFEND THE CASTLE.": PRINT: GOTO 780
  72. 800 IF S < 2 * (K - K1) + 1 THEN 830
  73. 810 INPUT "HOW MANY SERVANTS WILL YOU SEND "; S1
  74. 820 IF S1 < 0 OR S - S1 < 2 * (K - K1) THEN PRINT "SOME SERVANTS MUST STAY TO TEND YOUR KNIGHTS.": PRINT: GOTO 810
  75. 830 IF P <= 0 THEN GOTO 860
  76. 840 INPUT "HOW MANY PEASANTS WILL YOU SEND "; P1
  77. 850 IF P1 < 0 OR P1 > P THEN PRINT "SIR, YOU HAVEN'T THAT MANY!": PRINT: GOTO 840
  78. 860 IF N <= 0 THEN GOTO 930
  79. 870 IF N > 0 THEN INPUT "HOW MANY NOMADS   WILL YOU SEND "; N1
  80. 880 IF N1 < 0 OR N1 > N THEN PRINT "SIR, YOU HAVEN'T THAN MANY!": PRINT: GOTO 870
  81. 890 IF N1 = 0 THEN 930
  82. 900 PRINT: PRINT: PRINT
  83. 910 GOSUB 1760
  84. 920 CLS
  85. 930 F = K1 + S1 + P1 + N1: F1 = K1 * 50 + S1 * 10 + P1 * 2 + N1
  86. 940 IF F = 0 THEN 980
  87. 950 K3 = INT(K / 2 * W1 * .0001): S3 = INT(S / 2 * W1 * .0001): P3 = INT(P / 2 * W1 * .0001)
  88. 960 IF F = 0 THEN F = 1: N3 = INT(N / 2 * W1 * .0001): GOTO 1210
  89. 970 K2 = K1 / F: S2 = S1 / F: P2 = P1 / F: N2 = N1 / F
  90. 980 E = INT(RND(1) * 10000)
  91. 990 E1 = ABS(INT(RND(1) * 10))
  92. 1000 IF E1 = 9 THEN E = E * 3
  93. 1010 IF E1 = 8 THEN E = E * 2
  94. 1020 IF E1 < 8 AND E1 > 4 THEN E = INT(E * 1.5)
  95. 1030 W = F1 - E: W1 = ABS(W)
  96. 1040 IF F = 0 THEN 950
  97. 1050 IF W <= 0 THEN 1140
  98. 1060 K3 = INT(E * K2 / 100): S3 = INT(E * S2 / 20)
  99. 1070 IF K3 > K1 THEN K3 = K1
  100. 1080 IF S3 > S1 THEN S3 = S1
  101. 1090 P3 = INT(E * P2 / 4): N3 = INT(E * N2 / 2)
  102. 1100 IF P3 > P1 THEN P3 = P1
  103. 1110 IF N3 > N1 THEN N3 = N1
  104. 1120 K = K - K3: S = S - S3: P = P - P3: N = N - N3 + E
  105. 1130 N4 = E
  106. 1140 IF W >= 0 THEN 1240
  107. 1150 K3 = INT(W1 * K2 / 50): S3 = INT(W1 * S2 / 10)
  108. 1160 IF K3 > K THEN K3 = K
  109. 1170 IF S3 > S THEN S3 = S
  110. 1180 P3 = INT(W1 * P2 / 2): N3 = INT(W1 * N2)
  111. 1190 IF P3 > P THEN P3 = P
  112. 1200 IF N3 > N THEN N3 = N
  113. 1210 Q1 = Q / (K + S + P + N): Q2 = INT((K3 + S3 + P3 + N3) * Q1): Q = Q - Q2
  114. 1220 K = K - K3: S = S - S3: P = P - P3: N = N - N3 + INT(W1 / 2)
  115. 1230 N4 = INT(W1 / 2)
  116. 1240 IF W <> 0 THEN 1280
  117. 1250 PRINT "THE ATTACKING BARBARIANS HAVE SEEN YOUR FORCES AND"
  118. 1260 PRINT "RETREATED! THROUGH YOUR WISDOM THE KINGDOM HAS"
  119. 1270 PRINT "BEEN SAVED!": PRINT: PRINT: PRINT: GOTO 1350
  120. 1280 K4 = ABS(INT(RND(1) * 10)): S4 = ABS(INT(RND(1) * 50))
  121. 1290 P4 = ABS(INT(RND(1) * 250))
  122. 1300 IF K4 > S THEN K4 = S
  123. 1310 IF S4 > P THEN S4 = P
  124. 1320 IF P4 > N THEN P4 = N
  125. 1330 K = K + K4: S = S + S4 - K4: P = P + P4 - S4: N = N - P4
  126. 1340 CLS
  127. 1350 READ D$
  128. 1360 PRINT "The history books will show that during your "; D$; " decade,"
  129. 1370 PRINT: PRINT "Your kingdom was attacked by"; E; "barbarians.": PRINT
  130. 1380 PRINT "YOU SENT INTO BATTLE:", "YOU LOST IN BATTLE:"
  131. 1390 PRINT USING "##### KNIGHTS               ##### KNIGHTS"; K1, K3
  132. 1400 PRINT USING "##### SERVANTS              ##### SERVANTS"; S1, S3
  133. 1410 PRINT USING "##### PEASANTS              ##### PEASANTS"; P1, P3
  134. 1420 PRINT USING "##### NOMADS                ##### NOMADS"; N1, N3
  135. 1430 PRINT USING "                            ##### SQUARES"; Q2
  136. 1440 PRINT: PRINT: PRINT "YOU CAPTURED IN BATTLE"; N4; "NOMADS.": PRINT
  137. 1450 PRINT USING "#### NOMADS BECAME LOYAL PEASANTS"; P4
  138. 1460 PRINT USING "#### PEASANTS BECAME FAITHFUL SERVANTS"; S4
  139. 1470 PRINT USING "#### FAITHFUL SERVANTS WERE KNIGHTED"; K4
  140. 1480 Q2 = 0
  141. 1490 GOSUB 2150
  142. 1500 IF D$ = "10TH" THEN 1530
  143. 1510 D = D + 1: A = 0
  144. 1520 CLS: GOTO 170
  145. 1530 CLS: GOSUB 1830
  146. 1540 PRINT: PRINT: PRINT
  147. 1550 PRINT "You have come to the end of your 10th decade which"
  148. 1560 PRINT "marks the end of your reign."
  149. 1570 PRINT: PRINT
  150. 1580 A$ = "The history books, if they bother to mention you, will"
  151. 1590 B$ = "surely show you to be a deplorable king."
  152. 1600 IF Q < 100 THEN PRINT A$: PRINT B$: GOTO 1660
  153. 1610 A$ = "You may be mentioned in the history books, if so, they"
  154. 1620 B$ = "will most likely say you were a good king."
  155. 1630 IF Q < 200 THEN PRINT A$: PRINT B$: GOTO 1660
  156. 1640 PRINT "History books will devote chapters to you.  People"
  157. 1650 PRINT "for all time will remember your wisdom and greatness!"
  158. 1660 PRINT: PRINT: PRINT "DO YOU WANT TO PLAY ANOTHER GAME  Y/N ?"
  159. 1670 A$ = INKEY$: IF A$ = "" THEN 1670 ELSE IF A$ = "y" OR A$ = "Y" THEN 150
  160. 1680 STOP
  161. 1690 T1 = INT(RND * 10): IF T1 = 0 THEN 1690
  162. 1700 T2 = INT(RND * 50): IF T2 = 0 THEN 1700
  163. 1710 T3 = INT(RND * 250): IF T3 = 0 THEN 1710
  164. 1720 RETURN
  165. 1730 Z = INT((P - 5 * Q) / T2)
  166. 1740 IF P - Z * T2 >= 5 * (Q + Z) THEN RETURN
  167. 1750 Z = Z - 1: GOTO 1740
  168. 1760 X1 = INT(RND(1) * 10)
  169. 1770 IF X1 < 3 THEN PRINT "SIR, THE NOMADS REFUSE TO FIGHT!": N1 = 0: GOTO 1810
  170. 1780 A$ = "SIR, IT IS UNCERTAIN IF THE NOMADS WILL FIGHT!!!"
  171. 1790 IF X1 < 5 THEN PRINT A$: N1 = 0: GOTO 1810
  172. 1800 IF X1 < 7 THEN PRINT A$: GOTO 1810
  173. 1805 RETURN
  174. 1810 T = TIMER
  175. 1815 IF TIMER < T + 3 AND INKEY$ = "" THEN 1815 ELSE RETURN
  176. 1820 DATA 1ST,2ND,3RD,4TH,5TH,6TH,7TH,8TH,9TH,10TH
  177. 1830 LOCATE 1, 1: PRINT "THE STATUS OF THE ";: COLOR 15: PRINT "KINGDOM": PRINT
  178. 1840 COLOR 7: PRINT USING "##### KNIGHTS OF CASTLE"; K
  179. 1850 PRINT USING "##### FAITHFUL SERVANTS"; S
  180. 1860 PRINT USING "##### LOYAL PEASANTS"; P
  181. 1870 IF N > 0 THEN PRINT USING "##### CAPTURED NOMADS"; N
  182. 1880 PRINT: PRINT "THE SIZE OF THE KINGDOM IS NOW"; Q; "SQUARES.   "
  183. 1890 IF A = 1 THEN RETURN
  184. 1900 IF M = 0 THEN GOSUB 1690
  185. 1910 LOCATE 1, 40: PRINT "LAND SQUARES ARE CURRENTLY TRADING FOR:"
  186. 1920 LOCATE 3, 40: PRINT USING "#### SERVANTS PER SQUARE"; T1
  187. 1930 LOCATE 4, 40: PRINT USING "#### PEASANTS PER SQUARE"; T2
  188. 1940 IF D > 1 THEN LOCATE 5, 40: PRINT USING "#### NOMADS PER SQUARE"; T3
  189. 1950 LOCATE 10, 1, 0: PRINT SPACE$(79): PRINT SPACE$(79)
  190. 1960 PRINT SPACE$(79): PRINT SPACE$(79): PRINT SPACE$(79): LOCATE 10, 1: RETURN
  191. 1970 WIDTH 40: CLS: LOCATE 1, 16, 0: COLOR 15: PRINT "KINGDOM": COLOR 7: PRINT
  192. 1980 PRINT "In days of old when knights were bold,"
  193. 1990 PRINT "kings would live one hundred years. A"
  194. 2000 PRINT "sorcerer often found himself advisor to"
  195. 2010 PRINT "the king in fending off evil and"
  196. 2020 PRINT "casting off spells for the prosperity"
  197. 2030 PRINT "of the kingdom.": PRINT
  198. 2040 PRINT "You are the king, and I'm the sorcerer."
  199. 2050 PRINT "The kingdom is yours to control.  You"
  200. 2060 PRINT "must defend the kingdom and your "
  201. 2070 PRINT "subjects.  You will trade land for "
  202. 2080 PRINT "servants and servants for land.": PRINT
  203. 2090 PRINT "If your decisions are wise, you will"
  204. 2100 PRINT "gain property, peasants and knights."
  205. 2110 PRINT "If your decisions are poor, you will be"
  206. 2120 PRINT "dethroned.  Your sorcerer knows and"
  207. 2130 PRINT "tells all . . . . ."
  208. 2140 GOSUB 2150: WIDTH 80: CLS: RETURN
  209. 2150 LOCATE 25, 1: PRINT "PRESS ANY KEY TO CONTINUE.";: LOCATE 1
  210. 2160 A$ = INKEY$: IF A$ = "" THEN 2160
  211. 2170 IF ASC(A$) = 27 THEN STOP ELSE RETURN
  212. 2180 KEY OFF: WIDTH 80: SCREEN 0, 0, 0, 0: CLS: LOCATE 6, 1, 0
  213. 2190 COLOR 7
  214. 2200 PRINT "               ÉÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍ»"
  215. 2210 PRINT "               ÌÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎ͹"
  216. 2220 PRINT "               º º                                            º º"
  217. 2230 PRINT "               º º ";: COLOR 15: PRINT "                 KINGDOM                ";: COLOR 7: PRINT "   º º"
  218. 2240 PRINT "               º º                                            º º"
  219. 2250 PRINT "               º º ";: COLOR 15: PRINT "  COPYRIGHT (C) 1982  BY ENSIGN SOFTWARE ";: COLOR 7: PRINT "  º º"
  220. 2260 PRINT "               º º                                            º º"
  221. 2270 PRINT "               º º          2312 N. COLE RD, SUITE E          º º"
  222. 2280 PRINT "               º º          BOISE, ID  83704  U.S.A.          º º"
  223. 2290 PRINT "               º º DAY (208) 378-8086      EVE (208) 377-1938 º º"
  224. 2300 PRINT "               º º                                            º º"
  225. 2310 PRINT "               ÌÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎ͹"
  226. 2320 PRINT "               ÈÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊͼ"
  227. 2325 DEF SEG = 0: POKE &H417, PEEK(&H417) OR &H60: T = TIMER
  228. 2330 IF TIMER < T + 5 AND INKEY$ = "" THEN 2330: ELSE SCREEN 0, 0, 0, 0: RETURN
  229. 2340 LOCATE 25, 1: ON E GOTO 2360, 2370, 2380, 2390, 2400, 2410, 2420, 2430, 2440
  230. 2350 PRINT "                                       ";: LOCATE 1: RETURN
  231. 2360 PRINT "You need knights to protect the kingdom";: LOCATE 1: RETURN
  232. 2370 PRINT "    Servants must tend your knights    ";: LOCATE 1: RETURN
  233. 2380 PRINT "  You may trade for only"; PS; "squares  ";: LOCATE 1: RETURN
  234. 2390 PRINT "123456789012345678901234567890123456789";: LOCATE 1: RETURN
  235. 2400 PRINT "123456789012345678901234567890123456789";: LOCATE 1: RETURN
  236. 2410 PRINT "123456789012345678901234567890123456789";: LOCATE 1: RETURN
  237. 2420 PRINT "123456789012345678901234567890123456789";: LOCATE 1: RETURN
  238. 2430 PRINT "123456789012345678901234567890123456789";: LOCATE 1: RETURN
  239. 2440 PRINT "123456789012345678901234567890123456789";: LOCATE 1: RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement