{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "# python-ataxx: A Python library for the board game Ataxx\n\n## About\npython-ataxx is written in Python 3 and supports basic features such as move generation, move validation, engine communication, and board printing.\n\n## Usage\n```Python3\n>>> import ataxx\n>>> board = ataxx.Board()\n>>> board.makemove(ataxx.Move.from_san(\"g2\"))\n>>> board.makemove(ataxx.Move.from_san(\"a7a5\"))\n>>> board.get_fen()\n'6o/7/o6/7/7/6x/o5x x 1 2'\n```\n\n## Features\n* Printing the board\n```Python3\n>>> board = ataxx.Board()\n>>> print(board)\n a b c d e f g\n \u2554\u2550\u2566\u2550\u2566\u2550\u2566\u2550\u2566\u2550\u2566\u2550\u2566\u2550\u2557\n7\u2551X\u2551 \u2551 \u2551 \u2551 \u2551 \u2551O\u25517\n \u2560\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u2563\n6\u2551 \u2551 \u2551 \u2551 \u2551 \u2551 \u2551 \u25516\n \u2560\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u2563\n5\u2551 \u2551 \u2551 \u2551 \u2551 \u2551 \u2551 \u25515\n \u2560\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u2563\n4\u2551 \u2551 \u2551 \u2551 \u2551 \u2551 \u2551 \u25514\n \u2560\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u2563\n3\u2551 \u2551 \u2551 \u2551 \u2551 \u2551 \u2551 \u25513\n \u2560\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u2563\n2\u2551 \u2551 \u2551 \u2551 \u2551 \u2551 \u2551 \u25512\n \u2560\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u256c\u2550\u2563\n1\u2551O\u2551 \u2551 \u2551 \u2551 \u2551 \u2551X\u25511\n \u255a\u2550\u2569\u2550\u2569\u2550\u2569\u2550\u2569\u2550\u2569\u2550\u2569\u2550\u255d\n a b c d e f g\nTurn: X\n```\n\n* FEN parsing\n```Python3\n>>> board = ataxx.Board(\"startpos\")\n>>> board = ataxx.Board(\"x5o/7/2-1-2/7/2-1-2/7/o5x x\")\n```\n\n* Result detection\n```Python3\n>>> board.gameover()\nTrue\n>>> board.fifty_move_draw()\nFalse\n>>> board.max_length_draw()\nFalse\n```\n\n* Communication with UAI compatible engines\n```Python3\n>>> import ataxx.uai\n>>> engine = ataxx.uai.Engine(\"tiktaxx\")\n>>> engine.uai()\n>>> engine.isready()\n>>> engine.name\n'Tiktaxx'\n>>> board = ataxx.Board()\n>>> engine.position(board)\n>>> bestmove, ponder = engine.go(movetime=1000)\n>>> engine.go(movetime=1000)\n('a7b5', None)\n>>> engine.quit()\n```\n\n* Simple players\n```Python3\n>>> import ataxx.players\n>>> board = ataxx.Board()\n>>> move = ataxx.players.greedy(board)\n>>> print(move)\nf2\n```\n\n* PGN writing\n```Python3\n>>> import ataxx.pgn\n>>> board = ataxx.Board()\n>>> board.makemove(ataxx.Move.from_san(\"a7c5\"))\n>>> board.makemove(ataxx.Move.from_san(\"b2\"))\n>>> game = ataxx.pgn.Game()\n>>> game.from_board(board)\n>>> print(game)\n[Event \"Example\"]\n[Result \"*\"]\n\n1. a7c5 b2 *\n```\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kz04px/python-ataxx", "keywords": "ataxx", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ataxx", "package_url": "https://pypi.org/project/ataxx/", "platform": "", "project_url": "https://pypi.org/project/ataxx/", "project_urls": { "Homepage": "https://github.com/kz04px/python-ataxx" }, "release_url": "https://pypi.org/project/ataxx/1.1.0/", "requires_dist": [ "Pillow ; extra == 'draw'" ], "requires_python": "", "summary": "python-ataxx is written in Python 3 and supports basic features such as move generation, move validation, engine communication, and board printing.", "version": "1.1.0" }, "last_serial": 4852591, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "1ee4e2caf79d541ae8c754e218620361", "sha256": "081a1deb0a50e9396272dac1c8149301556aea8d5944a1a47e4e7da0fdff61c5" }, "downloads": -1, "filename": "ataxx-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1ee4e2caf79d541ae8c754e218620361", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10673, "upload_time": "2018-12-16T20:40:26", "url": "https://files.pythonhosted.org/packages/74/bc/603355d62fe2c1464df0020fdd7ba59e2896c488149fc239abc47f6c814e/ataxx-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d2e58f7b90453f8c97265f7076c4ba6", "sha256": "86274e6e232b7ca78069124f3d578e7d1f55c8403e37f118ac3197dce30b19af" }, "downloads": -1, "filename": "ataxx-1.0.tar.gz", "has_sig": false, "md5_digest": "0d2e58f7b90453f8c97265f7076c4ba6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9272, "upload_time": "2018-12-16T20:40:28", "url": "https://files.pythonhosted.org/packages/15/2a/8ecc14f40ef9f58ca756cc79a5f0c90f7a976c4bf2180ce09443d04cf0dd/ataxx-1.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "c8557b86200c10ae10267bbf5cc8254d", "sha256": "f097e30821929ef3d15857061755869b3242cf0eba649b47553890895c0cb2b4" }, "downloads": -1, "filename": "ataxx-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c8557b86200c10ae10267bbf5cc8254d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11103, "upload_time": "2019-02-22T01:20:04", "url": "https://files.pythonhosted.org/packages/a9/4a/7cab03081fe3faa7e49bc160e5fd8978bb1f7dbd67e049b8f0be2dacaa11/ataxx-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbf104541b0ec6be614fc6643f74c96b", "sha256": "436cd65cb50edc56c532746b07679eca2fbdb0d6242f1cceaaa350fa76e253f9" }, "downloads": -1, "filename": "ataxx-1.1.0.tar.gz", "has_sig": false, "md5_digest": "dbf104541b0ec6be614fc6643f74c96b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9710, "upload_time": "2019-02-22T01:20:06", "url": "https://files.pythonhosted.org/packages/c2/8e/c955557db4eb0429a6deba3e47524c1cf9aac012fb42124698c046980b6b/ataxx-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c8557b86200c10ae10267bbf5cc8254d", "sha256": "f097e30821929ef3d15857061755869b3242cf0eba649b47553890895c0cb2b4" }, "downloads": -1, "filename": "ataxx-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c8557b86200c10ae10267bbf5cc8254d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11103, "upload_time": "2019-02-22T01:20:04", "url": "https://files.pythonhosted.org/packages/a9/4a/7cab03081fe3faa7e49bc160e5fd8978bb1f7dbd67e049b8f0be2dacaa11/ataxx-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbf104541b0ec6be614fc6643f74c96b", "sha256": "436cd65cb50edc56c532746b07679eca2fbdb0d6242f1cceaaa350fa76e253f9" }, "downloads": -1, "filename": "ataxx-1.1.0.tar.gz", "has_sig": false, "md5_digest": "dbf104541b0ec6be614fc6643f74c96b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9710, "upload_time": "2019-02-22T01:20:06", "url": "https://files.pythonhosted.org/packages/c2/8e/c955557db4eb0429a6deba3e47524c1cf9aac012fb42124698c046980b6b/ataxx-1.1.0.tar.gz" } ] }