{ "info": { "author": "John Mecham", "author_email": "jon.mecham@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Games/Entertainment :: Board Games" ], "description": "pykhet: a library for the board game khet\r\n=========================================\r\n\r\n.. image:: https://travis-ci.org/TheWiseLion/pykhet.svg?branch=master\r\n :target: https://travis-ci.org/TheWiseLion/pykhet.svg?branch=master\r\n\r\n\r\nIntroduction\r\n------------\r\n\r\nThe Khet board game logic and structures implemented in python. Also exposes adversarial search based algorithms.\r\n\r\n.. code-block:: python\r\n\r\n from pykhet.components.types import TeamColor\r\n from pykhet.games.game_types import ClassicGame\r\n import random\r\n from pykhet.solvers.minmax import MinmaxSolver\r\n\r\n # Create a game with classic piece placement\r\n game = ClassicGame()\r\n\r\n # Get all valid silver moves\r\n silver_moves = game.get_available_moves(TeamColor.silver)\r\n\r\n # Randomly Play One\r\n game.apply_move(random.choice(silver_moves))\r\n\r\n # Finish the turn by applying the laser\r\n game.apply_laser(TeamColor.silver)\r\n\r\n # Use adversarial search to pick a move\r\n solver = MinmaxSolver()\r\n move = solver.get_move(game, TeamColor.red)\r\n game.apply_move(move)\r\n game.apply_laser(TeamColor.red)\r\n\r\n\r\nSerialization\r\n-------------\r\nThere is ample support to serializing the state of objects as dictionaries. Useful for easy storage as json.\r\n\r\n.. code-block:: python\r\n\r\n from pykhet.components.types import TeamColor, Piece\r\n from pykhet.games.game_types import ClassicGame\r\n import random\r\n from pykhet.solvers.minmax import MinmaxSolver\r\n\r\n # Create a game with classic piece placement\r\n game = ClassicGame()\r\n\r\n # Serialize the board (list of serialized piece positions, orientations, and colors)\r\n squares = game.to_serialized_squares()\r\n\r\n # Deserialize the board\r\n Game.from_serialized_squares(squares)\r\n\r\n # Serialize a pieces\r\n p1 = Piece(PieceType.scarab, TeamColor.silver, Orientation.down).to_dictionary()\r\n # Deserialize a piece\r\n same_piece = Piece.from_dictionary(p1)\r\n\r\n\r\nBoard Layout\r\n------------\r\n\r\nThe khet board and piece layout is represented below:\r\n\r\n.. image:: https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/board-khet.png\r\n :target: https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/board-khet.png\r\n\r\nAdversarial Search\r\n------------------\r\n\r\nProvided is a very basic adversarial search algorithm that works with a low number of iterations.\r\n\r\n.. image:: https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/Iter1.png\r\n :target: https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/Iter1.png\r\n\r\n.. image:: https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/Iter2.png\r\n :target: https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/Iter2.png\r\n\r\n.. image:: https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/Iter3.png\r\n :target: https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/Iter3.png\r\n\r\n.. image:: https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/Iter4.png\r\n :target: https://raw.githubusercontent.com/TheWiseLion/pykhet/master/docs/Iter4.png", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/TheWiseLion/pykhet/tarball/0.18", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/TheWiseLion/pykhet", "keywords": "khet,boardgame,khet2.0,laser-chess,ai", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "pykhet", "package_url": "https://pypi.org/project/pykhet/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pykhet/", "project_urls": { "Download": "https://github.com/TheWiseLion/pykhet/tarball/0.18", "Homepage": "https://github.com/TheWiseLion/pykhet" }, "release_url": "https://pypi.org/project/pykhet/0.18/", "requires_dist": null, "requires_python": null, "summary": "A general library for the board game khet", "version": "0.18" }, "last_serial": 2664934, "releases": { "0.11": [ { "comment_text": "", "digests": { "md5": "7e1687ebf1dfee05dda62fc94c8b513e", "sha256": "d9a08894e809a8ccf29c3be751dc0d30fa39a90c3ab057b4a4d0ad814f4e1fea" }, "downloads": -1, "filename": "pykhet-0.11.tar.gz", "has_sig": false, "md5_digest": "7e1687ebf1dfee05dda62fc94c8b513e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1765, "upload_time": "2017-01-15T08:02:14", "url": "https://files.pythonhosted.org/packages/53/19/ea6e34e6748ac61759455b541bdf490682c3369c205a50a1aae9f6b29a28/pykhet-0.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "3ff7b76ab787feff05b71f10a1d3abd9", "sha256": "57b064103e2bd1046eabffb160b77d5543183c3a8d82878391a969ec04f62db1" }, "downloads": -1, "filename": "pykhet-0.12.tar.gz", "has_sig": false, "md5_digest": "3ff7b76ab787feff05b71f10a1d3abd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8516, "upload_time": "2017-01-28T06:00:45", "url": "https://files.pythonhosted.org/packages/cd/37/6e0d7e34535c100df60f4740b505273ecffd2cb0a9e0252d75b3876f52b6/pykhet-0.12.tar.gz" } ], "0.14": [ { "comment_text": "", "digests": { "md5": "615ddc6b6804041e3838d6f8beb96c56", "sha256": "bf0ce335afec8663b22aa6da4de426b978c4b1f542cf620e370dc29d9832ce28" }, "downloads": -1, "filename": "pykhet-0.14.tar.gz", "has_sig": false, "md5_digest": "615ddc6b6804041e3838d6f8beb96c56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11082, "upload_time": "2017-02-17T09:50:01", "url": "https://files.pythonhosted.org/packages/b0/ac/ea250d2ce25c6bd29d66b606f544ec4a3fa2b5a2985d6e0729897aaeaf03/pykhet-0.14.tar.gz" } ], "0.15": [ { "comment_text": "", "digests": { "md5": "971495fd72fbca26efacd130458b8363", "sha256": "aaa96fefdb7990de9a9c1c05a1e2add80139e4fc995e64651b60f46cd0cda02a" }, "downloads": -1, "filename": "pykhet-0.15.tar.gz", "has_sig": false, "md5_digest": "971495fd72fbca26efacd130458b8363", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11096, "upload_time": "2017-02-17T10:03:59", "url": "https://files.pythonhosted.org/packages/17/e1/a7fe24e58a6fa80947a80fb5e90148b63004527618d636cd11d9f20fce04/pykhet-0.15.tar.gz" } ], "0.16": [ { "comment_text": "", "digests": { "md5": "165410f96dbcef7265eca105bd5c70a1", "sha256": "98af1bb211ba28c69496845ed6d693cb470c6c8f94e23986573743e9df21661a" }, "downloads": -1, "filename": "pykhet-0.16.tar.gz", "has_sig": false, "md5_digest": "165410f96dbcef7265eca105bd5c70a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11111, "upload_time": "2017-02-17T10:21:27", "url": "https://files.pythonhosted.org/packages/31/9f/cc884a4c6ddef4af77f31f423920267597ccf9ede8f40f8e1cb4ddea3d66/pykhet-0.16.tar.gz" } ], "0.17": [ { "comment_text": "", "digests": { "md5": "7bda549cbc9f8a81a43d9770f9b40de3", "sha256": "bc4be1939811193931629397ae5961f8d13bceb12401d3ed9eb6f09f99c0283f" }, "downloads": -1, "filename": "pykhet-0.17.tar.gz", "has_sig": false, "md5_digest": "7bda549cbc9f8a81a43d9770f9b40de3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18144, "upload_time": "2017-02-17T10:28:13", "url": "https://files.pythonhosted.org/packages/67/77/ca8d883474d6fe0a29d95005f7350acbb151e8b73fb134086faf8bedb8e3/pykhet-0.17.tar.gz" } ], "0.18": [ { "comment_text": "", "digests": { "md5": "821d8bd1d2057280053b9206586dd87e", "sha256": "d42ff2fec60191d0cccb1426632c9f9a40b8c0019a3f8dd2f9c1b58d38a556c4" }, "downloads": -1, "filename": "pykhet-0.18.tar.gz", "has_sig": false, "md5_digest": "821d8bd1d2057280053b9206586dd87e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18111, "upload_time": "2017-02-24T05:40:13", "url": "https://files.pythonhosted.org/packages/f1/79/217c27313e507fc984984b5e73cc226efd3de5978718bf573dfa17c98f82/pykhet-0.18.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "821d8bd1d2057280053b9206586dd87e", "sha256": "d42ff2fec60191d0cccb1426632c9f9a40b8c0019a3f8dd2f9c1b58d38a556c4" }, "downloads": -1, "filename": "pykhet-0.18.tar.gz", "has_sig": false, "md5_digest": "821d8bd1d2057280053b9206586dd87e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18111, "upload_time": "2017-02-24T05:40:13", "url": "https://files.pythonhosted.org/packages/f1/79/217c27313e507fc984984b5e73cc226efd3de5978718bf573dfa17c98f82/pykhet-0.18.tar.gz" } ] }