Skip to content

Instantly share code, notes, and snippets.

@eknowles
Created September 10, 2012 11:05
Show Gist options
  • Save eknowles/3690342 to your computer and use it in GitHub Desktop.
Save eknowles/3690342 to your computer and use it in GitHub Desktop.
martingale
import random
####################
# THE RULES
# 1. Play Roulette once a week for 3 hours for a year
# 2. Bring 500
# 3. Play Minimum bet on two tables on red
# 4a. If red continue to play minimum bet
# 4b. If black double bet (continue to double until red)
# 4c. If unable to double bet, reset bet to minimum
# 5. Leave the Casino at 750 in pocket, or after 3 hours
#
# ASSUMPTIONS
# 1. 1 Zero Table (not much happens on a 2 Zero table)
# 2. ~1 spin per table per 2 mins
# 3. You have at least 500 to bring to the table each session.
# 4. Starting Bankroll of 26000
####################
minbet = 5
maxbet = 500
green_number = [0]
red_number = [1, 3, 5, 7, 9, 19, 21, 23, 25, 27, 12, 14, 16, 18, 30, 32, 34, 36]
black_number = [2, 4, 6, 8, 10, 20, 22, 24, 26, 28, 11, 13, 15, 17, 29, 31, 33, 35]
zerogame = [12, 35, 3, 26, 0, 32, 15,]
ndzero = [22,18,29,7,28,12,35,3,26,0,32,15,19,4,21,2,25]
thirdgame = [27,13,36,11,30,8,23,10,5,24,16,33]
allnumbers = [22,18,29,7,28,12,35,3,26,0,32,15,19,4,21,2,25,17,34,6,27,13,36,11,30,8,23,10,5,24,16,33,1,20,14,31,9]
nedspin = [27,13,36,11,30,8,23,10,5,24] #36 and 10
spins = {"Red": 0, "Black": 0, "Zero": 0}
def megaspin(bankroll):
spin_the_wheel = random.randint(0,36)
if spin_the_wheel in nedspin:
bankroll = bankroll + 130
else:
bankroll = bankroll - 50
#print bankroll
return bankroll
def fiddyspin(bankroll, bet):
bankroll = bankroll - bet
spin_the_wheel = random.randint(0,36)
if spin_the_wheel in red_number:
spins["Red"] = spins["Red"]+1
bankroll = bankroll + bet + bet
newbet = minbet
else:
if spin_the_wheel == 0:
spins["Zero"] = spins["Zero"]+1
else:
spins["Black"] = spins["Black"]+1
newbet = bet+bet
#print bankroll
return bankroll, newbet
if __name__ == "__main__":
results = []
long_term_bank_roll = 26000
linehead = "|-----------------------------------------------------------------------"
header = linehead + "\n| Session\tStatus\tAccount\tWallet\tFloat\t\t| Total Profit\n" + linehead
print header
for i in range(0,52):
if long_term_bank_roll < 250:
break
bankroll = 500
long_term_bank_roll = long_term_bank_roll - 500
broke = False
bet1 = minbet
bet2 = minbet
#before betting
nicesession = i
if i < 10:
nicesession = "0" + str(i)
for j in range(0,90):
if bankroll < bet1:
if bankroll < 5:
broke = True
long_term_bank_roll = long_term_bank_roll + bankroll
break
else:
bet1 = 5
if bankroll < bet2:
if bankroll > 5:
bet2 = 5
if bankroll > 750:
long_term_bank_roll = long_term_bank_roll + bankroll
break
#if bankroll > 1500+50 and bet1 < 10:
# bankroll = megaspin(bankroll)
#else:
bankroll, bet1 = fiddyspin(bankroll, bet1)
if bankroll > bet2:
bankroll, bet2 = fiddyspin(bankroll, bet2)
datfloat = bankroll - 500
if datfloat > 0:
datfloat = "+"+str(datfloat)
if broke:
print "| "+str(nicesession)+"\t\tB\t\t" + str(long_term_bank_roll) + "\t"+str(bankroll)+"\t\t"+str(datfloat)+ "\t\t| " + ("%.2f" % (long_term_bank_roll-26000))
results.append(0)
else:
if int(bankroll - 500) < 0:
floatstatus = "L\t"
else:
floatstatus = "PROFIT"
print "| " + str(nicesession) + "\t\t" + str(floatstatus) +"\t" + str(long_term_bank_roll+bankroll - 500) + "\t"+ str(bankroll) + "\t\t" + str(datfloat) + "\t\t| " + ("%.2f" % (long_term_bank_roll-26000))
long_term_bank_roll = long_term_bank_roll + bankroll
results.append(bankroll)
win_rate = 100.00 - (float(results.count(0))/float(52)*100.00)
results = filter (lambda a: a > 500, results)
wins = len(results)
print "\n\n"+linehead+"\n| " + str(wins) + " wins out of 52\n" +linehead
total_not_brokes = 0
for win in results:
total_not_brokes = total_not_brokes + win
avg_winnings = total_not_brokes/wins
total_spins = spins["Red"] + spins["Black"] + spins["Zero"]
red_spins = (float(spins["Red"])/float(total_spins))*100.0
black_spins = (float(spins["Black"])/float(total_spins))*100.0
zero_spins = (float(spins["Zero"])/float(total_spins))*100.0
print "Spins: Red = "+str(red_spins)+" Black = "+str(black_spins)+" Zero = "+str(zero_spins)
print "Not Broke Rate: "+str((float(wins)/52.0)*100.0)+"%"
print "Average Winnings: "+ ("%.2f" % avg_winnings)
if long_term_bank_roll > 500:
print "Account: "+ ("%.2f" % long_term_bank_roll)
if long_term_bank_roll > 26000:
print "Net Profit: "+ ("%.2f" % (long_term_bank_roll-26000))
else:
print "Total Amount Lost: "+("%.2f" % (26000-int(long_term_bank_roll)))
else:
print "COMPLETELY BROKE"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment