Skip to main content

A package for exploring roulette strategies.

Project description

pyroulette

Explanation

  • A Player has a Strategy which is comprised of a list of Placements, which represent a collective Bet.

  • The player will stick to their strategy.

  • Winnings are re-invested (todo: allow specifying player's pyschology, e.g. pocket winnings of certain proportion)

  • A player's placement cannot be too complicated (max is 10)

  • A Strategy is formed at random based on exhausting the strategy budget, which is determined by considering the player's total budget and the minimum number of games they desire to play.

    • It is possible to have some money left over (either due to reaching the maximum number of placements or not having enough money to place a bet with the remaining available chips), meaning the strategy budget is less than the cost to play the strategy.
    • When players cannot play their strategy anymore, they leave the game, meaning they can end the simulation with some remaining money (e.g. $100 to play a $40 strategy that you lose twice in a row will leave you with $20 remaining).
  • When using generate_players, all players will have the same number of minimum games and budget.

how to use

pip install pyroulette
from pyroulette import generate_players, play_roulette

players = generate_players(
    num_players=50,
    min_num_games=min_games,
    total_budget=100
)

players = play_roulette(
    players=players,
    games=1000,
)

print("Results:")
for p in sorted(players, reverse=True):
    print("\n", p)

print("Statistics")
# get the wallet values for all players as a list
wallets = [player.wallet for player in players]

# calculate some statistics
avg_wallet = sum(wallets) / len(wallets)
median_wallet = sorted(wallets)[len(wallets) // 2]

# calculate winnings
winnings = [p.wallet - p.budget for p in players]

num_losers = len([w for w in winnings if w <= 0])
num_winners = len([w for w in winnings if w > 0])
num_bankrupt = len([l for l in wallets if l == 0])

# print the results
print(f"Average wallet value: {avg_wallet}\n")
print(f"Median wallet value: {median_wallet}\n")
print(f"Number of players who lost money: {num_losers}, proportion: {num_losers / len(players):.2f}")
print(f"Number of players who went bankrupt: {num_bankrupt}, proportion: {num_bankrupt / len(players):.2f}")
print()
print(f"Number of players who won more than they started with: {num_winners}, proportion: {num_winners / len(players):.2f}")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyroulette-0.0.5.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

pyroulette-0.0.5-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file pyroulette-0.0.5.tar.gz.

File metadata

  • Download URL: pyroulette-0.0.5.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.7

File hashes

Hashes for pyroulette-0.0.5.tar.gz
Algorithm Hash digest
SHA256 d296868b457bd343ae76db4efa8e2de8b8863249284f978b63a0a4220c9a2215
MD5 839d400257f69e41f97c431c1f128d05
BLAKE2b-256 52059eabb0ac6e826b44184f9869237b9868bd31c8ea6219d9b38f62c4ea37af

See more details on using hashes here.

File details

Details for the file pyroulette-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: pyroulette-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.7

File hashes

Hashes for pyroulette-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 343675dee42b0a81f0eedb85735dd18fb341aa4eca1bcdcf3234ed69198855f9
MD5 66ed67564cccfff3ec8fd57fe8e1382d
BLAKE2b-256 847027c8eabeaf7c0679e0aebfd7952694bcc40f28776e133fedbb4232c5ac72

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page