A package for exploring roulette strategies.
Project description
pyroulette
Explanation
-
A
Playerhas aStrategywhich is comprised of a list ofPlacements, which represent a collectiveBet. -
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
Strategyis 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.
$100to play a$40strategy that you lose twice in a row will leave you with$20remaining).
-
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d296868b457bd343ae76db4efa8e2de8b8863249284f978b63a0a4220c9a2215
|
|
| MD5 |
839d400257f69e41f97c431c1f128d05
|
|
| BLAKE2b-256 |
52059eabb0ac6e826b44184f9869237b9868bd31c8ea6219d9b38f62c4ea37af
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
343675dee42b0a81f0eedb85735dd18fb341aa4eca1bcdcf3234ed69198855f9
|
|
| MD5 |
66ed67564cccfff3ec8fd57fe8e1382d
|
|
| BLAKE2b-256 |
847027c8eabeaf7c0679e0aebfd7952694bcc40f28776e133fedbb4232c5ac72
|