{ "info": { "author": "Joachim Jablon", "author_email": "ewjoachim@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 3.6" ], "description": "Showdown\n========\n\n This town is not big enough for both of our bots\n\nWhat is this?\n-------------\n\nShowdown is a game for two bots (and for the people to write those bots)\n\nThe rules\n---------\n\n.. image:: https://nerdist.com/wp-content/uploads/2016/08/Good-Bad-Ugly-Trio.jpg\n :alt: Showdown (mexican standoff) from The Good, the Bad and the Ugly. (image from https://nerdist.com/)\n\nBasics\n^^^^^^\n\nThis game is played by 2 bots (a.k.a players), implemented as 2 different command line programs.\n\nEach bot represents an opponent in a western movie style showdown. They both have a 6-bullet Colt, and start with one loaded bullet. The aim is to kill the opponent by shooting them while they are vulnerable.\n\nPlayer play at the same time by issuing one of the 3 allowed commands : ``shoot``, ``dodge``, ``reload``. Then, if both player survive, they see what their opponent did, and start over, etc.\n\nWho dies ?\n^^^^^^^^^^\n\n(A and B can be any of the 2 players)\n\n- If A shoots while B reloads, B dies\n- If A and B both shoot but B has no more bullets, B dies\n- If A shoots while B issues an invalid command or their program has exited, B dies\n- If B has not issued a command within one second (but their program is still running), B dies. This rule is to avoid bots that will slow the game at each and every turn.\n\nIn all other cases, the game continues.\n\nAmmunition\n^^^^^^^^^^\n\nEach player start with 1 bullet in their gun. Shooting always removes a bullet from your gun (except if it's already empty). Reloading always adds a bullet to your gun (except if it already has 6 bullets and is full)\n\nTurns & victory\n^^^^^^^^^^^^^^^\n\nThe game stops when an opponent is dead, or when at least one opponent takes more than one second to give its intructions, or after 100 turns.\n\nIf there is no winner, the winner will be selected as the one who dodged the least frequently. If both opponent dodged the same amount of time, a winner is randomly selected.\n\nInputs, outputs, timings\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nHere, ``print`` means write in stdout, followed by a newline (`\\n`), and ``read``means read from stdin until newline.\n\nThe program should print its name (within 10 seconds after the start of the process)\n\nThen, as long as the game is on, the program should loop over the two following action.\n\nThe program should print its action for the current turn among ``shoot``, ``dodge`` and ``reload``.\nThen, the program may read the action the opponent did. The action may be ``shoot``, ``dodge``, ``reload``, ``shoot_no_bullet`` if the opponent shot bu had no bullet left, ``stand`` if the opponent sent an invalid command.\n\nA program has one second after it receives the opponent's action to print its own action, otherwise the game will be terminated.\n\nThe program\n-----------\n\n.. code::bash\n\n showdown first command with args -vs- second command with args\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ewjoachim/showdown", "keywords": "game", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "showdown", "package_url": "https://pypi.org/project/showdown/", "platform": "", "project_url": "https://pypi.org/project/showdown/", "project_urls": { "Homepage": "https://github.com/ewjoachim/showdown" }, "release_url": "https://pypi.org/project/showdown/0.1.0.dev0/", "requires_dist": null, "requires_python": "", "summary": "\"This town is not big enough for both of our bots\"", "version": "0.1.0.dev0" }, "last_serial": 3603024, "releases": { "0.1.0.dev0": [ { "comment_text": "", "digests": { "md5": "a51e6bf9820cfa5fd10e978f53e34d84", "sha256": "8509f371a3b61b36a4f7777b376555ce4b4de2797ae6091684cba842521c338b" }, "downloads": -1, "filename": "showdown-0.1.0.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a51e6bf9820cfa5fd10e978f53e34d84", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 13948, "upload_time": "2018-02-21T19:01:02", "url": "https://files.pythonhosted.org/packages/93/f6/8039814988a3f2c06bd293da8602c74b7e681cb2894b2e29307ad7f2039c/showdown-0.1.0.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea8da0a8941006351c0049ece98c0667", "sha256": "ce3629452204583f08d3e9b029a74c9d52f5c19506adb5890c5abe89971d3ba2" }, "downloads": -1, "filename": "showdown-0.1.0.dev0.tar.gz", "has_sig": false, "md5_digest": "ea8da0a8941006351c0049ece98c0667", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10550, "upload_time": "2018-02-21T19:00:42", "url": "https://files.pythonhosted.org/packages/2d/56/e19e8015a051d4b779ec2a54253a319bc1e1a6e534c9ed10bb34ce2b42e4/showdown-0.1.0.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a51e6bf9820cfa5fd10e978f53e34d84", "sha256": "8509f371a3b61b36a4f7777b376555ce4b4de2797ae6091684cba842521c338b" }, "downloads": -1, "filename": "showdown-0.1.0.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a51e6bf9820cfa5fd10e978f53e34d84", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 13948, "upload_time": "2018-02-21T19:01:02", "url": "https://files.pythonhosted.org/packages/93/f6/8039814988a3f2c06bd293da8602c74b7e681cb2894b2e29307ad7f2039c/showdown-0.1.0.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea8da0a8941006351c0049ece98c0667", "sha256": "ce3629452204583f08d3e9b029a74c9d52f5c19506adb5890c5abe89971d3ba2" }, "downloads": -1, "filename": "showdown-0.1.0.dev0.tar.gz", "has_sig": false, "md5_digest": "ea8da0a8941006351c0049ece98c0667", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10550, "upload_time": "2018-02-21T19:00:42", "url": "https://files.pythonhosted.org/packages/2d/56/e19e8015a051d4b779ec2a54253a319bc1e1a6e534c9ed10bb34ce2b42e4/showdown-0.1.0.dev0.tar.gz" } ] }