75 lines
2.3 KiB
Python
75 lines
2.3 KiB
Python
# A ledger and calculator for Monopoly games
|
|
# Enables equal distributions to all (other) players
|
|
# This was the original experiment
|
|
|
|
numPlayers = 0
|
|
accounts = []
|
|
# accounts[0] is the pot, players are after that
|
|
|
|
def printBalances():
|
|
for account in accounts:
|
|
print(account[0] + ": " + str(account[1]))
|
|
|
|
def initialize():
|
|
global numPlayers
|
|
global accounts
|
|
numPlayers = int(input("How many players (>1)? "))
|
|
if numPlayers < 2:
|
|
initialize()
|
|
return
|
|
startingValue = int(input("How much for each player? "))
|
|
accounts.append(["Pot",0])
|
|
while len(accounts) < numPlayers + 1:
|
|
i = len(accounts)
|
|
accounts.append(["Player " + str(i), startingValue])
|
|
print ("Created:\n")
|
|
printBalances()
|
|
print("Let the game begin!\n")
|
|
|
|
def play():
|
|
global accounts
|
|
playing = True
|
|
while playing:
|
|
option = input("[b]alances, [s]end, [q]uit: ")
|
|
if option == "q":
|
|
print("Game over!")
|
|
playing = False
|
|
if option == "b":
|
|
printBalances()
|
|
if option == "s":
|
|
fromAcc = input("From (Choose pot, bank, or 1-" +
|
|
str(numPlayers) + " for players): ")
|
|
toAcc = input("To (Choose pot, bank, 1-" +
|
|
str(numPlayers) +
|
|
" for players, or all): ")
|
|
amount = int((input("Amount (integer): ")))
|
|
#DEBIT
|
|
if fromAcc != "bank":
|
|
if fromAcc == "pot":
|
|
fromAcc = 0
|
|
else:
|
|
fromAcc = int(fromAcc)
|
|
accounts[fromAcc][1] = accounts[fromAcc][1] - amount
|
|
#CREDIT
|
|
if toAcc != "bank":
|
|
if toAcc == "all":
|
|
remainder = amount
|
|
i = 1
|
|
while remainder > 0:
|
|
if i != fromAcc:
|
|
remainder -= 1
|
|
accounts[i][1] += 1
|
|
i += 1
|
|
if i > numPlayers:
|
|
i = 1
|
|
else:
|
|
if toAcc == "pot":
|
|
toAcc = 0
|
|
else:
|
|
toAcc = int(toAcc)
|
|
accounts[toAcc][1] = accounts[toAcc][1] + amount
|
|
printBalances()
|
|
|
|
initialize()
|
|
play()
|