diff --git a/Makefile b/Makefile index fae6f53..57df748 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -build: clean +build: clean lint python -m build --sdist --wheel -n clean: @@ -8,8 +8,11 @@ publish: build twine upload dist/* lint: + isort --profile black . black . - isort . flake8 --max-line-length=88 --extend-ignore=E203,W503 pyroulette/ -.PHONY: build publish clean lint \ No newline at end of file +test: # TODO: replace with real tests + python app.py && python strategy.py + +.PHONY: build publish clean lint test \ No newline at end of file diff --git a/app.py b/app.py index 9885ef5..bd41191 100644 --- a/app.py +++ b/app.py @@ -1,8 +1,19 @@ from random import choice, randint, seed -from pyroulette import (FEASIBLE_MOVES, Bet, Placement, Player, Strategy, - expected, generate_players, init_spread, interpret_bet, - place_bet, play_roulette) +from pyroulette import ( + FEASIBLE_MOVES, + Bet, + Placement, + Player, + Strategy, + expected, + generate_players, + init_spread, + interpret_bet, + place_bet, + play_roulette, + simulate_random_strategy, +) if __name__ == "__main__": @@ -27,51 +38,56 @@ if __name__ == "__main__": 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)) + print("unknown") + bet = 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 = Bet() + bet = place_bet(bet, 21, 40) + # bet = place_bet(bet, 1, 1) + print(expected(bet)) + print() + print("stupid") + bet = 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))) + 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) - # ] + placements = [ + Placement(randint(1, 10), 1, choice(list(FEASIBLE_MOVES))) for _ in range(10) + ] - # strategy = Strategy.generate_random(50) + strategy = Strategy.generate_random(50) - # strategy.print_all() + 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])) + print("SUM") + print(sum([p.value for p in placements])) - # # place the bets - # bet = Strategy.place_bets(placements) + # place the bets + bet = Strategy.place_bets(placements) - # print(bet) + print(bet) # set a random seed seed(42) diff --git a/pyroulette/roulette.py b/pyroulette/roulette.py index ff71449..446816f 100644 --- a/pyroulette/roulette.py +++ b/pyroulette/roulette.py @@ -440,12 +440,14 @@ class Player: self.wallet: float = self.budget def __repr__(self) -> str: + _nl = "\n\t" # custom newline character return ( f"Player(id={self.id}, budget={self.budget}, wallet={self.wallet}," - + f"strategy={sorted(self.strategy.placements)}," - + f"strategy_cost={self.strategy.value}," - + f"strategy_budget={self.strategy.budget}," - + f"num_placements={len(self.strategy.placements)}" + + f"num_placements={len(self.strategy.placements)}, " + + f"strategy_budget={self.strategy.budget}, " + + f"strategy_cost={self.strategy.value}" + + f"\nstrategy:{_nl}{_nl.join(map(str, sorted(self.strategy.placements)))}" + + "\n)" ) def __lt__(self, other): diff --git a/setup.py b/setup.py index 43b5732..87326d7 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ with open(BASEDIR.joinpath("README.md"), "r") as fp: setup( name="pyroulette", - version="0.0.1rc2", + version="0.0.1rc3", description="A package for exploring roulette strategies.", long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown",