MonopolyLedger/MonoLedger.py
2023-07-02 23:04:55 -06:00

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()