{ "info": { "author": "Abraham Toriz Cruz", "author_email": "categulario@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Supergato\n=========\n\n.. image:: https://github.com/categulario/supercat/blob/master/supercat/assets/game.png\n :alt: El juego de gato a otro nivel\n\nReglas\n------\n\nEl juego del supergato se juega as\u00ed:\n\n* Gana el que gana el gato grande.\n* Se gana el gato grande ganando los gatos chiquitos en alguna forma que represente un juego ganador en el tradicional gato.\n* El primer jugador decide qu\u00e9 gato y casilla jugar.\n* Cada jugador jugar\u00e1 el gato an\u00e1logo en el gato grande a la casilla que jug\u00f3 el jugador previo en su gato peque\u00f1o.\n* Si a un jugador le corresponde jugar un gato que ya est\u00e1 terminado (ganado o empate) puede elegir qu\u00e9 gato jugar.\n\nAPI para jugadores\n------------------\n\nDebes crear un archivo python con una clase ``Player`` que herede de ``supercat.classes.BasePlayer`` y que tenga una funci\u00f3n ``play(world, game, move_num, last_move)``, donde:\n\n* ``world`` es el estado actual del juego (ver ``definitinos/world.py``).\n* ``game`` son las coordenadas (como tupla) del juego que el jugador debe jugar\n o ``None`` si es juego libre. Ejemplo: ``(1, 2)``.\n* ``move_num`` el n\u00famero de jugada, comenzando con 1.\n* ``last_move`` es la \u00faltima jugada ``juego, casilla`` del oponente, si es la primera jugada del juego esto es ``None, None``.\n\nEl valor de retorno de la funci\u00f3n debe ser una 2-tupla de 2-tuplas que represente la jugada que va a jugar o ``None, None`` en caso de rendici\u00f3n, ejemplo: ``(0, 0), (1, 1)``.\n\nAdicionalmente la clase debe definir un atributo ``name`` con el nombre del jugador.\n\nSe puede saber qu\u00e9 tipo de ficha (``X``, u ``O``) se est\u00e1 jugando accediendo a la propiedad ``self.identity`` de la clase.\n\nPuedes revisar (y usar) las cosas en ``supercat.utils``, hay funciones ya definidas para varias cosas.\n\nC\u00f3mo usar el referi\n-------------------\n\nInstala el paquete ``supercat`` (``pip install supercat``). Habiendo hecho eso el referi est\u00e1 disponible como un ejecutable:\n\n.. code-block:: bash\n\n $ referi --help # Un poco de ayuda\n $ referi lucky ordered -f 3 # Corre el referi, lucky contra depressed a 3 cuadros por segundo\n\nEl referi puede jugar con los jugadores por defecto (contenidos en la carpeta players o correr jugadores contenidos en archivos de texto. Suponiendo que declaraste tu jugador en un archivo llamado ``kysxd.py`` puedes probarlo contra un jugador por defecto usando:\n\n.. code-block:: bash\n\n $ referi lucky kysxd.py\n\nPor defecto los juegos son a 1 cuadro por segundo\n\nOpciones de l\u00ednea de comandos\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n.. code-block:: bash\n\n usage: referi [-h] [-f NUM] [-c] [-s] [-n] [-w SECONDS]\n PLAYER1 PLAYER2 PLAYER1 PLAYER2\n\n Supercat referi\n\n positional arguments:\n PLAYER1 PLAYER2 players to play\n\n optional arguments:\n -h, --help show this help message and exit\n -f NUM, --fps NUM fps at with the game should play\n -c, --coin should the referi flip a coin?\n -s, --capture-screen take a screenshot of the final game\n -n, --no-render Do not render the pygame GUI, just compute the game\n -w SECONDS, --wait SECONDS\n wait before game disapears\n\n lets play!\n\nChangelog\n---------\n\nv1.2\n~~~~\n\n* Nuevos jugadores! ``murder`` le gana a ordered siempre, ``meta`` le gana a ``murder``, ``randomdrepressed`` se cambi\u00f3 el nombre a ``drunk``. ``murder`` y ``meta`` son contribuciones de @KYSXD.\n* El tablero estaba traspuesto con respecto a las coordenadas que recib\u00edan los jugadores, ya no m\u00e1s.\n\nv1.1\n~~~~\n\n* Se crean dos funciones ``csv`` y ``err`` en ``supercat.utils`` para separar ``stdin`` y ``stderr`` (esto puede ser \u00fatil para replay games).\n* Se a\u00f1ad\u00e8 ``human`` a los jugadores, ahora los humanos pueden jugar (kind of)...\n* Se a\u00f1ade el jugador ``randomdepressed`` a los posibles jugadores.\n* Correcci\u00f3n de bugs, refactorizaci\u00f3n, muerte, destrucci\u00f3n y cumbia.\n\nv1.0\n~~~~\n\n* Ahora los jugadores son objetos en vez de s\u00f3lo funciones, revisar ``players/lucky.py`` para m\u00e1s informaci\u00f3n\n* Correcciones menores de bugs\n\nv0.3\n~~~~\n\n* Se a\u00f1ade el m\u00f3dulo ``supercat.utils`` que todos los jugadores pueden usar, con funciones \u00fatiles como ``boxes``, ``random_boxes`` y tests sobre el estado del juego\n* Correcciones a ``ordered``\n\nv0.2\n~~~~\n\n* Se pueden guardar capturas de pantalla del final del juego usando la opci\u00f3n ``-s`` de la interfaz de l\u00ednea de comandos\n* El primer jugador siempre juega cuadros\n* Para que el referi tire una moneda y decida qui\u00e9n tira primero se usa la opci\u00f3n ``-c`` (aun as\u00ed el primer jugador juega cuadros)\n* Ya se reconocen los empates (locales y general) y se marcan en el mundo con ``\"R\"``\n* El c\u00f3digo de ``lucky`` y ``ordered`` est\u00e1 m\u00e1s limpio gracias a una funci\u00f3n m\u00e1gica\n\nv0.1\n~~~~\n\n* Primera versi\u00f3n del referi, puede poner a competir dos IA y mostrar la partida\n* permite regular los frames por segundo\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/categulario/supercat", "keywords": "tictactoe,gato,ultimate tictactoe", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "supercat", "package_url": "https://pypi.org/project/supercat/", "platform": "", "project_url": "https://pypi.org/project/supercat/", "project_urls": { "Homepage": "https://github.com/categulario/supercat" }, "release_url": "https://pypi.org/project/supercat/1.3.1/", "requires_dist": [ "pygame", "pytest; extra == 'test'", "flake8; extra == 'test'" ], "requires_python": "", "summary": "Librer\u00eda y r\u00e9feri para el juego de gato anidado", "version": "1.3.1" }, "last_serial": 4184133, "releases": { "1.2.0": [ { "comment_text": "", "digests": { "md5": "af1ffce915d2b90a10a8e7adede08e4b", "sha256": "b4c43d1d48bb40e1029ef813b2ce8ce9449ad0b49c8392ae87947a33ff73811a" }, "downloads": -1, "filename": "supercat-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "af1ffce915d2b90a10a8e7adede08e4b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25662, "upload_time": "2018-08-18T20:41:37", "url": "https://files.pythonhosted.org/packages/74/a1/41358e4d0861755ccb80ff2884a9cc528bd6621c8d0476f5cbf5ae96115d/supercat-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "deba4551b6966c2856a1d9461311114b", "sha256": "e55d5eb18a01a1615556c16f51567187681da77f4ecb0e60a06c0610f31fedb3" }, "downloads": -1, "filename": "supercat-1.2.0.tar.gz", "has_sig": false, "md5_digest": "deba4551b6966c2856a1d9461311114b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21540, "upload_time": "2018-08-18T20:41:39", "url": "https://files.pythonhosted.org/packages/d3/2a/d9333c1c160340a25ab6bed688cf2567f7b221e1c4661709720395402db6/supercat-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "8fe50eeb09d3465dd09f7ac810016659", "sha256": "111aab6529f383bceb488d0bf824a29148a84c99cf6963205f4629d72c22574c" }, "downloads": -1, "filename": "supercat-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8fe50eeb09d3465dd09f7ac810016659", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25868, "upload_time": "2018-08-18T23:22:31", "url": "https://files.pythonhosted.org/packages/cc/e1/580024a284eee5d3382d07dd37b6fa0675a71b8cc15400424c46cd2c31f7/supercat-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45d2886d794288003ea7e642a11a1dd0", "sha256": "206ffbe35a7e40d995ded391041fe6053f4d07bb9a16e25bbe05f053ffb624dd" }, "downloads": -1, "filename": "supercat-1.3.0.tar.gz", "has_sig": false, "md5_digest": "45d2886d794288003ea7e642a11a1dd0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21705, "upload_time": "2018-08-18T23:22:32", "url": "https://files.pythonhosted.org/packages/80/a0/e6382b569bf822ae7f835d1602bf24f549cf1b4b74be3ed2410a66c56653/supercat-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "fb4edef7bb8c30d5864e4930c9e7743d", "sha256": "c17d63e964c2b634bd376ddb3605f919749998c8fe920ad12c88376ed0e18726" }, "downloads": -1, "filename": "supercat-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fb4edef7bb8c30d5864e4930c9e7743d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25834, "upload_time": "2018-08-18T23:41:27", "url": "https://files.pythonhosted.org/packages/13/ad/2048b23e87dd4aa3bfeaccc5d007775b7daa2c65959dae62be84eecac71b/supercat-1.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be217bbc2f4b9ceb8dd46a27f942b2f9", "sha256": "21f7dcb4de310b77ce31cbf3408725def7e665b802546b6141ff5fccb35087ee" }, "downloads": -1, "filename": "supercat-1.3.1.tar.gz", "has_sig": false, "md5_digest": "be217bbc2f4b9ceb8dd46a27f942b2f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21674, "upload_time": "2018-08-18T23:41:28", "url": "https://files.pythonhosted.org/packages/82/ae/8338decb0fc829a1d84bdff4a2ed22781d4562a651dd6053968a1771013f/supercat-1.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fb4edef7bb8c30d5864e4930c9e7743d", "sha256": "c17d63e964c2b634bd376ddb3605f919749998c8fe920ad12c88376ed0e18726" }, "downloads": -1, "filename": "supercat-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fb4edef7bb8c30d5864e4930c9e7743d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25834, "upload_time": "2018-08-18T23:41:27", "url": "https://files.pythonhosted.org/packages/13/ad/2048b23e87dd4aa3bfeaccc5d007775b7daa2c65959dae62be84eecac71b/supercat-1.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be217bbc2f4b9ceb8dd46a27f942b2f9", "sha256": "21f7dcb4de310b77ce31cbf3408725def7e665b802546b6141ff5fccb35087ee" }, "downloads": -1, "filename": "supercat-1.3.1.tar.gz", "has_sig": false, "md5_digest": "be217bbc2f4b9ceb8dd46a27f942b2f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21674, "upload_time": "2018-08-18T23:41:28", "url": "https://files.pythonhosted.org/packages/82/ae/8338decb0fc829a1d84bdff4a2ed22781d4562a651dd6053968a1771013f/supercat-1.3.1.tar.gz" } ] }