-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathmnoply.bas
More file actions
158 lines (158 loc) · 7.83 KB
/
mnoply.bas
File metadata and controls
158 lines (158 loc) · 7.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
1 ! MONOPOLY GAME BY DAVID BARKER, SOUTHEASTERN STATE COLLEGE, DURANT, OK
2 ! SLIGHT PROGRAM MODIFICATIONS BY DAVID AHL, DIGITAL
3 M(1),M(2)=1500%: I(1),I(2)=0: DIM A$(25),B$(25),H%(40)
7 OPEN "PRPRTY" AS FILE 1: DIM #1,G$(40%)=25,L%(40),P%(40%),H%(40%)
8 FOR I=1 TO 39:L%(I),H%(I)=0:NEXT I:FOR I=1 TO 8:U(I)=0:NEXT I
9 DEF FNR=(H%(I(Z))*R(I(Z))*10%)
10 OPEN "MESAJ" AS FILE 3: DIM #3,C$(10)=50%,Z$(10)=50%,M$(20)=50%
15 & M$(1):&:&:& "**RULES**":&M$(2):&M$(3):&M$(4):&M$(5)
30 INPUT"WHO IS PLAYER #1";N$(1): INPUT"WHO IS PLAYER #2";N$(2)
100 PRINT: PRINT "**"N$(1)";S TURN**********": F=0
102 Z=1%: GOSUB 1000: GOSUB 2000
115 IF D=D1 THEN F=F+1: IF F<3 THEN PRINT M$(9): GOTO 102
117 IF F=3 THEN PRINT M$(10): I(Z)=10: M(Z)=M(Z)-50%
200 PRINT: PRINT "**"NS(2)"'S TURN**********": F=0
202 Z=2%: GOSUB 1000: GOSUB 2000
215 IF D=D1 THEN F=F+1: IF F<3 THEN PRINT M$(9): GOTO 202
217 IF F=3 THEN PRINT M$(10): I(Z)=10: M(Z)=M(Z)-50%
225 PRINT M$(11);:INPUT F$: IF F$="QUIT" THEN 30000 ELSE 100
1000 PRINT M$(6);:INPUT F$! RANDOMIZE: X=RND(0): Y=RND(0) !DICE ROLL
1002 IF X>=0 AND X<=.16 THEN D=1
1003 IF X>.16 AND X<=.32 THEN D=2
1004 IF X>.32 AND X<=.48 THEN D=3
1005 IF X>.48 AND X<=.64 THEN D=4
1006 IF X>.64 AND X<=.81 THEN D=5
1007 IF X>.81 AND X<=1 THEN D=6
1009 IF Y>=0 AND Y<=.16 THEN D1=1
1010 IF Y>.16 AND Y<=.32 THEN D1=2
1011 IF Y>.32 AND Y<=.48 THEN D1=3
1012 IF Y>.48 AND Y<=.64 THEN D1=4
1013 IF Y>.64 AND Y<=.81 THEN D1=5
1014 IF Y>.81 AND Y<=1 THEN D1=6
1015 PRINT "YOU ROLLED A"D"AND A"D1:I(Z)=I(Z)+(D+D1)
1016 IF I(Z)>40% THEN I(Z)=I(Z)-40%:M(Z)=M(Z)-200%
1017 RETURN
2000 PRINT"YOU ARE ON ";G$(I(Z)) !PLACEMENT
2002 IF I(Z)=2 OR I(Z)=17 OR I(Z)=33 THEN 4100 !COM CHEST
2004 IF I(Z)=4 THEN M(Z)=M(Z)-200% :RETURN !INC TAX
2006 IF I(Z)=7 OR I(Z)=22 OR I(Z)=36 THEN 4400 !CHANCE
2008 IF I(Z)=10 OR I(Z)=20 THEN RETURN !VISIT IN JAIL&FREE PARKING
2010 IF I(Z)=30 THEN M(Z)=M(Z)-50%: I(Z)=10! RETURN !JAIL
2011 IF I(Z)=38 THEN M(Z)=M(Z)-75% !RETURN !LUX TAX
2012 IF I(Z)=40 THEN M(Z)=M(Z)+200%! I(Z)=0: RETURN !GO
2018 IF L%(I(Z))=Z THEN PRINT M$(12): GOTO 3100
2019 IF (H%(I(Z))=0 AND L%(I(Z))>0 AND L%(I(Z))<>Z) THEN 2125
2020 IF (H%(I(Z))>0 AND L%(I(Z))>0 AND L%(I(Z))<>Z) THEN 2100
2022 PRINT M$(7);P(I(Z));"DOLLARS"
2024 PRINT M$(8);:INPUT F$: IF F$<>"BUY" THEN 3100
2026M(Z)=M(Z)-P(I(Z)): PRINT "YOU NOW HAVE"M(Z)"DOLLARS
2027 L%(I(Z))=Z:GOTO 3100
2100 IF Z=1 THEN M(Z)=M(Z)-FNR: M(2)=M(2)+FNR
2101 PRINT "YOU OWE"FNR"DOLLARS RENT":RETURN
2102 IF Z=2 THEN M(Z)=M(Z)-FNR: M(1)=M(1)+FNR
2103 PRINT "YOU OWE"FNR"DOLLARS RENT": RETURN
2125 IF Z=1 THEN M(Z)=M(Z)-R(I(Z)): M(2)=M(2)+R(I(Z))
2126 PRINT "YOU OWE"R(I(Z))"DOLLARS RENT":RETURN
2127 IF Z=2 THEN M(Z)=M(Z)-R(I(Z)): M(1)=M(1)+R(I(Z)
2128 PRINT "YOU OWE"R(I(Z)"DOLLARS RENT":RETURN
3100 PRINT M$(13): PRINT M$(14);:INPUT F$: IF F$="SELL" THEN GOSUB 3150
3105 PRINT M$(19);:INPUT H$: IF H$="HOUSE" THEN 3200 ELSE RETURN
3150 PRINT M$(15);:INPUT F$: IF F$="LIST" THEN GOSUB 3170
3152 PRINT M$(17);:INPUT V$: INPUT "HOW MUCH DO YOU WANT FOR IT";V
3154 FOR I=1 TO 39
3156 IF V$=G$(I) THEN IF L%(I)=0 THEN PRINT M$(16): RETURN
3158 IF V$=G$(I) THEN IF L%(I)=1 THEN M(1)=M(1)+V
:M(2)=M(2)-V: L%(I)=2: GOTO 3165
3160 IF V$=G$(I) THEN IF L%(I)=2 THEN M(2)=M(2)+V
:M(1)=M(1)-V: L%(I)=1: GOTO 3165
3162 NEXT I
3165 PRINT M$(18);:INPUT F$: IF F$="YES" THEN 3152 ELSE RETURN
3170 C,D:=0: FOR I=1 TO 39
3172 IF L%(I)=1 THEN C=C+1: A$(C)=G$(I)
3174 IF L%(I)=2 THEN D=D+1: B$(D)=G$(I)
3175 NEXT I
3176 PRINT N$(1)"'S PROPERTY": FOR I=1 TO C: PRINT A$(I): NEXT I
3178 PRINT N$(2)"'S PROPERTY": FOR I=1 TO D: PRINT B$(I): NEXT I:RETURN
3200 IF L%(1)=Z AND L%(3)=Z THEN &"HOW MANY HOUSES AT $50 EACH DO YOU WANT ON"
:PRINT G$(1)" "G$(3);:INPUT U:GOSUB 3250
3202 IF L%(6)=Z AND L%(8)=Z AND L%(9)=Z THEN
PRINT "HOW MANY HOUSES AT $50 EACH DO YOU WANT ON"
:PRINT G$(6)" "G$(8)" "G$(9);:INPUT U:GOSUB 3252
3204 IF L%(11)=Z AND L%(13)=Z AND L%(14)=Z THEN
PRINT "HOW MANY HOUSES AT $100 EACH DO YOU WANT ON"
:PRINT G$(11)" "G$(13)" "G$(14);:INPUT U:GOSUB 3254
3206 IF L%(16)=Z AND L%(18)=Z AND L%(19)=Z THEN
PRINT "HOW MANY HOUSES AT $100 EACH DO YOU WANT ON"
:PRINT G$(16)" "G$(18)" "G$(19);:INPUT U:GOSUB 3256
3208 IF L%(21)=Z AND L%(23)=Z AND L%(24)=Z THEN
PRINT "HOW MANY HOUSES AT $150 EACH DO YOU WANT ON"
:PRINT G$(21)" "G$(23)" "G$(24);:INPUT U:GOSUB 3258
3210 IF L%(26)=Z AND L%(27)=Z AND L%(29)=Z THEN
PRINT "HOW MANY HOUSES AT $150 EACH DO YOU WANT ON"
:PRINT G$(26)" "G$(27)" "G$(29);:INPUT U:GOSUB 3260
3212 IF L%(31)=Z AND L%(32)=Z AND L%(34)=Z THEN
PRINT "HOW MANY HOUSES AT $200 EACH DO YOU WANT ON"
:PRINT G$(31)" "G$(32)" "G$(34);:INPUT U: OSUB 3262
3214 IF L%(37)=Z AND L%(39)=Z THEN
PRINT "HOW MANY HOUSES AT $200 EACH DO YOU WANT ON"
:PRINT G$(37)" "G$(39);:INPUT U:GOSUB 3264
3220 RETURN
3250 U(1)=U(1)+U: M(Z)=M(Z)-(U*100%): IF M(Z)<0 THEN PRINT M$(20)
:M(Z)=M(Z)+(U*100%): U(1)=U(1)-U: RETURN
3251 H%(1),H%(3)=U(1): RETURN
3252 U(2)=U(2)+U: M(Z)=M(Z)-(U*150%): IF M(Z)<0 THEN PRINT M$(20)
:M(Z)=M(Z)+(U*150%): U(2)=U(2)-U: RETURN
3253 H%(6),H%(8),H%(9)=U(2): RETURN
3254 U(3)=U(3)+U: M(Z)=M(Z)-(U*150%): IF M(Z)<0 THEN PRINT M$(20)
:M(Z)=M(Z)+(U*150%): U(3)=U(3)-U: RETURN
3255 H%(11),H%(13),H%(14)=U(3): RETURN
3256 U(4)=U(4)+U: M(Z)=M(Z)-(U*300%): IF M(Z)<0 THEN PRINT M$(20)
:M(Z)=M(Z)+(U*300%): U(4)=U(4)-U: RETURN
3257 H%(16),H%(18),H%(19)=U(4): RETURN
3258 U(5)=U(5)+U: M(Z)=M(Z)-(U*450%): IF M(Z)<0 THEN PRINT M$(20)
:M(Z)=M(Z)+(U*450%): U(5)=U(5)-U: RETURN
3259 H%(21),H%(23),H%(24)=U(5): RETURN
3260 U(6)=U(6)+U: M(Z)=M(Z)-(U*450%): IF M(Z)<0 THEN PRINT M$(20)
:M(Z)=M(Z)+(U*450%): U(6)=U(6)-U: RETURN
3261 H%(26),H%(27),H%(29)=U(6): RETURN
3262 U(7)=U(7)+U: M(Z)=M(Z)-(U*600%): IF M(Z)<0 THEN PRINT M$(20)
:M(Z)=M(Z)+(U*600%): U(7)=U(7)-U: RETURN
3263 H%(31),H%(32),H%(34)=U(7): RETURN
3264 U(8)=U(8)+U: M(Z)=M(Z)-(U*400%): IF M(Z)<0 THEN PRINT M$(20)
:M(Z)=M(Z)+(U*400%): U(8)=U(8)-U: RETURN
3265 H%(37),H%(39)=U(8): RETURN
4100 RANDOMIZE: L=RND(0) !COMMUNITY CHEST
4102 IF L>=0 AND L<=.1 THEN PRINT Z$(1): M(Z)=M(Z)+100%: RETURN
4104 IF L>.1 AND L<=.2 THEN PRINT Z$(2): M(Z)=M(Z)+100%: RETURN
4106 IF L>.2 AND L<=.3 THEN PRINT Z$(3): M(Z)=M(Z)+20%: RETURN
4108 IF L>.3 AND L<=.4 THEN PRINT Z$(4): M(Z)=M(Z)+50%: RETURN
4110 IF L>.4 AND L<=.5 THEN PRINT Z$(5): M(Z)=M(Z)+100%: RETURN
4112 IF L>.5 AND L<=.6 THEN PRINT Z$(6): M(Z)=M(Z)+200%: I(Z)=0: RETURN
4114 IF L>.6 AND L<=.7 THEN PRINT Z$(7): M(Z)=M(Z)+100%: RETURN
4116 IF L>.7 AND L<=.8 THEN PRINT Z$(8): M(Z)=M(Z)+50%: I(Z)=10: RETURN
4118 IF L>.8 AND L<=.9 THEN PRINT Z$(9): M(Z)=M(Z)+50%: RETURN
4120 IF L>.9 AND L<=1 THEN PRINT Z$(10): M(Z)=M(Z)+200%: RETURN
4400 RANDOMIZE: L=RND(0) !CHANCE
4402 IF L>=0 AND L<=.1 THEN PRINT C$(1): M(Z)=M(Z)+15%: RETURN
4404 IF L>.1 AND L<=.2 THEN PRINT C$(2): I(Z)=24: GOSUB 2000: RETURN
4406 IF L>.2 AND L<=.3 THEN PRINT C$(3): I(Z)=I(Z)+3: GOSUB 2000: RETURN
4408 IF L>.3 AND L<=.4 THEN PRINT C$(4): I(Z)=0: M(Z)=M(Z)+200%: RETURN
4410 IF L>.4 AND L<=.5 THEN PRINT C$(5): M(Z)=M(Z)+50%: RETURN
4412 IF L>.5 AND L<=.6 THEN PRINT C$(6): I(Z)=5
:M(Z)=M(Z)+200%: GOSUB 2000: RETURN
4414 IF L>.6 AND L<=.7 THEN PRINT C$(7): I(Z)=10: M(Z)=M(Z)+50%: RETURN
4416 IF L>.7 AND L<=.8 THEN PRINT C$(8): M(Z)=M(Z)+150%: RETURN
4418 IF L>.8 AND L<=.9 THEN PRINT C$(9): I(Z)=39: GOSUB 2000: RETURN
4420 IF L>.9 AND L<=1 THEN PRINT C$(10): I(Z)=11: GOSUB 2000: RETURN
30000 C,D=0
30002 FOR I=1 TO 39
30004 IF L%(I)=1 THEN C=C+1:A$(C)=G$(I)
30006 IF L%(I)=2 THEN D=D+1:B$(D)=G$(I)
30008 NEXT I:PRINT:PRINT
30009 PRINT N$(1)" OWNED THE FOLLOWING PROPERTY"
:FOR I=1 TO C:PRINT A$(I):NEXT I
30010 PRINT "AND HAD";M(1);"DOLLARS AT THE END OF THE GAME"
30011 PRINT N$(2)" OWNED THE FOLLOWING PROPERTY"
:FOR I=1 TO D:PRINT B$(I):NEXT I
30012 PRINT "AND HAD";M(2);"DOLLARS AT THE END OF THE GAME"
30013 CLOSE 1,3:END