I'm trying to create a Martingale betting simulator. My global "running_profit" variable is supposed to be indirectly updated by the "change_running_total" function. The running_total variable is being updated properly, but the running_profit variable, which is affected by the running_total, is not updating.
import random
round_n = 0
bet = 25
starting_funds = 5000
running_total = starting_funds
running_profit = running_total - starting_funds
goal_profit = 5000
wins = 0
losses = 0
rng_v = 0.00
def rng():
"""Generates random number"""
global rng_v
rng_v = random.random()
def winloss_generator():
"""Generates win/loss condition"""
global rng_v
if rng_v <= .49:
return 'win'
else:
return 'loss'
def increase_winloss():
"""Increases wins or losses variable based on winloss_generator output"""
global wins
global losses
if winloss_generator() == 'win':
wins += 1
return 'win'
elif winloss_generator() == 'loss':
losses += 1
return 'loss'
else:
print('error')
def increase_round():
"""Increases round number by 1"""
global round_n
round_n += 1
print('round: ', round_n)
def change_running_total():
"""Increases or decreases running_total based on winloss_generator"""
global running_total
if winloss_generator() == 'win':
running_total += bet
elif winloss_generator() == 'loss':
running_total -= bet
else:
print('error')
def print_current_record():
"""Prints current win/loss record to screen"""
print('Current Record: ', wins, 'wins, ', losses, 'losses')
def print_winloss():
"""Prints win/loss condition to screen"""
print(winloss_generator(), 'print_winloss'.upper())
def print_profit():
"""Print running profit to screen"""
print(running_profit, 'print_profit (variable)'.upper())
print(running_total - starting_funds, 'print_profit (calculated)'.upper())
def return_current_funds():
"""Returns running total of funds"""
global running_total
return running_total
for x in range(5):
increase_round()
rng()
print(rng_v, 'rng_v'.upper())
print(winloss_generator(), 'winloss_generator'.upper())
print(increase_winloss(), 'increase winloss'.upper())
print_winloss()
change_running_total()
print(running_total, 'running total'.upper())
print_profit()
print()
print_current_record()