Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

python-ataxx is written in Python 3 and supports basic features such as move generation, move validation, engine communication, and board printing.

Project description

python-ataxx: A Python library for the board game Ataxx

About

python-ataxx is written in Python 3 and supports basic features such as move generation, move validation, engine communication, and board printing. The API and rules for the game are still subject to change, be careful when updating.

Tests

Run the following command from the root project directory

python -m unittest discover

Usage

>>> import ataxx
>>> board = ataxx.Board()
>>> board.makemove(ataxx.Move.from_san("g2"))
>>> board.makemove(ataxx.Move.from_san("a7a5"))
>>> board.get_fen()
'6o/7/o6/7/7/6x/o5x x 1 2'

Features

  • Printing the board
>>> board = ataxx.Board()
>>> print(board)
  a b c d e f g
 ╔═╦═╦═╦═╦═╦═╦═╗
7X     O7
 ╠═╬═╬═╬═╬═╬═╬═╣
6       6
 ╠═╬═╬═╬═╬═╬═╬═╣
5       5
 ╠═╬═╬═╬═╬═╬═╬═╣
4       4
 ╠═╬═╬═╬═╬═╬═╬═╣
3       3
 ╠═╬═╬═╬═╬═╬═╬═╣
2       2
 ╠═╬═╬═╬═╬═╬═╬═╣
1O     X1
 ╚═╩═╩═╩═╩═╩═╩═╝
  a b c d e f g
Turn: X
  • FEN parsing
>>> board = ataxx.Board("startpos")
>>> board = ataxx.Board("x5o/7/2-1-2/7/2-1-2/7/o5x x 0 1")
  • Result detection
>>> board.gameover()
True
>>> board.fifty_move_draw()
False
>>> board.max_length_draw()
False
  • Communication with UAI compatible engines
>>> import ataxx.uai
>>> engine = ataxx.uai.Engine("tiktaxx")
>>> engine.uai()
>>> engine.isready()
>>> engine.name
'Tiktaxx'
>>> board = ataxx.Board()
>>> engine.position(board)
>>> bestmove, ponder = engine.go(movetime=1000)
>>> engine.go(movetime=1000)
('a7b5', None)
>>> engine.quit()
  • Simple players
>>> import ataxx.players
>>> board = ataxx.Board()
>>> move = ataxx.players.greedy(board)
>>> print(move)
f2
  • PGN writing
>>> import ataxx.pgn
>>> board = ataxx.Board()
>>> board.makemove(ataxx.Move.from_san("a7c5"))
>>> board.makemove(ataxx.Move.from_san("b2"))
>>> game = ataxx.pgn.Game()
>>> game.from_board(board)
>>> print(game)
[Event "Example"]
[Result "*"]

1. a7c5 b2 *

Project details


Download files

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

Files for ataxx, version 2.0.0
Filename, size File type Python version Upload date Hashes
Filename, size ataxx-2.0.0-py3-none-any.whl (12.7 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size ataxx-2.0.0.tar.gz (11.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page