-
-
Save nicwest/3690606 to your computer and use it in GitHub Desktop.
martingale
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 < 500: | |
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 > 500: | |
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" | |
long_term_bank_roll = long_term_bank_roll + bankroll | |
print "| " + str(nicesession) + "\t\t" + str(floatstatus) + "\t" + str(long_term_bank_roll) + "\t" + str(bankroll) + "\t\t" + str(datfloat) + "\t\t| " + ("%.2f" % (long_term_bank_roll - 26000)) | |
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