Skip to main content

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}")

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

If you're not sure about the file name format, learn more about wheel file names.

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.

Release history Release notifications | RSS feed

This release

0.0.5 This release

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page