119 lines
3.2 KiB
Python
119 lines
3.2 KiB
Python
from roulette import (
|
|
init_bet,
|
|
place_bet,
|
|
interpret_bet,
|
|
generate_players,
|
|
simulate_games,
|
|
Player,
|
|
Strategy,
|
|
Placement,
|
|
FEASIBLE_MOVES,
|
|
)
|
|
from random import choice, randint
|
|
|
|
if __name__ == "__main__":
|
|
|
|
bet = init_bet()
|
|
# bet = place_bet(bet, 21, 20)
|
|
print(bet[21])
|
|
# bet = interpret_bet("red", 36, bet)
|
|
# bet = interpret_bet("25-36", 1, bet)
|
|
# bet = interpret_bet("street-1", 3, bet)
|
|
# bet = interpret_bet("street-10", 3, bet)
|
|
# bet = interpret_bet("col-1", 12, bet)
|
|
|
|
# james bond
|
|
bet = place_bet(bet, 0, 1)
|
|
for n in range(13, 19):
|
|
bet = place_bet(bet, n, 5)
|
|
bet = interpret_bet("19-36", 14, bet)
|
|
|
|
# print(bet[21])
|
|
from statistics import stdev, mean
|
|
|
|
def expected(bet) -> float:
|
|
bets = list(bet.values())
|
|
cond_bets = filter(lambda x: x > 0, bets)
|
|
amt = sum(bets)
|
|
payout = amt * 36 / 38
|
|
print(
|
|
f"bet: {amt:.2f}, expected: {payout:.2f}: {payout/amt:2.4f} with std {stdev(bets*36)} mean win of {36*mean(cond_bets)} {sum(filter(lambda x: x > 0, bets))}/38 times."
|
|
)
|
|
return payout
|
|
|
|
print("bond")
|
|
print(bet)
|
|
print(expected(bet))
|
|
print()
|
|
print("unknown")
|
|
bet = init_bet()
|
|
bet = interpret_bet("1-12", 15, bet)
|
|
bet = interpret_bet("13-24", 15, bet)
|
|
bet = interpret_bet("corner-26-27-29-30", 5, bet)
|
|
bet = interpret_bet("corner-32-33-35-36", 5, bet)
|
|
print(bet)
|
|
print(expected(bet))
|
|
print()
|
|
print("singles")
|
|
bet = init_bet()
|
|
bet = place_bet(bet, 21, 40)
|
|
# bet = place_bet(bet, 1, 1)
|
|
print(expected(bet))
|
|
print()
|
|
print("stupid")
|
|
bet = init_bet()
|
|
bet = interpret_bet("odd", 18, bet)
|
|
bet = interpret_bet("even", 18, bet)
|
|
# bet = place_bet(bet, -1, 1)
|
|
# bet = place_bet(bet, 0, 1)
|
|
print(expected(bet))
|
|
|
|
# min_games = randint(1, 10)
|
|
# print(min_games, Player(200, simulate_random_strategy(min_num_games=min_games, total_budget=200)))
|
|
# create a list of random Placements
|
|
|
|
placements = [
|
|
Placement(randint(1, 10), 1, choice(list(FEASIBLE_MOVES))) for _ in range(10)
|
|
]
|
|
|
|
# strategy = Strategy.generate_random(50)
|
|
|
|
# strategy.print_all()
|
|
|
|
# define the minimum number of games that you want players to play
|
|
|
|
# print the total sum of all the placements
|
|
# print("SUM")
|
|
# print(sum([p.value for p in placements]))
|
|
|
|
# # place the bets
|
|
# bet = place_bets(placements)
|
|
|
|
# print(bet)
|
|
|
|
# generate players and print them out
|
|
players = generate_players(num_players=3, min_num_games=4, total_budget=200)
|
|
players[0] = Player(
|
|
budget=200.0,
|
|
strategy=Strategy(
|
|
budget=50,
|
|
placements=[
|
|
Placement(num=2, amt=5, on="triple-00"),
|
|
Placement(num=1, amt=10, on="col-1"),
|
|
Placement(num=60, amt=0.25, on="corner-23-24-26-27"),
|
|
Placement(num=10, amt=1, on="14"),
|
|
Placement(num=1, amt=5, on="street-2"),
|
|
],
|
|
),
|
|
)
|
|
for p in players:
|
|
print(p, "\n")
|
|
|
|
print("======================")
|
|
print("SIMULATING GAMES")
|
|
# simulate 10 games
|
|
players = simulate_games(players, num_games=100)
|
|
|
|
for p in players:
|
|
print(p, "\n")
|