Skip to main content

Classic board game of Nard (Backgammon) for two players.

Project description

Nard Game (Backgammon)

Classic board game of Nard (Backgammon) for two players.

Common rules

  • Players: the game is played by two players
  • Tables board of 24 points or spaces; 2 dice; 30 pieces (15 per player)
  • Both players throw a die to decide who plays first; the one with the higher die leads off
  • Bearing off:
    • Begins once all 15 pieces are in the home quadrant
    • One piece is removed from the point corresponding to the roll of each die
    • If there are no piece on the point corresponding to a die roll, the player must make a legal move with a piece further away
    • If that is not possible, a piece is borne off from the furthest point that is occupied.

Usage

Playing

from nard_backgammon import (
    Nard, 
    NardState, 
    Player, 
    get_random_move, 
    board_to_str)


# If the first_player is None, then the starting
# player is found on the first roll `first_roll()`
game = Nard.new(first_roll_player=Player.WHITE)

while True:

    match game.state:
        # If first_roll_player is None then 
        # NardState is will be FIRST_ROLL at the init
        case NardState.FIRST_ROLL:
            game.first_roll()

        case NardState.PLAYING:
            # get valid moves for active player
            moves = game.get_valid_moves()
            if not moves:
                game.skip()
                continue
            move = get_random_move(moves)
            game.play_move(move)
            print(board_to_str(game))

        case NardState.ENDED:
            print(f'Winner: {game.outcome.winner}')
            break # End game, exit the loop

Output

...
            ||12-11-10-9--8--7-||6--5--4--3--2--1-||
            ||o  o  x  x     x ||                 ||
            ||2     2  7     2 ||                 ||
            ||                 ||                 || White off: 0
            ||                 ||                 || Black off: 4
            ||                 ||                 || Dices: (4, 3)
            ||               2 ||      4  3       ||
            ||            o  o ||   o  o  o  o    ||
            ||13-14-15-16-17-18||19-20-21-22-23-24||
...
Winner: Player.WHITE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nard_backgammon-0.1.0.tar.gz (7.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page