# Bunco Simulator

Every year my family plays a ≈30-person game of Bunco. 

If you’ve never played, [the rules](http://worldbunco.com/rules.html) 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.

## Installation

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](https://thenotepad.org/repos/bunco/wiki?name=How+to+use+Fossil+with+this+repo).

## Usage

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()

## Gameplay

The simulator follows [the official Bunco rules](http://worldbunco.com/rules.html) 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.

