Every year my family plays a ≈30-person game of Bunco.
If you’ve never played, the rules are complicated but in practice it basically involves rolling a 3d6 repeatedly, as fast as you can, for about half an hour. There is no strategy involved, only lots of dice rolling. This makes it a great candidate for automation. In addition, because the computer is doing everything, there are lots of additional stats you can keep track of and prizes you can award: streaks of point-scoring rolls, percentage of each team score contributed by each player, etc.
This code targets Python 3.7+. It needs no additional dependencies.
You can download a copy of all the code by visiting https://thenotepad.org/repos/bunco/zip.
To clone this repo you need to have Fossil installed.
$ fossil clone https://thenotepad.org/repos/bunco
For more info on this subject, see How to use Fossil with this repo.
Only console output is supported.
Create a file
players.csv in the same folder containing a single column, a list of player names.Make sure the number of players is divisible by 4 (since you need four players per table). The best way to make up the number is to add the names of your favourite celebrities (make sure you @ them on Twitter about it too).
$ python3.7 >>> import bunco >>> g = bunco.Game("players.csv") >>> g.play_one_round()
The simulator follows the official Bunco rules with the following additional house rules:
- Players sit four to a table, numbered 0 to 3. Players 0 and 2 form Team One, and players 1 and 3 form Team 2.
- Upon the start of a round, the first player to roll at each table is decided randomly.