Skip to content

Instantly share code, notes, and snippets.

@uberscientist
Last active December 19, 2018 06:34
Show Gist options
  • Save uberscientist/16e53ba9adcd010d49fa19fdd3a015ea to your computer and use it in GitHub Desktop.
Save uberscientist/16e53ba9adcd010d49fa19fdd3a015ea to your computer and use it in GitHub Desktop.
Monte Carlo on Maplestory2 Casino Game
import random
import math
import matplotlib.pyplot as plt
def getResults(num_groups=4, num_players=9):
players = ['Player {i}'.format(i=i) for i in range(1, num_players)]
players += ['You', 'Casino']
random.shuffle(players)
group_size = math.ceil(len(players) / num_groups)
random_groups = []
casino_group = None
player_group = None
winning_groups = []
for i in range(0, num_groups):
group = players[group_size * i: (group_size * i) + group_size]
if 'Casino' in group:
casino_group = i
if 'You' in group:
player_group = i
if casino_group != None and i > casino_group:
winning_groups.append(i)
random_groups.append(group)
results = {
'casino_group': casino_group,
'player_group': player_group,
'player_win': player_group > casino_group,
'random_groups': random_groups,
'winning_groups': winning_groups
}
return results
def runTrial(num_trials=150, bankroll=10000):
roll_history = []
for i in range(0, num_trials):
bet = round(0.2 * bankroll)
results = getResults(num_groups=4, num_players=8)
bankroll -= bet
if results['player_win']:
bankroll += bet * 2
roll_history.append(bankroll)
return roll_history
num_universe_simulations = 40
player_histories = {}
for i in range(0, num_universe_simulations):
plt.plot(runTrial())
plt.show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment