home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Games / COMPNOPOLY (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  18.6 KB  |  581 lines

  1. 10 REM COMPNOP BY DENNIS IRVINE
  2. 20 PRINT"[147]":DIM SQ$(40),BT$(100),AS(50),NB$(40),PB$(40),CR$(16)
  3. 25 POKE53280,0:POKE53281,0
  4. 30 DIM A$(20):GOSUB5530:GOSUB4360
  5. 40 FORI=0TO39:SQ$(I)="N0":NEXTI: REM SETUP EACH BOX'S STATUS
  6. 50 :      :     REM BOXES INCLUDED IN FULL SYSTEM
  7. 60 SM$(1)="0103":SM$(2)="060809":SM$(3)="111314":SM$(4)="161819"
  8. 70 SM$(5)="212324":SM$(6)="262729":SM$(7)="313234":SM$(8)="3739"
  9. 80 SM$(9)="051215252835"
  10. 90 :      :  REM MARKET TREND CARDS
  11. 100 MT$(1)="  PRICE WAR. YOU LOSE $100   "
  12. 110 MT$(2)="  GOOD SALES. PROFIT $200    "
  13. 120 MT$(3)="RECEIVABLES PAY.YOU GET $200 "
  14. 130 MT$(4)="  BAD DEBTS UP. LOSE $100    "
  15. 140 MT$(5)="  NEW FCC RULES COST $100    "
  16. 150 MT$(6)=" A LARGE ORDER. PROFIT $200  "
  17. 160 MT$(7)="STOCK MKT FAVORABLE.GAIN $200"
  18. 170 MT$(8)="TECHNOLOGY BEHIND.BACK 3 SPAC"
  19. 180 :       :  REM LUCK CARDS
  20. 190 LL$(1)=" BAD LUCK..YOU LOSE $100     "
  21. 200 LL$(2)=" NO LUCK ..YOU GAIN 0        "
  22. 210 LL$(3)=" GOOD LUCK..YOU GAIN $100    "
  23. 220 LL$(4)=" BAD LUCK..YOU LOSE $100     "
  24. 230 LL$(5)=" NO LUCK ..YOU GAIN 0        "
  25. 240 LL$(6)=" GOOD LUCK..YOU GAIN $100    "
  26. 250 :
  27. 260 REM ESTABLISH COMMON VARIABLES
  28. 270 :
  29. 280 FORP=1TO4
  30. 290 FC(P)=SP+PT+P:       REM BOX 10 POSITIONS FOR GOING DIRECTLY TO FCC
  31. 300 MP(P)=500:           REM GIVE EACH PLAYER $500
  32. 310 BO$(P)="":           REM BO$ STORES BOXES OWNED BY EACH PLAYER
  33. 320 BK(P)=0:             REM BANKRUPTCY FLAG 1=BANKRUPT
  34. 330 NEXTP
  35. 340 FORI=0TO39:READNB$(I),PB$(I):NEXTI:REM NAME & PRICE OF BOX
  36. 350 R$=""
  37. 360 FORI=1TO80:C$=C$+"":NEXTI
  38. 370 :
  39. 380 PRINT"DO YOU WISH INSTRUCTIONS - Y/N
  40. 390 [141]1210
  41. 400 [139]A$[178]"Y"[167][141]4770
  42. 410 [153]"ARE YOU READY TO PLAY?  (Y/N)"
  43. 420 [141]1210
  44. 430 [139]A$[178]"N"[167]380
  45. 440 [141]4510:[153]"LOAD":[137]1310
  46. 450 :
  47. 460 [143] SETS CURSOR POSITION
  48. 470 C[178]C[171]AD:[139]C[179]0[167]C[178]0
  49. 480 [153][200](R$,R)[200](C$,C);:[142]
  50. 490 :
  51. 500 [143] SOUND ROUTINES
  52. 510 [139]SD[179][177]0[167]540: [143] IS IT A 64
  53. 520 [151]59467,16:[151] 59466,15:[129]J[178]S1[164]S1[171]50[169][171]1
  54. 530 [151]59464,J:[130]J:[151]59467,0:[142]
  55. 540 [129]J[178]1[164]10
  56. 550 [151]SD[170]24,15:[151]SD[170]1,20:[151]SD[170]5,4[172]16[170]0:[151]SD[170]6,15[172]16[170]0:[151]SD[170]4,1[170]16
  57. 560 [151]SD[170]4,16:[130]J:[142]
  58. 570 [139]SD[179][177]0[167]590:     [143] IS IT A 64
  59. 580 [151]59467,16:[151]59466,15:[151]59464,140:[129]J[178]1[164]20:[130]:[151]59467,0:[142]
  60. 590 [143]
  61. 600 [151]SD[170]24,15:[151]SD[170]1,200:[151]SD[170]5,4[172]16[170]0:[151]SD[170]6,15[172]16[170]0:[151]SD[170]4,1[170]16
  62. 610 [151]SD[170]4,16:[129]J[178]1[164]100:[130]J:[142]
  63. 620 :
  64. 630 [143] NAME OF BOX DATA
  65. 640 [131] GO,0,MONO MONITOR   ,60,MARKET TRENDS  ,0,RGB MONITOR     ,60
  66. 650 [131] INC TAX,0,GAMES SOFTWARE  ,200,DOT MTX PRINTER,100,LUCK,0
  67. 660 [131] DAISYWHL PRINTER,100,INK JET PRINTER,120,FCC PROBLEMS,0
  68. 670 [131] XDOS           ,140,EDUCATOL SFTWRE,200,CPM            ,140
  69. 680 [131] UNIX        ,160,COMM'NS SFTWRE ,200,BASIC         ,180,MRKT TRENDS,0
  70. 690 [131] LOGO            ,180,PASCAL         ,200,BUSINESS OFFICE,0
  71. 700 [131] 32K RAM        ,200,LUCK,0,64K RAM        ,220
  72. 710 [131] 128K RAM       ,240,WRDPRING SFTWRE,200
  73. 720 [131] FULLSTROKE KYBD,260,RUBBER KEYBOARD,260
  74. 730 [131] DATBASE SFTWARE,200,MEMBRANE KYBRD ,280
  75. 740 [131] FCC REPORT,0,TAPE STORAGE   ,300,FLOPPY DISK    ,300,MARKET TRENDS,0
  76. 750 [131] HARD DISK     ,320,SPREDSHT SFTWRE,200,LUCK,0,Z80 CPU        ,350
  77. 760 [131] RECALL COST,0,6502 CPU       ,400
  78. 770 :
  79. 780 [143] DRAW PLAYING FIELD
  80. 790 [151]53265,11:[153]"":[153]CR$(9);
  81. 800 [153][163]TB)"                                      WAIT
  82. 810 FORI=1TO17
  83. 820 PRINTTAB(TB)" [146]                                     [146]
  84. 830 [130]I
  85. 840 [153][163]TB)"                                      WAIT
  86. 850 PRINTCR$(16):RETURN
  87. 860 :
  88. 870 REM DRAW INTERIOR
  89. 880 POKE53265,11:PRINT"":PRINTCR$(16);
  90. 890 PRINTTAB(TB+1)"    [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]    "
  91. 900 PRINTTAB(TB+1)"GO  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194] FCC"
  92. 910 PRINTTAB(TB+1)"->  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]    "
  93. 920 PRINTTAB(TB+1)"    [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]    "
  94. 930 PRINTTAB(TB+1)"[197][197][197][197][194][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][197][194][197][197][197][197]"
  95. 940 PRINTTAB(TB+1)"[197][197][197][197][194]            [146]              [194][197][197][197][197]"
  96. 950 PRINTTAB(TB+1)"[197][197][197][197][194]  MKT TREND [146]              [194][197][197][197][197]"
  97. 960 PRINTTAB(TB+1)"[197][197][197][197][194]            [146]              [194][197][197][197][197]"
  98. 970 PRINTTAB(TB+1)"[197][197][197][197][194]                          [194][197][197][197][197]"
  99. 980 PRINTTAB(TB+1)"[197][197][197][197][194]                        [146]  [194][197][197][197][197]"
  100. 990 PRINTTAB(TB+1)"[197][197][197][197][194]                 LUCK   [146]  [194][197][197][197][197]"
  101. 1000 PRINTTAB(TB+1)"[197][197][197][197][194]                        [146]  [194][197][197][197][197]"
  102. 1010 PRINTTAB(TB+1)"[197][197][197][197][194]                          [194][197][197][197][197]"
  103. 1020 PRINTTAB(TB+1)"[197][197][197][197][194][197][197][194][197][197][194][197][197][194][197][197][194][197][197][194][197][197][194][197][197][194][197][197][194][197][197][194][197][197][197][197]"
  104. 1030 PRINTTAB(TB+1)"FCC [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194] BUS"
  105. 1040 PRINTTAB(TB+1)"RPT [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194] OFF"
  106. 1050 PRINTTAB(TB+1)"    [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]  [194]    ":POKE 53265,27
  107. 1060 C=20:R=21:GOSUB460:PRINT"                                    "
  108. 1070 C=20:R=21:GOSUB460:PRINT"1 $"MP(1)" 2 $"MP(2)" 3 $"MP(3)" 4 $"MP(4)
  109. 1080 RETURN
  110. 1090 :
  111. 1100 REM CLR LINE
  112. 1110 C=2:R=23:GOSUB460
  113. 1120 PRINT"                                                                  "
  114. 1130 PRINT"":RETURN
  115. 1140 :
  116. 1150 REM GET A CHARACTER
  117. 1160 GETA$:IFA$=""THEN1160
  118. 1170 GETBF$:IFBF$<>""THEN1170: REM CLEARS BUFFERR
  119. 1180 RETURN
  120. 1190 :
  121. 1200 REM GET A 'Y' OR 'N' CHARACTER
  122. 1210 GETA$:IFA$<>"Y"ANDA$<>"N"THEN1210
  123. 1220 GETBF$:IFBF$<>""THEN1220
  124. 1230 RETURN
  125. 1240 :
  126. 1250 REM PUT PLAYERS ON FIELD
  127. 1260 P=0
  128. 1270 FORI=4TO1STEP-1:POKESP+(I*WD),53-I:P=P+1:PP(P)=SP+(I*WD):NEXTI
  129. 1280 BX=0:FORI=1TO4:IP(I)=PP(I):NEXTI:RETURN
  130. 1290 :
  131. 1300 REM MAIN ROUTINE
  132. 1310 GOSUB780:GOSUB870:GOSUB1260: REM DRAW BOARD + PLACE PLAYERS AT START
  133. 1320 FORP=1TO4:IFLT=PTHENLT=0:GOTO1510: REM LOSE TURN CHECK
  134. 1330 IFBK(P)=1THEN1510: REM BANKRUPT CHECK
  135. 1340 GOSUB1110: REM CLEARS LINE
  136. 1350 GOSUB1590:REM PRINT PLAYER #
  137. 1360 GOSUB2090: REM ROLL DICE
  138. 1370 BX=BX(P)
  139. 1380 FORI=1TODT:BX=BX+1
  140. 1390 GOSUB1610: REM MOVE PLAYER FORWARD
  141. 1400 NEXTI:BX(P)=BX: REM STORE BOX NUMBER
  142. 1410 C=40:R=23:GOSUB460:PRINTCR$(6)"PUSH[146]"CR$(2)" C "CR$(6)"TO CONTINUE[146]"
  143. 1420 PRINTCR$(16);:GOSUB1150:REM GET A CHARACTER
  144. 1430 IFA$<>"C"THEN1420
  145. 1440 PRINT"[147]"
  146. 1450 GOSUB2320:REM JUMP TO INDIV SQUARE RTNE
  147. 1460 GOSUB780:GOSUB870: REM DRAW BOARD
  148. 1470 FORI=1TO4
  149. 1480 CC=48+I:IFBK(I)=1THENCC=CC+128: REM IF PLAYER BK THEN PRINT IN REVERSE
  150. 1490 POKEPP(I),CC :                       REM POKE PLAYERS INTO POSITION
  151. 1500 NEXTI
  152. 1510 NEXTP
  153. 1520 C=21:R=23:GOSUB460:PRINT"DO YOU WANT TO CONTINUE? (Y/N)  "
  154. 1530 GOSUB1150
  155. 1540 IFA$="Y"THEN1320
  156. 1550 IFA$<>"N"THEN1530
  157. 1560 GOSUB3720:END
  158. 1570 :
  159. 1580 REM PRINT PLAYER # AND ASSIGN POKE CHARACTER
  160. 1590 C=21:R=23:GOSUB460:PRINTNM$(P)" #"P:GOSUB2000:RETURN
  161. 1600 :
  162. 1610 REM MOVE FORWARD
  163. 1620 CR=32
  164. 1630 IFBX>11ANDBX<21THENCR=69
  165. 1640 IFBX>20ANDBX<32ANDP=1THENCR=69
  166. 1650 IFBX>30ANDBX<41THENCR=69
  167. 1660 POKEPP(P),CR
  168. 1670 IFBX=10THENPP(P)=(PP(P)-1)+((WD+1)*(P-1)):GOTO1740
  169. 1680 IFBX=20THENPP(P)=(PP(P)+1)+((WD*P)-P):GOTO1750
  170. 1690 IFBX=30THENPP(P)=PP(P)-((WD*(P-1))+P+1):GOTO1750
  171. 1700 IFBX>10ANDBX<21THENPP(P)=PP(P)+WD:GOTO1750
  172. 1710 IFBX>20ANDBX<31THENPP(P)=PP(P)-3:GOTO1750
  173. 1720 IFBX>30ANDBX<40THENPP(P)=PP(P)-WD:GOTO1750
  174. 1730 IFBX>39THENBX=0:PP(P)=IP(P):GOSUB1770:GOTO1750
  175. 1740 PP(P)=PP(P)+3
  176. 1750 POKEPP(P),CC:GOSUB570:RETURN
  177. 1760 :
  178. 1770 REM $200 FOR PASSING GO
  179. 1780 C=20:R=23:GOSUB460:PRINT"PAST GO![146]COLLECT $200"
  180. 1790 MP(P)=MP(P)+200:GOSUB1060
  181. 1800 RETURN
  182. 1810 :
  183. 1820 :
  184. 1830 REM MOVE BACKWARD
  185. 1840 CR=32:IFBX<0THENBX=39
  186. 1850 IFBX>9ANDBX<19THENCR=69
  187. 1860 IFBX>20ANDBX<32ANDP=1THENCR=69
  188. 1870 IFBX>28ANDBX<39THENCR=69
  189. 1880 POKEPP(P),CR:IFBX=39THENPP(P)=PP(P)+((WD*P)-P+1):GOTO1980
  190. 1890 IFBX=9ANDP>1THENPP(P)=PP(P)-((WD*(P-1))+P-1):GOTO1970
  191. 1900 IFBX=19THENPP(P)=PP(P)-((WD*P)-P):GOTO1980
  192. 1910 IFBX=29ANDP>1THENPP(P)=PP(P)+((WD*(P-1))+P+1):GOTO1980
  193. 1920 IFBX=29ANDP=1THENPP(P)=PP(P)+2:GOTO1980
  194. 1930 IFBX>9ANDBX<20THENPP(P)=PP(P)-WD:GOTO1980
  195. 1940 IFBX>19ANDBX<30THENPP(P)=PP(P)+3:GOTO1980
  196. 1950 IFBX>29ANDBX<40THENPP(P)=PP(P)+WD:GOTO1980
  197. 1960 IFBX=0THENPP(P)=IP(P):GOTO1980
  198. 1970 PP(P)=PP(P)-3
  199. 1980 POKEPP(P),CC:GOSUB570:RETURN
  200. 1990 :
  201. 2000 REM ASSIGN POKE CHARATER
  202. 2010 IFP=1THENCC=49
  203. 2020 IFP=2THENCC=50
  204. 2030 IFP=3THENCC=51
  205. 2040 IFP=4THENCC=52
  206. 2050 BX=BX(P)
  207. 2060 RETURN
  208. 2070 :
  209. 2080 REM DRAW DICE AND ROLL
  210. 2090 E$=""
  211. 2100 FOR I=1 TO 39:E$=E$+" ":NEXTI:DT=0
  212. 2110 L$=""
  213. 2120 A$(0)="[166][166][166][157][157][157][166][166][166][157][157][157][166][166][166][157][157][157][145][145]"
  214. 2130 A$(1)="   [157][157][157] [209] [157][157][157]   [157][157][157][145][145]"
  215. 2140 A$(2)="[209]  [157][157][157]   [157][157][157]  [209][157][157][157][145][145]"
  216. 2150 A$(3)="[209]  [157][157][157] [209] [157][157][157]  [209][157][157][157][145][145]"
  217. 2160 A$(4)="[209] [209][157][157][157]   [157][157][157][209] [209][157][157][157][145][145]"
  218. 2170 A$(5)="[209] [209][157][157][157] [209] [157][157][157][209] [209][157][157][157][145][145]"
  219. 2180 A$(6)="[209][209][209][157][157][157]   [157][157][157][209][209][209][157][157][157][145][145]"
  220. 2190 B$="[176][192][192][192][174][157][221][157][221][157][221][157][189][157][157][192][157][157][192][157][157][192]"
  221. 2200 B$=B$+"[157][157][173][157][145][221][157][145][221][157][145][221][157][145]":ST$=""
  222. 2210 X$="":FOR I=1 TO 6:X$=X$+"     [146]  ":NEXT
  223. 2220 X$=LEFT$(X$,52)
  224. 2230 D$="[157][207][163][163][163][208][157][167][157][186][157][157][164][157][157][164][157][157][164][157][157][204][157][145][165]"
  225. 2240 PRINT L$;
  226. 2250 FOR F=1 TO 2:PRINTTAB(TB+7) B$;"";:NEXT
  227. 2260 FOR K=1 TO 2:H(K)=INT(6*RND(1)+1):DT=DT+H(K):NEXT
  228. 2270 PRINTTAB(TB+7) L$;"";:FOR K=1 TO 2
  229. 2280 IF K>=L THEN PRINTTAB(TB+8) A$(0);
  230. 2290 PRINTCR$(5)TAB(TB+8)A$(H(K));"";:NEXT:S1=55:GOSUB510
  231. 2300 RETURN
  232. 2310 :
  233. 2320 REM START OF INDIVIDUAL SQUARE ROUTINES
  234. 2330 PRINT"[147]":GOSUB780:POKE53265,27:C=22:R=4:GOSUB460
  235. 2335 PRINT"BOX ";BX:C=30:GOSUB460
  236. 2340 PRINT""NB$(BX)"[146]"
  237. 2350 C=20:R=23:GOSUB460:PRINT"PLAYER"P"HAS $"MP(P)
  238. 2360 IFBX=0THENR=7:C=25:GOSUB460:PRINT"KEEP ON TRUCKIN":GOTO2490
  239. 2370 IF BX=2ORBX=17ORBX=33THENGOSUB2750:GOTO2490:  REM JMP TO MKT TREND RTNE
  240. 2380 IFBX=4THENGOSUB3410:GOTO2490:               REM JMP TO INC TAX RTNE
  241. 2390 IFBX=10THENGOSUB3060:GOTO2490:                REM LOSE TURN RTNE
  242. 2400 IFBX=20THENGOSUB3280:GOTO2490:               REM JMP TO OFFICE RTNE
  243. 2410 IFBX=7ORBX=22ORBX=36THENGOSUB3100:GOTO2490:  REM JMP TO LUCK RTNE
  244. 2420 IFBX=30THENGOSUB3320:GOTO2490:       REM JMP TO FILE REPT ROUTINE
  245. 2430 IFBX=38THENGOSUB3450:GOTO2490:      REM JMP TO RECALL RTNE
  246. 2440 IFLEFT$(SQ$(BX),1)="O"THENGOSUB2550:GOTO2490:  REM JMP TO BX OWNED RTNE
  247. 2450 C=22:R=15:GOSUB460:PRINT"PRICE  $",PB$(BX)
  248. 2460 C=22:R=16:GOSUB460:PRINT"DO YOU WISH TO BUY? (Y/N)"
  249. 2470 GOSUB1150:IFA$="Y"THENGOSUB3630:GOTO2490:REMIF="Y"THEN JMP TO BUY RTNE
  250. 2480 IFA$<>"N"THEN2470
  251. 2490 IFBW=1THENBW=0:GOTO2330
  252. 2500 GOSUB1110:C=21:GOSUB460
  253. 2510 PRINT"YOU HAVE $";MP(P)CR$(6)" PUSH[146]"CR$(2)" C "CR$(6)"TO CONTINUE[146]"
  254. 2520 PRINTCR$(16);:GOSUB1150:IFA$<>"C"THEN2520
  255. 2530 PRINT"[147]":RETURN
  256. 2540 :
  257. 2550 REM BOX OWNED ROUTINE
  258. 2560 C=22:R=7:GOSUB460:O=VAL(RIGHT$(SQ$(BX),1)) :REM O IS OWNER OF BOX
  259. 2570 IFO=PTHENPRINT"YOU ALREADY OWN THIS":RETURN
  260. 2580 PRINT"THIS IS OWNED BY "O:F=1:IFLEN(BO$(O))<4THEN2690
  261. 2590 IFBX=5ORBX=12ORBX=15ORBX=25ORBX=28ORBX=35THENWS=9:GOTO2620
  262. 2600 WS=INT(BX/5)        :REM F IS RENT FACTOR..WS SPECIFIES THE SYSTEM
  263. 2610 IF(BX/5-INT(BX/5))>0THENWS=WS+1
  264. 2620 SS=LEN(SM$(WS))/2:     REM HOW MANY BOXES IN THE SYSTEM
  265. 2630 FORI=1TOSS:SA$(I)=MID$(SM$(WS),(I*2)-1,2):NEXTI
  266. 2640 FORI=1TOSS:IFVAL(SA$(I))=BXTHEN2680
  267. 2650 FORJ=2TOLEN(BO$(O))STEP2
  268. 2660 IFSA$(I)=MID$(BO$(O),J-1,2)THENF=F+1
  269. 2670 NEXTJ
  270. 2680 NEXTI
  271. 2690 RT=(INT(VAL(PB$(BX))/2))*F:   REM RENT IS 1/2 OF PRICE TIMES A FACTOR
  272. 2700 C=25:R=9:GOSUB460:PRINT"YOU MUST PAY RENT OF $";RT
  273. 2710 MP(P)=MP(P)-RT:IFMP(P)<0THENGOSUB3990
  274. 2720 MP(O)=MP(O)+RT
  275. 2730 RETURN
  276. 2740 :
  277. 2750 REM MRKT TREND SUBRTNE
  278. 2760 PRINTCR$(8):FORI=1TO3:R=7:C=24:GOSUB460
  279. 2770 FORZ=1TO5:PRINT"                            [146]":R=R+1:C=24:GOSUB460:NEXTZ
  280. 2780 S1=200:GOSUB510
  281. 2790 R=7:C=24:GOSUB460
  282. 2800 FORZ=1TO5:PRINT"                              ":R=R+1:C=24:GOSUB460:NEXTZ
  283. 2810 GOSUB510
  284. 2820 NEXTI
  285. 2830 R=7:C=24:GOSUB460
  286. 2840 PRINT"                             [146]":R=R+1:C=24:GOSUB460
  287. 2850 PRINT"                             [146]":R=R+1:C=24:GOSUB460
  288. 2860 X=RND(0)*9:IFX<1ORX>8THEN2860
  289. 2870 PRINT""MT$(X)"[146]":R=R+1:C=24:GOSUB460:GOSUB570
  290. 2880 PRINT"                             [146]":R=R+1:C=24:GOSUB460
  291. 2890 PRINT"                             [146]":R=R+1:C=24:GOSUB460:S1=100:GOSUB510
  292. 2900 ONXGOSUB2930,2970,2970,2930,2930,2970,2970,3010
  293. 2910 PRINTCR$(16):RETURN
  294. 2920 :
  295. 2930 REM LOSSES
  296. 2940 MP(P)=MP(P)-100:IFMP(P)<0THENGOSUB3990
  297. 2950 RETURN
  298. 2960 :
  299. 2970 REM PROFITS
  300. 2980 MP(P)=MP(P)+200:RETURN
  301. 2990 :
  302. 3000 REM MOVEBACK 3 SPACES
  303. 3010 PRINT"[147]":GOSUB790:GOSUB880:POKEPP(P),CC
  304. 3020 FORX=1TO3:BX=BX-1:GOSUB1840:NEXTX:GOSUB2500:BX(P)=BX:BW=1:RETURN
  305. 3030 :
  306. 3040 :
  307. 3050 REM BOX 10 LOSES TURN
  308. 3060 C=22:R=10:GOSUB460:PRINTCR$(3)"YOU LOSE YOUR NEXT TURN...SORRY!!!![146]"
  309. 3070 PRINT""CR$(16):LT=P:RETURN
  310. 3080 :
  311. 3090 REM LUCK ROUTINE
  312. 3100 PRINTCR$(8):FORI=1TO3:R=7:C=24:GOSUB460
  313. 3110 FORZ=1TO5:PRINT"                            [146]":R=R+1:C=24:GOSUB460:NEXTZ
  314. 3120 S1=200:GOSUB510
  315. 3130 R=7:C=24:GOSUB460
  316. 3140 FORZ=1TO5:PRINT"                              ":R=R+1:C=24:GOSUB460:NEXTZ
  317. 3150 GOSUB510
  318. 3160 NEXTI
  319. 3170 R=7:C=24:GOSUB460:
  320. 3180 PRINT"                             [146]":R=R+1:C=24:GOSUB460
  321. 3190 PRINT"                             [146]":R=R+1:C=24:GOSUB460
  322. 3200 X=INT(RND(0)*9):IFX<1ORX>6THEN3200
  323. 3210 PRINT""LL$(X)"[146]":R=R+1:C=24:GOSUB460:GOSUB570
  324. 3220 PRINT"                             [146]":R=R+1:C=24:GOSUB460
  325. 3230 PRINT"                             [146]":R=R+1:C=24:GOSUB460:S1=100:GOSUB510
  326. 3240 IFX=1ORX=4THENMP(P)=MP(P)-100
  327. 3250 IFMP(P)<0THENGOSUB3990
  328. 3260 IFX=3ORX=6THENMP(P)=MP(P)+100
  329. 3270 S1=55:PRINTCR$(16):RETURN
  330. 3280 :
  331. 3290 REM OFFICE ROUTINE
  332. 3300 C=25:R=11:GOSUB460:PRINT"PLAN YOUR STRATEGY FROM HERE"
  333. 3310 RETURN
  334. 3320 :
  335. 3330 REM FILE FCC REPORT ROUTINE
  336. 3340 C=22:R=7:GOSUB460:PRINT"CUSTOMERS COMPLAIN AND YOU MUST"
  337. 3350 C=22:R=8:GOSUB460:PRINT"FILE SPECIAL FCC REPORT."
  338. 3360 C=22:R=10:GOSUB460:PRINT"GO DIRECTLY TO FCC OFFICE."
  339. 3370 C=22:R=11:GOSUB460:PRINTCR$(8)"DO NOT[146] PASS GO. DO NOT[146] COLLECT $200"
  340. 3380 PP(P)=FC(P):BX(P)=10:PRINTCR$(16):RETURN
  341. 3390 :
  342. 3400 REM INC TAX RTNE
  343. 3410 C=25:R=7:GOSUB460:PRINTCR$(8)"UNCLE SAM GETS INTO YOUR POCKET"
  344. 3420 C=25:R=8:GOSUB460:PRINT"FOR A BIG 15%"CR$(16)
  345. 3430 MP(P)=MP(P)-INT(MP(P)*.15)
  346. 3440 RETURN
  347. 3450 :
  348. 3460 REM RECALL ROUTINE
  349. 3470 C=22:R=7:GOSUB460:PRINT"YOUR PRODUCTS HAVE BEEN FOUND"
  350. 3480 C=22:R=8:GOSUB460:PRINT"DEFECTIVE.IF YOU OWN ANY PRODUCTS"
  351. 3490 C=22:R=9:GOSUB460:PRINT"YOU MUST PAY EACH PLAYER $10 FOR"
  352. 3500 C=22:R=10:GOSUB460:PRINT"EACH PRODUCT YOU OWN, AS "
  353. 3510 C=22:R=11:GOSUB460:PRINT"REIMBURSMENT FOR REPAIR WORK"
  354. 3520 IFLEN(BO$(P))=0THENR=13:C=22:GOSUB460:PRINT"YOU DON'T OWN ANYTHING..LUCKY"
  355. 3530 IFLEN(BO$(P))=0THEN3610
  356. 3540 BO=INT(LEN(BO$(P))/2):R=13:C=22:GOSUB460:PRINT"YOU OWN "BO" PRODUCTS"
  357. 3550 C=22:R=14:GOSUB460:PRINT"FOR A COST OF $";BO*10"TO EACH PLAYER"
  358. 3560 BO=BO*10
  359. 3570 FORI=1TO4:IFI=PTHEN3600
  360. 3580 IFBK(I)=1THEN3600
  361. 3590 MP(I)=MP(I)+BO:MP(P)=MP(P)-BO:IFMP(P)<0THENGOSUB3990
  362. 3600 NEXTI
  363. 3610 RETURN
  364. 3620 :
  365. 3630 REM PURCHASE BOX ROUTINE
  366. 3640 C=22:R=7:GOSUB460
  367. 3650 IFMP(P)<VAL(PB$(BX))THENPRINT"YOU DON'T HAVE ENOUGH MONEY!":RETURN
  368. 3660 MP(P)=MP(P)-VAL(PB$(BX))
  369. 3670 SQ$(BX)="O"+STR$(P)
  370. 3680 IFBX<10THENBO$(P)=BO$(P)+"0"+RIGHT$(STR$(BX),1):GOTO3700
  371. 3690 BO$(P)=BO$(P)+RIGHT$(STR$(BX),2)
  372. 3700 PRINTCR$(8)"OK...YOU NOW OWN THIS[146]"CR$(16)
  373. 3710 RETURN
  374. 3720 :
  375. 3730 REM SHOW FINAL STATUS AND WINNER
  376. 3740 PRINT"[147]":FORP=1TO4:NU=0:AS=0:TV(P)=0
  377. 3750 IFLEN(BO$(P))<2THEN3770
  378. 3760 GOSUB3920:                      REM DETERMINE VALUE OF PROPERTY
  379. 3770 TV(P)=AS+MP(P):                 REM TV MEANS 'TOTAL VALUE'
  380. 3780 PRINTNM$(P)" #"P" HAS CASH $"MP(P)" AND "NU" UNITS."
  381. 3790 PRINT"WORTH $"AS
  382. 3800 PRINT"FOR A TOTAL VALUE OF $"TV(P)
  383. 3810 IFP=1THENW=P:GOTO3830
  384. 3820 IFTV(P)>TV(W)THENW=P
  385. 3830 PRINT
  386. 3840 NEXTP
  387. 3850 TE$=" AND ": FORI=1TO4:IFW=ITHEN3870
  388. 3860 IFTV(W)=TV(I)THEN TE$=TE$+NM$(I)+" AND "
  389. 3870 NEXTI:PRINT:IFTE$<>" AND "THENPRINT"TIE BETWEEN [146]"NM$(W);TE$:RETURN
  390. 3880 PRINT"           [146]" NM$(W)" IS THE WINNER             [146]"
  391. 3890 PRINT"THANKS FOR PLAYING....BYE NOW.":RETURN
  392. 3900 :
  393. 3910 REM DETERMINE VALUE OF PROPERTY
  394. 3920 NU=LEN(BO$(P))/2
  395. 3930 FORI=1TONU
  396. 3940 BT$(I)=MID$(BO$(P),(I*2)-1,2)
  397. 3950 AS(I)=VAL(PB$(VAL(BT$(I))))
  398. 3960 NEXTI: FORI=1TONU:AS=AS+AS(I):NEXTI
  399. 3970 RETURN
  400. 3980 :
  401. 3990 REM BANKRUPTCY ROUTINE
  402. 4000 AS=0:NU=0:TV(P)=0
  403. 4010 IFLEN(BO$(P))<2THEN4050:        REM DOES HE OWN PROPERTY
  404. 4020 GOSUB 3920:TV(P)=AS:            REM  DETERMINE VAL OF PROPERTY
  405. 4030 IFTV(P)>(-1*MP(P))THENGOSUB4080:RETURN :REM IS THERE VALUE TO COVER DEBT
  406. 4040 FORX=1TONU:SQ$(VAL(BT$(X)))="N0":NEXTX:BO$(P)="":REM NO-RESTORE ALL BOXES
  407. 4050 GOSUB1110:C=21:R=23:GOSUB460:PRINT"YOU ARE BANKRUPT[146]"
  408. 4060 BK(P)=1:FORT=1TO1000:NEXTT:RETURN
  409. 4070 :
  410. 4080 REM ASK WHICH PROPERTY TO SELL
  411. 4090 FORT=1TO500:NEXTT
  412. 4100 PRINT"[147]"CR$(8):PRINT"YOU MUST SELL TO PAY YOUR BILLS![146]"CR$(16)
  413. 4110 PRINT:PRINT"YOU CURRENTLY OWN"NU"ITEMS AS FOLLOWS:"
  414. 4120 PRINT" #  BOX#   NAME            $ VALUE":PRINT
  415. 4130 FORI=1TONU
  416. 4140 PRINTISPC(3)BT$(I)SPC(3)NB$(VAL(BT$(I)))SPC(5)AS(I)
  417. 4150 NEXTI
  418. 4160 PRINT"-----------------------------------":PRINT"TOTAL VALUE "AS
  419. 4170 PRINT:PRINT"YOU OWE $"MP(P):PRINT"WHICH ITEM # DO YOU WANT TO SELL"
  420. 4180 PRINT"(ENTER 1 TO"I-1")"
  421. 4190 GETA$:IFA$=""THEN4190
  422. 4200 X=VAL(A$)
  423. 4210 IFX<1ORX>I-1THEN4190
  424. 4220 PRINT"OK....#"X
  425. 4230 IFLEN(BO$(P))<4THENBO$(P)="":GOTO4270
  426. 4240 FORJ=1TONU*2STEP2
  427. 4250 IFBT$(X)=MID$(BO$(P),J,2)THENGOSUB4340
  428. 4260 NEXTJ
  429. 4270 SQ$(VAL(BT$(X)))="N0":  REM UPDATE STATUS OF BOX
  430. 4280 MP(P)=MP(P)+AS(X)
  431. 4290 IFMP(P)<0THENPRINT"YOU NOW OWE $"MP(P)" .MUST SELL MORE UNITS":GOTO4110
  432. 4300 RETURN
  433. 4310 :   : REM REMOVE CHOSEN UNIT FROM BOXES OWNED
  434. 4320 IFJ=1THENBO$(P)=RIGHT$(BO$(P),LEN(BO$(P)-2):RETURN
  435. 4330 IFJ=LEN(BO$(P))-1THENBO$(P)=LEFT$(BO$(P),LEN(BO$(P))-2):RETURN
  436. 4340 BO$(P)=MID$(BO$(P),1,J-1)+MID$(BO$(P),J+2,LEN(BO$(P))-(J+1))
  437. 4350 RETURN
  438. 4360 :
  439. 4370 REM DRAW HEADING
  440. 4380 PRINT"[147]":PRINTCR$(6);
  441. 4390 PRINTTAB(TB+2)"    [146]     [146] [188]     [146]     [146]"
  442. 4400 PRINTTAB(TB+2)"  [146]     [146]  [146]   [146]  [146]  [146]   [146]  [146]"
  443. 4410 PRINTTAB(TB+2)"  [146]     [146]  [146]   [146]  [146]  [146]     [146]"
  444. 4420 PRINTTAB(TB+2)"    [146]     [146]   [146]  [146]  [146]   [146]"
  445. 4430 PRINT
  446. 4440 PRINTTAB(TB+5)"[188]   [146]     [146]     [146]"
  447. 4450 PRINTTAB(TB+5)"  [146]  [146]   [146]  [146]   [146]  [146]"
  448. 4460 PRINTTAB(TB+5)"  [146]  [146]   [146]  [146]     [146]"
  449. 4470 PRINTTAB(TB+5)"  [146]  [146]     [146]   [146]
  450. 4475 [153]"SYS    COMPUTER MONOPLY
  451. 4480 PRINTCR$(16):RETURN
  452. 4490 :
  453. 4500 REM ENTER PLAYERS NAMES
  454. 4510 PRINT"[147]HOW MANY PLAYERS ARE THERE? (1-4)"
  455. 4520 GOSUB1160:X=VAL(A$)
  456. 4530 IFX<1ORX>4THEN4520
  457. 4540 PRINT"YOU SAY "X" PLAYER/S....CORRECT? (Y/N)"
  458. 4550 GOSUB1210:IFA$="N"THEN4510
  459. 4560 IFX>1THEN 4590
  460. 4570 PRINT"WHAT'S YOUR NAME?":GOSUB4730
  461. 4580 FORI=1TO4:NM$(I)=NM$:NEXTI:RETURN
  462. 4590 IFX>2THEN4630
  463. 4600 PRINT"ONE OF YOU WILL TAKE THE ODD # PLAYERS. ONE WILL BE THE EVEN #'S"
  464. 4610 PRINT"ENTER ODD PLAYER'S NAME":GOSUB4730:NM$(1)=NM$:NM$(3)=NM$
  465. 4620 PRINT"ENTER EVEN PLAYER'S NAME":GOSUB4730:NM$(2)=NM$:NM$(4)=NM$:RETURN
  466. 4630 IFX>3THEN4690
  467. 4640 PRINT"ENTER NAMES FOR PLAYERS 1-3. # 4 WILL BE BANKRUPT AT THE START"
  468. 4650 FORI=1TO3
  469. 4660 PRINT"ENTER NAME OF PLAYER"I
  470. 4670 GOSUB4730:NM$(I)=NM$:NEXTI:BK(4)=1:RETURN
  471. 4680 :
  472. 4690 FORI=1TO4
  473. 4700 PRINT"ENTER NAME OF PLAYER"I
  474. 4710 GOSUB4730:NM$(I)=NM$:NEXTI
  475. 4720 RETURN
  476. 4730 INPUT"NAME->[160][160][160][157][157][157]";NM$
  477. 4740 PRINTNM$,"IS YOUR NAME....CORRECT?"
  478. 4750 GOSUB1210:IFA$="N"THEN4730
  479. 4760 RETURN
  480. 4770 :
  481. 4780 REM INSTRUCTIONS
  482. 4790 PRINT"[147]":FORI=1TO9:READA$(I):PRINTA$(I):PRINT
  483. 4800 IFA$(I)="***"THENA$(10)=A$(I):I=9
  484. 4810 NEXTI
  485. 4820 PRINT"[159] PUSH 'C' TO CONTINUE WITH INSTRUCTIONS.";
  486. 4830 PRINT"       PUSH 'G' TO RETURN TO GAME       [146][155]";
  487. 4840 GETA$:IFA$=""THEN4840
  488. 4850 IFA$<>"C"AND A$<>"G"THEN4840
  489. 4860 IFA$="G"THEN RETURN
  490. 4870 IFA$(10)="***"THEN RETURN
  491. 4880 GOTO4790
  492. 4890 DATA THIS IS A GAME VERY SIMILAR TO MONOPOLY
  493. 4900 DATA DICE ARE ROLLED AND YOU MOVE AROUND
  494. 4910 DATA A BOARD THE NUMBER OF SPACES ROLLED
  495. 4920 DATA YOU THEN HAVE A CHANCE TO BUY THE
  496. 4930 DATA SPACE YOU LAND ON IF IT ISN'T OWNED BY
  497. 4940 DATA SOMEONE ALREADY. THE DIFFERENCE
  498. 4950 DATA IS YOU ARE NOT BUYING PROPERTY AS IN
  499. 4960 DATA MONOPOLY  BUT YOU ARE INSTEAD BUYING
  500. 4970 DATA COMPUTER COMPONENTS  I.E. KEYBOARDS
  501. 4980 DATA MONITORS  CPU'S  ETC. THERE ARE 4
  502. 4990 DATA PLAYERS PLACED ON THE BOARD. IF THERE
  503. 5000 DATA ARE ONLY TWO PEOPLE YOU DIVIDE THE
  504. 5010 DATA PLAYERS UP. TWO TO EACH OF YOU.  IF
  505. 5020 DATA THERE IS ONLY ONE PERSON  YOU CAN
  506. 5030 DATA PLAY ALL FOUR PLAYERS.
  507. 5040 DATA IN COMPNOP ALL THE PLAYERS START WITH
  508. 5050 DATA $500. AS YOU BUY ITEMS YOU GAIN A
  509. 5060 DATA CHANCE TO GET RENT FROM THE OTHERS
  510. 5070 DATA IF THE OTHERS LAND ON A SPACE YOU OWN
  511. 5080 DATA THEY PAY YOU RENT. IF YOU LAND ON A
  512. 5090 DATA SPACE OWNED BY SOMEONE ELSE YOU PAY
  513. 5100 DATA THEM RENT. THE SPACES ARE DIVIDED
  514. 5110 DATA INTO GROUPS 1) MONITORS 2)CPU'S
  515. 5120 DATA 3) SOFTWARE 4)DOS VERSIONS 5) KEY-
  516. 5130 DATA BOARDS 6) STORAGE DEVICES 7) LANGUAGES
  517. 5140 DATA IF YOU BUY ALL OF ONE GROUP  YOU
  518. 5150 DATA RECEIVE MORE RENT THAN NORMAL.
  519. 5160 DATA YOU'LL HAVE TO FIGURE OUT FROM
  520. 5170 DATA EXPERIENCE WHERE ON THE BOARD
  521. 5180 DATA THE VARIOUS COMPONENTS LIE. THATS
  522. 5190 DATA ALSO PART OF THE GAME. REMEMBERING
  523. 5200 DATA WHERE DIFFERENT COMPONENTS ARE ON
  524. 5210 DATA THE BOARD. LIKE CONCENTRATION.
  525. 5220 DATA IF YOU RUN OUT OF MONEY YOU CAN
  526. 5230 DATA SELL COMPONENTS TO GET MONEY
  527. 5240 DATA TO PAY YOUR BILLS. IF YOU DO NOT
  528. 5250 DATA HAVE ENOUGH MONEY OR COMPONENTS
  529. 5260 DATA TO COVER YOUR DEBTS...YOU ARE
  530. 5270 DATA BANKRUPT.  THE WINNER IS THE ONE WHO
  531. 5280 DATA CAN BANKRUPT THE OTHER PLAYERS OR
  532. 5290 DATA WHO HAS THE MOST VALUE IN BOTH
  533. 5300 DATA MONEY AND COMPONENTS WHEN YOU CHOOSE
  534. 5310 DATA TO STOP THE GAME. EACH PLAYER GETS
  535. 5320 DATA A TURN.  WHEN ALL FOUR HAVE MOVED
  536. 5330 DATA YOU ARE ASKED IF YOU WANT TO
  537. 5340 DATA CONTINUE. THIS GIVES YOU THE CHANCE
  538. 5350 DATA TO STOP THE GAME AT ANY POINT. IF
  539. 5360 DATA YOU DO STOP EARLY (BEFORE ALL BUT
  540. 5370 DATA ONE PLAYER IS BANKRUPT) THE COMPUTER
  541. 5380 DATA WILL CALCULATE THE TOTAL VALUE OF THE
  542. 5390 DATA ASSETS OF EACH PLAYER AND DECLARE
  543. 5400 DATA THE WINNER. THE COMPUTER IS THE
  544. 5410 DATA BANKER'. IT KEEPS TRACK OF ALL
  545. 5420 DATA COMPONENTS PURCHASED AND SOLD AND
  546. 5430 DATA HOW MUCH MONEY EACH PLAYER HAS.
  547. 5440 DATA THE AMOUNT OF MONEY EACH PLAYER
  548. 5450 DATA HAS IS DISPLAYED CONSTANTLY.
  549. 5460 DATA BUT THE COMPONENTS OWNED IS ONLY
  550. 5470 DATA DISPLAYED AT THE END OF THE GAME
  551. 5480 DATA OR IF A PLAYER NEEDS TO SELL
  552. 5490 DATA UNITS TO COVER DEBTS.  HAVE FUN.
  553. 5500 DATA ***
  554. 5510 :
  555. 5520 REM DETERMINE WHICH COMPUTER AND SET PROPER VALUES
  556. 5530 X=PEEK(50003):POKE50003,0:Y=PEEK(50003)
  557. 5540 IFY<>0THENPOKE 59468,12
  558. 5550 SP=32812:WD=40:TB=0:AD=20:PT=188:SD=0:FORI=1TO16:CR$(I)="":NEXT
  559. 5560 IFY=0THENGOSUB5600:RETURN
  560. 5570 PRINT"[147]":POKE32768,96:IFPEEK(32768+1024)<>96THENWD=80
  561. 5580 IFWD=80THENTB=20:SP=32872:AD=0:PT=348:PRINTCHR$(142)
  562. 5590 RETURN
  563. 5600 POKE53272,21:SP=1068:SD=54272:POKE50003,X
  564. 5610 CR$(1)=CHR$(144):REM BLACK
  565. 5620 CR$(2)=CHR$(5):REM WHITE
  566. 5630 CR$(3)=CHR$(28):REM RED
  567. 5640 CR$(4)=CHR$(159):REM CYN
  568. 5650 CR$(5)=CHR$(156):REM PUR
  569. 5660 CR$(6)=CHR$(30):REM GRN
  570. 5670 CR$(7)=CHR$(31):REM BLU
  571. 5680 CR$(8)=CHR$(158):REM YEL
  572. 5690 CR$(9)=CHR$(129):REM ORG
  573. 5700 CR$(10)=CHR$(149):REM BRN
  574. 5710 CR$(11)=CHR$(150):REM LT RED
  575. 5720 CR$(12)=CHR$(151):REM GREY 1
  576. 5730 CR$(13)=CHR$(152):REM GREY 2
  577. 5740 CR$(14)=CHR$(153):REM LT GRN
  578. 5750 CR$(15)=CHR$(154):REM LT BLU
  579. 5760 CR$(16)=CHR$(155):REM GREY 3
  580. 5770 FORI=1TO24:POKESD+I,0:NEXT:RETURN
  581.