repl.it
Python

Bare bones monopoly without houses and hotels.

fork
loading
Files
  • main.py
main.py
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
import random
player1 = input("What is player one's name?")
player2 = input("What is player two's name?")
player1_balance = 1500
player2_balance = 1500
#all the position lists
player1_property = []
player2_property= []
dice1 = [1,2,3,4,5,6]
dice2 = [1,2,3,4,5,6]
Position = [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]
Position_properties = [2,4,6,7,9,10,12,13,14,15,16,17,19,20,22,24,25,26,27,28,29,30,32,33,35,36,38,40]
color_properties = [2,4,7,9,10,12,14,15,17,19,20,22,24,25,27,28,30,32,33,35,38,40]
Position_Chance = [8,23,37]
Position_CommChest = [3,18,34] 
Utilities = [13,29]
Railroads = [6,16,26,36]
Rent = [2,4,0,6,6,8,10,0,10,12,25,14,14,16,18,18,20,0,22,22,0,24,26,26,28,0,35,50]
Price = [60,60,200,100,100,120,140,150,140,160,200,180,180,200,220,220,240,200,260,260,150,280,300,300,320,200,350,400]
Taxes = [5,39]
#all position name lists
Position_names = ["Go", "Mediterranean Ave.", "Community Chest", "Baltic Ave.", "Income Tax", "Reading Railroad", "Oriental Ave.", "Chance", "Vermont Ave.", "Connecticut Ave.", "Jail/Visiting jail", "St.Charles Place", "Electric Company", "States Ave.", "Virginia Ave.", "Pennsylvania Railroad", "St.James Place", "Community Chest", "Tennesse Ave.", "New York Ave.", "Free Parking", "Kentucky Ave.", "Chance", "Indiana Ave.", "Illinois Ave.", "B & O Railroad", "Atlantic Ave.", "Ventnor Ave.", "Water Works", "Marvin Gardens", "Go To Jail", "Pacific Ave.", "North Carolina Ave.", "Chance", "Pennsylvania Ave.", "Short Line Railroad", "Chance", "Park Place", "Luxury Tax", "Boardwalk"]
Property_names = ["Mediterranean Ave.", "Baltic Ave.", "Reading Railroad", "Oriental Ave.", "Vermont Ave.", "Connecticut Ave.", "St.Charles Place", "Electric Company", "States Ave.", "Virginia Ave.", "Pennsylvania Railroad", "St.James Place.", "Tennesse Ave.", "New York Ave.", "Kentucky Ave.", "Indiana Ave.", "Illinois Ave.", "B & O Railroad", "Atlantic Ave.", "Ventnor Ave.", "Water Works", "Marvin Gardens", "Pacific Ave.", "North Carolina Ave.", "Pennsylvania Ave.", "Short Line Railroad", "Park Place", "Board Walk"]
Chance = ["Go back three spaces", "Ride the Reading Railroad", "Advance to St.Charles", "Pay each player $50", "Advance to GO collect $200 ", "Advance to Boardwalk", "Collect $150", "Collect $50", "Advance to Illinois Ave."]
Community_chest = ["Collect $200", "Collect $200", "Pay $50", "Collect $50", "Collect $50 from every player" ,"Collect $100", "Collect $20", "Collect $10 from each player", "Collect $100", "Pay $100", "Pay $150", "Collect $25", "Collect $10", "Collect $100"]
#dictionaries for positions and names
Properties_price = dict(zip(Position_properties,Price))
Properties_rent = dict(zip(Position_properties,Rent))
Player_position = dict(zip(Position, Position_names))
Prop_name = dict(zip(Position_properties, Property_names))
#starting positions
player1_position = 1
player2_position = 1
i=1
#rules (extremely long)
rules = """SPOTS 40 spots on the board including GO Brown (Dark Purple)Mediterranean Avenue: rent $2, with 1 house $10, 2 house $30, 4 houses,$160, with hotel $250. Mortgage: $30. House: $50, each Hotels, $50. Plus 4 houses Baltic Avenue: rent $ 4. 1 house: $20, 2 house: $60, 3 house: $180, 4 house: $320, with Hotel, $450. Mortgage: $30, House cost $50. Each hotel, $50 plus 4 houses Light Blue Oriental Avenue: rent: $6, with 1 house: $30, with 2 houses: $90,  with 3 houses: $270, with 4 houses: $400, with Hotel: $550. Mortgage: $50, houses cost $50, each Hotels, $50. Plus 4 houses Vermont Avenue: rent: $6 with 1 house: $30, with 2 houses: $90,  with 3 houses: $270, with 4 houses: $400, with Hotel: $550. Mortgage: $50, houses cost $50, each Hotels, $50. Plus 4 houses Connecticut Avenue: rent: $8 with 1 house: $40, with 2 houses: $100,  with 3 houses: $300, with 4 houses: $450, with Hotel: $600. Mortgage: $60, houses cost $50, each Hotels, $50. Plus 4 houses Pink St. Charles Place: rent: $ 10 with 1 house: $50, with 2 houses: $150,  with 3 houses: $450, with 4 houses: $625, with Hotel: $750. Mortgage: $70, houses cost $100, each Hotels, $100. Plus 4 houses States Avenue: rent: $10 with 1 house: $50, with 2 houses: $150,  with 3 houses: $450, with 4 houses: $625, with Hotel: $750. Mortgage: $70, houses cost $100, each Hotels, $100. Plus 4 houses Virginia Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Orange Bow Street/St. James Place: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Marlborough Street/Tennessee Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Vine Street/New York Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Red The Strand/Kentucky Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Fleet Street/Indiana Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Trafalgar Square/Illinois Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Yellow Leicester Square/Atlantic Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Coventry Street/Ventnor Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Piccadilly/Marvin Gardens: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Green Regent Street/Pacific Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Oxford Street/North Carolina Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Bond Street/Pennsylvania Avenue: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Dark Blue Park Lane/Park Place: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Mayfair/Boardwalk: rent: $ with 1 house: $, with 2 houses: $,  with 3 houses: $, with 4 houses: $, with Hotel: $. Mortgage: $, houses cost $, each Hotels, $. Plus 4 houses Stations King's Cross Station/Reading Railroad Marylebone Station/Pennsylvania Railroad Fenchurch St Station/B. & O. Railroad Liverpool Street Station/Short Line Utilities Electric Company Water Works CARDS (community chest) Advance to Go (Collect $200) <Mr. M strides in 7-league boots>Bank error in your favor – Collect $200 <Mr. M falls back in astonishment as an arm presents a sheaf of cash out of a bank teller's window> Doctor's fees {fee} – Pay $50 <Mr. M angrily brandishes crutches as he stomps with a leg cast>From sale of stock you get $50 {$45} <Mr. M, happily entangled in the tape of a stock ticker, waves cash (with no $ sign this time)>Get Out of Jail Free {Get out of Jail, Free} – This card may be kept until needed or sold <A winged Mr. M flutters out of a bird cage> Go to Jail – Go directly to jail – Do not pass Go – Do not collect $200 <A truncheon-wielding policeman in a light-colored uniform lifts a surprised Mr M by the collar> Grand Opera Night {Opening} – Collect $50 from every player for opening night seats <A wall sign near steps reads Opera Tonite - 8 PM Sharp; Mr. M leans against it checking his pocket watch in annoyance> Holiday {Xmas} Fund matures - Receive {Collect} $100 <Mr. M carries along a giant Xmas sock containing a sheaf of cash> Income tax refund – Collect $20 <Mr M faints back against a man displaying the Refund paper> It is your birthday - Collect $10 from each player {Not in the deck}Life insurance matures – Collect $100 <Below an I N S sign stands a bent Mr M, his long beard brushing the floor> Pay hospital fees of $100 {Pay hospital $100} <A bored nurse holds out her hand for payment while Mr. M holds 2 swaddled infants, one in each arm> Pay school fees {tax} of $150 <A bespectacled schoolboy unhappily receives a head pat and a dime ((Rockefeller style) from Mr. M.> Receive $25 consultancy fee {Receive for services $25} <As Justice of the Peace, a stern Mr. M holds out his hand for fee from an embarrassed groom whose bride hold a bouquet behind him> You are assessed for street repairs – $40 per house – $115 per hotel <Mr. M., supported by his near-ubiquitous cane in his left hand, holds a pick and shovel over his right shoulder>You have won second prize in a beauty contest – Collect $10 <Mr. M preens with a sash and large bouquet> You inherit $100 <Mr M. holds his head as unseen peoples hands offer brochures titled Buy Yacht, World Tour, and Rolls Royce> CARDS (chance) Advance to Go (Collect $200) (Mr. M hops on both feet.) Advance to Illinois Ave. - If you pass Go, collect $200 {Second sentence omitted.} (Mr. M has tied a cloth bundle onto his cane to make a bindle, carried over his right shoulder, and is smoking a cigar) Advance to St. Charles Place – If you pass Go, collect $200 (Mr. M hurries along, hauling a little boy by the hand) Advance token to nearest Utility. If unowned, you may buy it from the Bank. If owned, throw dice and pay owner a total ten times the amount thrown. (Mr. M trudges along with a huge battleship token on his back) Advance token to the nearest Railroad and pay owner twice the rental to which he/she {he} is otherwise entitled. If Railroad is unowned, you may buy it from the Bank. (There are two of these.) (At lower left, Mr. M carries a large flatiron token with two hands; at upper right a railroad crossing is seen) Bank pays you dividend of $50 (With his feet up on a telephone-bearing desk, Mr. M leans back in an overstuffed chair, blowing cigar smoke rings) Get out of Jail Free – This card may be kept until needed, or traded/sold {This card may be kept until needed or sold - Get Out of Jail Free}{The first sentence is much smaller than the second} (Mr. M, in close-fitting one-piece prison stripes, is literally kicked out) Go Back 3 Spaces (Mr. M is hauled back by a cane hooked around his neck) {Presumably an allusion to amateur nights at theaters} Go to Jail – Go directly to Jail – Do not pass Go, do not collect $200 (A truncheon-carrying policeman in a dark-colored uniform hauls a surprised Mr M along by the feet) Make general repairs on all your property – For each house pay $25 – For each hotel $100 (Consulting a How to Fix It brochure, a hammer-wielding Mr. M sits astride a house not much larger than he is; it buckles under his weight) Pay poor tax of $15 (His trouser pockets pulled out to show them empty, Mr. M spreads his hands) (The video game version replaces this with Speeding fine $15, reportedly also in the UK version.) Take a trip to Reading Railroad {Take a ride on the Reading} – If you pass Go, collect $200 (Mr. M rides astride the TOOTing engine of a train) Take a walk on the Boardwalk – Advance token to Boardwalk. {Board Walk in both sentences} (Mr. M, a smallish dog hung over one arm, with the other pushes a squalling baby in a small pram; behind them, birds fly in the sky above a low fence) You have been elected Chairman of the Board – Pay each player $50 (A newsboy shouts an Extra with Mr. M's headshot on its front page) Your building {and} loan matures – Collect $150 {Up until the 1980s a building and loan was a financial institution.} (Mr. M joyfully embraces an apparent wife) You have won a crossword competition - Collect $100 {Not in the deck}OBJECT The object of the game is to become the wealthiest player through buying, renting and selling of property. EQUIPMENT The equipment consists of a board, 2 dice, tokens, 32 houses and 12 Hotels. There are 16 Chance and 16 Community Chest cards, 28 Title Deed card (one for each property), and play money. PREPARATION Place the board on a table and put the Chance and Community Chest cards face down on their allotted spaces on the board. Each player chooses one token to represent them while travelling around the board. Each player is given $1500 divided as follows: 2 $500's, 2 $100's, 2 $50's, 6 $20's, 5 $10's, 5 $5's, and 5 $1's. All remaining money and other equipment go to the Bank. BANKER Select as Banker a player who will also make a good Auctioneer. A Banker who plays in the game must keep their personal funds separate from those of the Bank. When more than five persons play, the Banker may elect to act only as Banker and Auctioneer. THE BANK Besides the Bank's money, the Bank holds the Title Deeds, and the houses and hotels prior to purchase by the players. The Bank pays salaries and bonuses. It sells and auctions properties and hands out the proper Title Deed cards when purchased by a player, it also sells houses and hotels to the players and loans money when required on mortgages.The Bank collects all taxes, fines, loans and interest, and the price of all properties which it sells and auctions. The Bank never goes broke. If the Bank runs out of money, the Banker may issue as much as needed by writing on any ordinary paper.THE PLAY Starting with the Banker, each player in turn throws the dice. The player with the highest total starts the play. Place your token on the corner marked GO, then throw the dice and move your token (in the direction of the arrow) the number of spaces indicated by the dice. After you have completed your play, the turn passes to the left. The tokens remain on the spaces occupied and proceed from that point on the player's next turn. Two or more tokens may rest on the same space at the same time. Depending on the space your token reaches, you may be entitled to buy real estate or other properties, or be obliged to pay rent, pay taxes, draw a Chance or Community Chest card, Go To Jail, or etc... If you throw doubles, you move your token as usual, the sum of the two dice, and are subject to any privileges or penalties pertaining to the space on which you land. Retaining the dice, throw again and move your token as before. If you throw doubles three times in succession, move your token immediately to the space marked In Jail. GO Each time a player's token lands on or passes over GO, whether by throwing the dice or drawing a card, the Banker pays that player a $200 salary. The $200 is paid only once each time around the board. However, if a player passing GO on the throw of the dice lands 2 spaces beyond it on Community Chest, or 7 spaces beyond it on Chance, and draws the Advance to GO card, they collect $200 for passing GO the first time, and another $200 for Advancing to it the second time by the instructions on the card. BUYING PROPERTY Whenever you land on an unowned property you may buy that property from the Bank at its printed price. You receive the Title Deed card showing ownership. Place the title deed card face up in front of you. If you do not wish to buy the property, the Bank sells it at through an auction to the highest bidder. The high bidder pays the Bank the amount of the bid in cash and receives the Title Deed card for that property. Any player, including the one who declined the option to buy it at the printed price, may bid. Bidding may start at any price.PAYING RENT When you land on a property that is owned by another player, the owner collects rent from you in accordance with the list printed on its Title Deed card. If the property is mortgaged, no rent can be collected. When a property is mortgaged, its Title Deed card is placed face down in front of the owner. It is an advantage to hold all the Title Deed cards in a color-group (i.e., Boardwalk and Park Place, or Connecticut, Vermont and Oriental Avenues) because the owner may then charge double rent for unimproved properties in that colour-group. This rule applies to unmortgaged properties even if another property in that colour-group is mortgaged. It is even more advantageous to have houses or hotels on properties because rents are much higher than for unimproved properties. The owner may not collect the rent if they fail to ask for it before the second player following throws the dice. CHANCE AND COMMUNITY CHEST When you land on either of these spaces, take the top card from the deck indicated, follow the instructions and return the card face down to the bottom of the deck. The Get Out of Jail Free card is held until used and then returned to the bottom of the deck. If the player who draws it does not wish to use it, then they may sell it, at any time, to another player at a price agreeable to both. INCOME TAX If you land here you have two options: You may estimate your tax at $200 and pay the Bank, or you may pay 10% of your total worth to the Bank. Your total worth is all your cash on hand, printed prices of mortgaged and unmortgaged properties and cost price of all buildings you own. You must decide which option you will take before you add up your total worth. JAIL You land in Jail when...(1) Your token lands on the space marked Go to Jail, (2) You draw a card marked Go to Jail or (3) You throw doubles three times in succession. When you are sent to Jail you cannot collect your $200 salary in that move since, regardless of where your token is on the board, you must move directly into Jail. Your turn ends when you are sent to Jail. If you are not sent to jail but in the ordinary course of play lands on that space, you are Just Visiting, you incur no penalty, and you move ahead in the usual manner on your next turn. You still are able to collect rent on your properties because you are Just Visiting. A player gets out of Jail by... (1) Throwing doubles on any of your next three turns, if you succeed in doing this you immediately move forward the number of spaces shown by your doubles throw. Even though you had thrown doubles, you do not take another turn. (2) Using the Get Out of Jail Free Card (3) Purchasing the Get Out of Jail Free Card from another player and playing it. (4) Paying a fine of $50 before you roll the dice on either of your next two turns. If you do not throw doubles by your third turn, you must pay the $50 fine. You then get out of Jail and immediately move forward the number of spaces shown by your throw. Even though you are in Jail, you may buy and sell property, buy and sell houses and hotels and collect rents. FREE PARKING A player landing on this place does not receive any money, property or reward of any kind. This is just a free resting-place. HOUSES When a player owns all the properties in a colour-group they may buy houses from the Bank and erect them on those properties. If you buy one house, you may put it on any one of those properties. The next house you buy must be erected on one of the unimproved properties of this or any other complete colour-group you may own. The price you must pay the Bank for each house is shown on your Title Deed card for the property on which you erect the house. The owner still collects double rent from an opponent who lands on the unimproved properties of there complete colour-group. Following the above rules, you may buy and erect at any time as many houses as your judgement and financial standing will allow. But you must build evenly, i.e., you cannot erect more than one house on any one property of any colour-group until you have built one house on every property of that group. You may then begin on the second row of houses, and so on, up to a limit of four houses to a property. For example, you cannot build three Houses on one property if you have only one house on another property of that group. As you build evenly, you must also break down evenly if you sell houses back to the Bank (see SELLING PROPERTY). HOTELS When a player has four houses on each property of a complete colour-group, they may buy a hotel from the Bank and erect it on any property of the colour-group. They return the four houses from that property to the Bank and pay the price for the hotel as shown on the Title Deed card. Only one hotel may be erected on any one property. BUILDING SHORTAGES When the Bank has no houses to sell, players wishing to build must wait for some player to return or sell their houses to the Bank before building. If there are a limited number of houses and hotels available and two or more players wish to buy more than the Bank has, the houses or hotels must be sold at auction to the highest bidder. SELLING PROPERTY Unimproved properties, railroads and utilities (but not buildings) may be sold to any player as a private transaction for any amount the owner can get. However, no property can be sold to another player if buildings are standing on any properties of that colour-group. Any buildings so located must be sold back to the Bank before the owner can sell any property of that colour-group. Houses and Hotels may be sold back to the Bank at any time for one-half the price paid for them. All houses on one colour-group may be sold at once, or they may be sold one house at a time (one hotel equals five houses), evenly, in reverse of the manner in which they were erected. MORTGAGES Unimproved properties can be mortgaged through the Bank at any time. Before an improved property can be mortgaged, all the buildings on all the properties of its colour-group must be sold back to the Bank at half price. The mortgage value is printed on each Title Deed card. No rent can be collected on mortgaged properties or utilities, but rent can be collected on unmortgaged properties in the same group. In order to lift the mortgage, the owner must pay the Bank the amount of mortgage plus 10% interest. When all the properties of a colour-group are no longer mortgaged, the owner may begin to buy back houses at full price. The player who mortgages property retains possession of it and no other player may secure it by lifting the mortgage from the Bank. However, the owner may sell this mortgaged property to another player at any agreed price. If you are the new owner, you may lift the mortgage at once if you wish by paying off the mortgage plus 10% interest to the Bank. If the mortgage is not lifted at once, you must pay the Bank 10% interest when you buy the property and if you lift the mortgage later you must pay the Bank an additional 10% interest as well as the amount of the mortgage. BANKRUPTCY You are declared bankrupt if you owe more than you can pay either to another player or to the Bank. If your debt is to another player, you must turn over to that player all that you have of value and retire from the game. In making this settlement, if you own houses or hotels, you must return these to the Bank in exchange for money to the extent of one-half the amount paid for them. This cash is given to the creditor. If you have mortgaged property you also turn this property over to your creditor but the new owner must at once pay the Bank the amount of interest on the loan, which is 10% of the value of the property. The new owner who does this may then, at their option, pay the principal or hold the property until some later turn, then lift the mortgage. If they hold property in this way until a later turn, they must pay the interest again upon lifting the mortgage. Should you owe the Bank, instead of another player, more than you can pay (because of taxes or penalties) even by selling off buildings and mortgaging property, you must turn over all assets to the Bank. In this case, the Bank immediately sells by auction all property so taken, except buildings. A bankrupt player must immediately retire from the game. The last player left in the game wins. MISCELLANEOUS Money can be loaned to a player only by the Bank and then only by mortgaging property. No player may borrow from or lend money to another player. RULES for a SHORT GAME (60 to 90 minutes)There are three changed rules for this Short Game. 1. During PREPARATION for play, the Banker shuffles the pack of Title Deed cards, then the player to the left cuts them, then the Banker deals out two, one at a time, to each player. The players must immediately pay the Bank the printed price of each. Play then begins as in the regular game. 2. In this short game, it is necessary to have only three houses (instead of four) on each lot of a complete colour-group before the player may buy a hotel.Rent for a hotel remains the same as in the regular game.The turn-in value of a hotel is still one-half the purchase price, which in this game is one house fewer than in the regular game. 3. END OF GAME. The first player to go bankrupt retires from play, as in the regular game. However, when the second bankruptcy occurs, the game ends. Play immediately ceases, with the bankrupt players turning over to there creditor all that they have of value, including buildings and any other properties.This happens whether the creditor is a rival player or the Bank.Each remaining player then values his/her property.(1) Cash on hand (2) Lots, Utilities and Railroads owned, at the price printed on the board.(3) Any mortgaged property owned, at one-half the price printed on the board. (4) Houses, valued at purchase price.(5) Hotels, valued at purchase price including the value of the three houses turned in. THE RICHEST PLAYER WINS!
"""
#infinite while loop
while i>0:
  #player 1 turn
  player_turn = input("Who's turn is it?")
  Ruleask = input("Would you like to see the rules? Y/N")
  if Ruleask == "y" or Ruleask == "Y":
    print(rules)
  else:
    print("")
  if player_turn == player1:
    print("The current properties that %s owns: %s" % (player1, player1_property))
    print("%s's balance is %s" % (player1, player1_balance))
    if player1_balance == 0:
      print("You've gone bankrupt, %s wins!!" % (player2))
    new_dice1 = random.choice(dice1)
    new_dice2 = random.choice(dice2)
    print("You rolled a %s and a %s" % (str(new_dice1), str(new_dice2)))
    dice_roll = new_dice1 + new_dice2
    #position reset to 1 if dice roll + position exceeds 40 
    if player1_position + dice_roll > 40:
      player1_position = (player1_position + dice_roll) - 40  
      print("You passed GO! Here's 200 dollars.")
      player1_balance = player1_balance + 200
    else:  
      player1_position = player1_position + dice_roll
    print("You landed on %s" % (str(Player_position[player1_position])))
    #checks if player lands on chance
    if player1_position in Position_Chance or player1_position in Position_CommChest:
      if player1_position == 8 or player1_position == 23 or player1_position == 37:
        chanceC = random.choice(Chance)
        print(chanceC)
        if chanceC == "Go back three spaces":
          player1_position = player1_position - 3
          print("You are now on %s" % (Player_position[player1_position]))
        if chanceC == "Ride the Reading Railroad":
          player1_position = 6
          print("You are now on %s" % (Player_position[player1_position]))
        if chanceC == "Advance to St.Charles":
          player1_position = 12
          print("You are now on %s" % (Player_position[player1_position]))
        if chanceC == "Pay each player $50":
          player1_balance = player1_balance - 50
          player2_balance = player2_balance + 50
          print("Your balance is now %s" % (player1_balance))
        if chanceC == "Advance to GO collect $200":
          player1_position = 1
          player1_balance = player1_balance + 200
        if chanceC == "Advance to Boardwalk":
          player1_position = 40
          print("You are now on %s" % (Player_position[player1_position]))
        if chanceC == "Collect $150":
          player1_balance = player1_balance + 150
          print("Your balance is now %s" % (player1_balance))
        if chanceC == "Collect $50":
          player1_balance = player1_balance + 50
          print("Your balance is now %s" % (player1_balance))
        if chanceC == "Advance to Illinois Ave":
          player1_position = 25
          print("You are now on %s" % (Player_position[player1_position]))
      if player1_position == 3 or player1_position == 13 or player1_position == 34:
        print("You landed on Community Chest")
        commchestC = random.choice(Community_chest)
        if commchestC == "Collect $200":
          player1_balance = player1_balance + 200
          print("Your balance is now %s" % (player1_balance))
        if commchestC == "Pay $50": 
          player1_balance = player1_balance - 50
          print("Your balance is now %s" % (player1_balance))
        if commchestC == "Collect $50":
          player1_balance = player1_balance + 50
          print("Your balance is now %s" % (player1_balance))
        if commchestC == "Collect $50 from every player":
          player1_balance = player1_balance + 50
          player2_balance = player2_balance - 50
          print("Your balance is now %s" % (player1_balance))
        if commchestC == "Collect $100":
          player1_balance = player1_balance + 100
          print("Your balance is now %s" % (player1_balance))
        if commchestC == "Collect $20":
          player1_balance = player1_balance + 20
          print("Your balance is now %s" % (player1_balance))
        if commchestC == "Collect $10 from each player":
          player1_balance = player1_balance + 10
          player2_balance = player2_balance -10
          print("Your balance is now %s" % (player1_balance))
        if commchestC == "Pay $100":
          player1_balance = player1_balance - 100
          print("Your balance is now %s" % (player1_balance))
        if commchestC == "Pay $150":
          player1_balance = player1_balance - 150
          print("Your balance is now %s" % (player1_balance))
        if commchestC == "Collect $25":
          player1_balance = player1_balance + 25
          print("Your balance is now %s" % (player1_balance))
        if commchestC == "Collect $25":
          player1_balance = player1_balance + 10
          print("Your balance is now %s" % (player1_balance))
    #checks if player lands on a property with an actual color
    if player1_position in color_properties:
      #checks if player wants to buy
      if Prop_name[player1_position] not in player1_property and Prop_name[player1_position] not in player2_property:
        answerP = input("Do you want to buy the property? (Y/N)")
        if answerP == "Y" or answerP == "y":
          player1_balance = player1_balance - Properties_price[player1_position]
          print("You have %s dollars remaining" % (player1_balance))
          player1_property.append(Prop_name[player1_position])
          print("The current properties that %s owns: %s" % (player1, player1_property))
        elif answerP == "N" or answerP == "n":
            #bidding later
            print(" ")
        else:
          print("Please answer Y/N")
      #checks if player2 owns the property already or not and to pay rent
      elif Prop_name[player1_position] not in player1_property and Prop_name[player1_position] in player2_property:
        print("You landed on another player's property! You have to pay them rent.")
        player1_balance = player1_balance - Properties_rent[player1_position]
        player2_balance = player2_balance + Properties_rent[player1_position]
        print("Your balance is now %s" % (player1_balance))
      else:
        print("You landed on your own property!")
    #lands on railroad
    if player1_position in Railroads :
      if Prop_name[player1_position] not in player1_property and Prop_name[player1_position] not in player2_property:
        answerP = input("Do you want to buy the property? (Y/N)")
        if answerP == "Y" or answerP == "y":
          player1_balance = player1_balance - Properties_price[player1_position]
          print("You have %s dollars remaining" % (player1_balance))
          player1_property.append(Prop_name[player1_position])
          print("The current properties that %s owns: %s" % (player1, player1_property))
        elif answerP == "N" or answerP == "n":
          #bidding later
          print(" ")
        else:
          print("Please answer Y/N")
      elif Prop_name[player1_position] not in player1_property and Prop_name[player1_position] in player2_property:
        print("You landed on another player's railroad! You have to pay them %s."%(Properties_rent[player1_position]))
        #checks if player2 owns all railroads
        if Prop_name[6] in player2_property and Prop_name[16] in player2_property and Prop_name[26] in player2_property and Prop_name[36] in player2_property:
          player1_balance = player1_balance - 200
          player2_balance = player2_balance + 200
          print("Your balance is now %s" % (player1_balance))
          #checks if player2 owns 3 railroads
        elif Prop_name[6] and Prop_name[16] and Prop_name[26] in player2_property or Prop_name[6] and Prop_name[26] and Prop_name[36] in player2_property or Prop_name[6] and Prop_name[16] and Prop_name[36] in player2_property or Prop_name[16] and Prop_name[26] and Prop_name[36] in player2_property:
          player1_balance = player1_balance - 100
          player2_balance = player2_balance + 100
          print("You balance is now %s" % (player1_balance))
          #checks if player2 owns 2 railroads
        elif Prop_name[6] and Prop_name[16] or Prop_name[6] and Prop_name[26] or Prop_name[6] and Prop_name[36] or Prop_name[16] and Prop_name[26] or Prop_name[16] and Prop_name[36] or Prop_name[26] and Prop_name[36] in player2_property:
          player1_balance = player1_balance - 50
          player2_balance = player2_balance + 50
          print("You balance is now %s" % (player1_balance)) 
        elif Prop_name[player1_position] in player2_property:
          player1_balance = player1_balance - 25
          player2_balance = player2_balance + 25
          print("You balance is now %s" % (player1_balance)) 
      else:
        print("You landed on your own property!")
    #checks if player landed in utilities
    if player1_position in Utilities:
      if Prop_name[player1_position] not in player1_property and Prop_name[player1_position] not in player2_property:
        answerP = input("Do you want to buy the property? (Y/N)")
        if answerP == "Y" or answerP == "y":
          player1_balance = player1_balance - Properties_price[player1_position]
          print("You have %s dollars remaining" % (player1_balance))
          player1_property.append(Prop_name[player1_position])
          print("The current properties that %s owns: %s" % (player1, player1_property))
        elif answerP == "N"or answerP == "n":
            #bidding later
          print(" ")
        else:
          print("Please answer Y/N")
      elif Prop_name[player1_position] not in player1_property and Prop_name[player1_position] in player2_property:
        #checks if player 2 owns both
        if Prop_name[13] and Prop_name[29] in player2_property:
          print("You landed on another player's Utility! You have to pay them rent.")
          player1_balance = player1_balance - (dice_roll*10)
          player2_balance = player2_balance + (dice_roll*10)
          print("Your balance is now %s" % (player1_balance))
        #check is player 2 only owns 1
        elif Prop_name[13] in player2_property or Prop_name[29] in player2_property:
          print("You landed on another player's property! You have to pay them rent.")
          player1_balance = player1_balance - (dice_roll*4)
          player2_balance = player2_balance + (dice_roll*4)
          print("Your balance is now %s" % (player1_balance))
        else:
          print("")
      else:
        print("You landed on your own property!")
    #checks if player lands on taxes
    if player1_position in Taxes:
      print("Oh No! You landed at %s" % (Player_position[player1_position]))
      if Player_position[player1_position] == "Income Tax":
        answertax = int(input("Would you like to pay 10% or $200. 10/200"))
        if answertax == 10:
          player1_balance = player1_balance - (player1_balance*0.10)
          print("Your balance is now %s" % (player1_balance))
        elif answertax == 200:
          player1_balance = player1_balance - 200
          print("Your balance is now %s" % (player1_balance))
      elif Player_position[player1_position] == "Luxury Tax":
        player1_balance = player1_balance - 75
        print("Your balance is now %s" % (player1_balance))
    if player1_position == 31:
      print("You landed on go to jail but it is currently not working, for now it is a free space.")
  #player 2 turn
  if player_turn == player2:
    print("The current properties that %s owns: %s" % (player2, player2_property))
    print("%s's balance is %s" % (player2, player2_balance))
    if player2_balance == 0:
      print("You've gone bankrupt, %s wins!!" % (player1))
    new_dice1 = random.choice(dice1)
    new_dice2 = random.choice(dice2)
    print("You rolled a %s and a %s" % (str(new_dice1), str(new_dice2)))
    dice_roll = new_dice1 + new_dice2
    if player2_position + dice_roll > 40:
      player2_position = (player2_position + dice_roll) - 40  
      print("You passed GO! Here's 200 dollars.")
      player2_balance = player2_balance + 200
    else:  
      player2_position = player2_position + dice_roll
    print("You landed on %s" % (str(Player_position[player2_position])))
    if player2_position in Position_Chance or player2_position in Position_CommChest:
      if player2_position == 8 or player2_position == 23 or player2_position == 37:
        print("You landed on Chance!")
        chanceC = random.choice(Chance)
        if chanceC == "Go back three spaces":
          player2_position = player2_position - 3
          print("You are now on %s" % (Player_position[player2_position]))
        if chanceC == "Ride the Reading Railroad":
          player2_position = 6
          print("You are now on %s" % (Player_position[player2_position]))
        if chanceC == "Advance to St.Charles":
          player2_position = 12
          print("You are now on %s" % (Player_position[player2_position]))
        if chanceC == "Pay each player $50":
          player2_balance = player2_balance - 50
          player1_balance = player1_balance + 50
          print("Your balance is now %s" % (player2_balance))
        if chanceC == "Advance to GO collect $200":
          player2_position = 1
          player2_balance = player2_balance + 200
        if chanceC == "Advance to Boardwalk":
          player2_position = 40
          print("You are now on %s" % (Player_position[player2_position]))
        if chanceC == "Collect $150":
          player2_balance = player2_balance + 150
          print("Your balance is now %s" % (player2_balance))
        if chanceC == "Collect $50":
          player2_balance = player2_balance + 50
          print("Your balance is now %s" % (player2_balance))
        if chanceC == "Advance to Illinois Ave":
          player2_position = 25
          print("You are now on %s" % (Player_position[player2_position]))
      if player2_position == 3 or player2_position == 13 or player2_position == 34:
        print("You landed on Community Chest")
        commchestC = random.choice(Community_chest)
        if commchestC == "Collect $200":
          player2_balance = player2_balance + 200
          print("Your balance is now %s" % (player2_balance))
        if commchestC == "Pay $50": 
          player2_balance = player2_balance - 50
          print("Your balance is now %s" % (player2_balance))
        if commchestC == "Collect $50":
          player2_balance = player2_balance + 50
          print("Your balance is now %s" % (player2_balance))
        if commchestC == "Collect $50 from every player":
          player2_balance = player2_balance + 50
          player1_balance = player1_balance - 50
          print("Your balance is now %s" % (player2_balance))
        if commchestC == "Collect $100":
          player2_balance = player2_balance + 100
          print("Your balance is now %s" % (player2_balance))
        if commchestC == "Collect $20":
          player2_balance = player2_balance + 20
          print("Your balance is now %s" % (player2_balance))
        if commchestC == "Collect $10 from each player":
          player2_balance = player2_balance + 10
          player1_balance = player1_balance -10
          print("Your balance is now %s" % (player2_balance))
        if commchestC == "Pay $100":
          player2_balance = player2_balance - 100
          print("Your balance is now %s" % (player2_balance))
        if commchestC == "Pay $150":
          player2_balance = player2_balance - 150
          print("Your balance is now %s" % (player2_balance))
        if commchestC == "Collect $25":
          player2_balance = player2_balance + 25
          print("Your balance is now %s" % (player2_balance))
        if commchestC == "Collect $25":
          player2_balance = player2_balance + 10
          print("Your balance is now %s" % (player2_balance))
    if player2_position in color_properties:
      if Prop_name[player2_position] not in player2_property and Prop_name[player2_position] not in player1_property:
        answerP = input("Do you want to buy the property? (Y/N)")
        if answerP == "Y" or answerP == "y":
          player2_balance = player2_balance - Properties_price[player2_position]
          print("You have %s dollars remaining" % (player2_balance))
          player2_property.append(Prop_name[player2_position])
          print("The current properties that %s owns: %s" % (player2, player2_property))
        elif answerP == "N" or answerP == "n":
            #bidding later
            print(" ")
        else:
          print("Please answer Y/N")
      elif Prop_name[player2_position] not in player2_property and Prop_name[player2_position] in player1_property:
        print("You landed on another player's property! You have to pay them %s."%(Properties_rent[player2_position]))
        player2_balance = player2_balance - Properties_rent[player2_position]
        player1_balance = player1_balance + Properties_rent[player2_position]
        print("Your balance is now %s" % (player2_balance))
      else:
        print("You landed on your own property!")
    if player2_position in Railroads :
      if Prop_name[player2_position] not in player2_property and Prop_name[player2_position] not in player1_property:
        answerP = input("Do you want to buy the property? (Y/N)")
        if answerP == "Y" or answerP == "y":
          player2_balance = player2_balance - Properties_price[player2_position]
          print("You have %s dollars remaining" % (player2_balance))
          player2_property.append(Prop_name[player2_position])
          print("The current properties that %s owns: %s" % (player2, player2_property))
        elif answerP == "N" or answerP == "n":
          #bidding later
          print(" ")
        else:
          print("Please answer Y/N")
      elif Prop_name[player2_position] not in player2_property and Prop_name[player2_position] in player1_property:
        print("You landed on another player's railroad! You have to pay them rent.")
        #checks if player1 owns all railroads
        if Prop_name[6] in player1_property and Prop_name[16] in player1_property and Prop_name[26] in player1_property and Prop_name[36] in player1_property:
          player2_balance = player2_balance - 200
          player1_balance = player1_balance + 200
          print("Your balance is now %s" % (player2_balance))
          #checks if player1 owns 3 railroads
        elif Prop_name[6] and Prop_name[16] and Prop_name[26] in player1_property or Prop_name[6] and Prop_name[26] and Prop_name[36] in player1_property or Prop_name[6] and Prop_name[16] and Prop_name[36] in player1_property or Prop_name[16] and Prop_name[26] and Prop_name[36] in player1_property:
          player2_balance = player2_balance - 100
          player1_balance = player1_balance + 100
          print("You balance is now %s" % (player2_balance))
        #checks if player1 owns 2 railroads
        elif Prop_name[6] and Prop_name[16] or Prop_name[6] and Prop_name[26] or Prop_name[6] and Prop_name[36] or Prop_name[16] and Prop_name[26] or Prop_name[16] and Prop_name[36] or Prop_name[26] and Prop_name[36] in player1_property:
          player2_balance = player2_balance - 50
          player1_balance = player1_balance + 50
          print("You balance is now %s" % (player2_balance)) 
        elif Prop_name[player2_position] in player1_property:
          player2_balance = player2_balance - 25
          player1_balance = player1_balance + 25
          print("You balance is now %s" % (player2_balance)) 
      else:
        print("You landed on your own property!")
    if player2_position in Utilities:
      if Prop_name[player2_position] not in player2_property and Prop_name[player2_position] not in player1_property:
        answerP = input("Do you want to buy the property? (Y/N)")
        if answerP == "Y" or answerP == "y":
          player2_balance = player2_balance - Properties_price[player2_position]
          print("You have %s dollars remaining" % (player2_balance))
          player2_property.append(Prop_name[player2_position])
          print("The current properties that %s owns: %s" % (player2, player2_property))
        elif answerP == "N"  or answerP == "n":
            #bidding later
          print(" ")
        else:
          print("Please answer Y/N")
      elif Prop_name[player2_position] not in player2_property and Prop_name[player2_position] in player1_property:
        if Prop_name[13] and Prop_name[29] in player1_property:
          print("You landed on another player's Utility! You have to pay them rent.")
          player2_balance = player2_balance - (dice_roll*10)
          player1_balance = player1_balance + (dice_roll*10)
          print("Your balance is now %s" % (player2_balance))
        elif Prop_name[13] in player1_property or Prop_name[29] in player1_property:
          print("You landed on another player's property! You have to pay them rent.")
          player2_balance = player2_balance - (dice_roll*4)
          player1_balance = player1_balance + (dice_roll*4)
          print("Your balance is now %s" % (player2_balance))
        else:
          print("")
      else:
        print("You landed on your own property!")
    if player2_position in Taxes:
      print("Oh No! You landed %s" % (Player_position[player2_position]))
      if Player_position[player2_position] == "Income Tax":
        answertax = int(input("Would you like to pay 10% or $200. 10/200"))
        if answertax == 10:
          player2_balance = player2_balance - (player2_balance*0.10)
          print("Your balance is now %s" % (player2_balance))
        elif answertax == 200:
          player2_balance = player2_balance - 200
          print("Your balance is now %s" % (player2_balance))
      elif Player_position[player2_position] == "Luxury Tax":
        player2_balance = player2_balance - 75
        print("Your balance is now %s" % (player2_balance))
    if player2_position == 31:
      print("You landed on go to jail but it is currently not working, for now it is a free space.")