{ "info": { "author": "Brandon Craig Rhodes", "author_email": "brandon@rhodesmill.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 6 - Mature", "Environment :: Console", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Topic :: Games/Entertainment" ], "description": "This is a faithful port of the \u201cAdventure\u201d game to Python\u00a03 from the\noriginal 1977 FORTRAN code by Crowther and Woods (it is driven by the\nsame ``advent.dat`` file!) that lets you explore Colossal Cave, where\nothers have found fortunes in treasure and gold, though it is rumored\nthat some who enter are never seen again. To encourage the use of\nPython\u00a03, the game is designed to be played right at the Python prompt.\nSingle-word commands can be typed by themselves, but two-word commands\nshould be written as a function call (since a two-word command would not\nbe valid Python)::\n\n >>> import adventure\n >>> adventure.play()\n WELCOME TO ADVENTURE!! WOULD YOU LIKE INSTRUCTIONS?\n\n >>> no\n YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK BUILDING.\n AROUND YOU IS A FOREST. A SMALL STREAM FLOWS OUT OF THE BUILDING AND\n DOWN A GULLY.\n\n >>> east\n YOU ARE INSIDE A BUILDING, A WELL HOUSE FOR A LARGE SPRING.\n THERE ARE SOME KEYS ON THE GROUND HERE.\n THERE IS A SHINY BRASS LAMP NEARBY.\n THERE IS FOOD HERE.\n THERE IS A BOTTLE OF WATER HERE.\n\n >>> get(lamp)\n OK\n\n >>> leave\n YOU'RE AT END OF ROAD AGAIN.\n\n >>> south\n YOU ARE IN A VALLEY IN THE FOREST BESIDE A STREAM TUMBLING ALONG A\n ROCKY BED.\n\nThe original Adventure paid attention to only the first five letters of\neach command, so a long command like ``inventory`` could simply be typed\nas ``inven``. This package defines a symbol for both versions of every\nlong word, so you can type the long or short version as you please.\n\nYou can save your game at any time by calling the ``save()`` command\nwith a filename, and then can resume it later::\n\n >>> save('advent.save')\n GAME SAVED\n\n >>> adventure.resume('advent.save')\n GAME RESTORED\n >>> look\n SORRY, BUT I AM NOT ALLOWED TO GIVE MORE DETAIL. I WILL REPEAT THE\n LONG DESCRIPTION OF YOUR LOCATION.\n YOU ARE IN A VALLEY IN THE FOREST BESIDE A STREAM TUMBLING ALONG A\n ROCKY BED.\n\nYou can find two complete, working walkthroughs of the game in its\n``tests`` directory, which you can run using the ``discover`` module that\ncomes built-in with Python\u00a03::\n\n $ python3 -m unittest discover adventure\n\nI wrote most of this package over Christmas vacation 2010, to learn more\nabout the workings of the game that so enthralled me as a child; the\nproject also gave me practice writing Python\u00a03. I still forget the\nparentheses when writing ``print()`` if I am not paying attention.\n\nTraditional Mode\n================\n\nYou can also use this package to play Adventure at a traditional prompt\nthat does not require its input to be valid Python. Use your operating\nsystem command line to run the package::\n\n $ python3 -m adventure\n WELCOME TO ADVENTURE!! WOULD YOU LIKE INSTRUCTIONS?\n\n >\n\nAt the prompt that will appear, two-word commands can simply be\nseparated by a space::\n\n > get lamp\n OK\n\nFor extra authenticity, the output of the Adventure game in this mode is\ntyped to your screen at 1200 baud. You will note that although this\nprints the text faster than you can read it anyway, your experience of\nthe game will improve considerably, especially when a move results in a\nsurprise.\n\nWhy is the game better at 1200 baud? When a paragraph of text is\nallowed to appear on the screen all at once, your eyes scan the entire\nparagraph for important information, often ruining any surprises before\nyou can then settle down and read it from the beginning. But at 1200\nbaud, you wind up reading the text in order as it appears, which unfolds\nthe narrative sequentially as the author of Adventure intended.\n\nIf you created a file with the in-game ``save`` command, you can restore\nit later by naming it on the command line::\n\n > save mygame\n GAME SAVED\n > quit\n DO YOU REALLY WANT TO QUIT NOW?\n > y\n OK\n\n $ python3 -m adventure mygame\n GAME RESTORED\n >\n\nNotes\n=====\n\n* Several Adventure commands conflict with standard Python built-in\n functions. If you want to run the normal Python function ``exit()``,\n ``open()``, ``quit()``, or ``help()``, then import the ``builtin``\n module and run the copy of the function stored there.\n\n* The word \u201cbreak\u201d is a Python keyword, so there was no possibility of\n using it in the game. Instead, use one of the two synonyms defined by\n the PDP version of Adventure: \u201cshatter\u201d or \u201csmash.\u201d\n\nCopyright\n=========\n\nThe ``advent.dat`` game data file distributed with this Python package,\nlike the rest of the original source code for Adventure, is a public\ndomain work. Phrases from the original work that have been copied into\nmy source code from the FORTRAN source (the famous phrase \u201cYou have\ngotten yourself killed\u201d and so forth) remain public domain and can be\nused without attribution.\n\nMy own Python code that re-implements the game engine is:\n\nCopyright 2010\u20132015 Brandon Rhodes\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nChangelog\n=========\n\n| 1.4 \u2014 2016 January 31 \u2014 readline editing; added license; bug fix; test fix.\n| 1.3 \u2014 2012 April 27 \u2014 installs on Windows; fixed undefined commands\n| 1.2 \u2014 2012 April 5 \u2014 restoring saves from command line; 5-letter commands\n| 1.1 \u2014 2011 March 12 \u2014 traditional mode; more flexible Python syntax\n| 1.0 \u2014 2011 February 15 \u2014 100% test coverage, feature-complete\n| 0.3 \u2014 2011 January 31 \u2014 first public release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/brandon-rhodes/python-adventure", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "adventure", "package_url": "https://pypi.org/project/adventure/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/adventure/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/brandon-rhodes/python-adventure" }, "release_url": "https://pypi.org/project/adventure/1.4/", "requires_dist": null, "requires_python": null, "summary": "Colossal Cave adventure game at the Python prompt", "version": "1.4" }, "last_serial": 1932192, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "ccc814a153b35653bca6081c5d67e697", "sha256": "ef1360f0ce3d2f27889f943781f9c5c45d2ee912e8674f406f443813f9b8a2d9" }, "downloads": -1, "filename": "adventure-0.3.tar.gz", "has_sig": false, "md5_digest": "ccc814a153b35653bca6081c5d67e697", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64970, "upload_time": "2011-01-31T14:53:28", "url": "https://files.pythonhosted.org/packages/1f/af/15369d89d8b7d800014cfa72c1d5adbabc6ba49dcbe61ab5b5dea6c5fd45/adventure-0.3.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "87efff18b6912f6cc373a561b9a63d7e", "sha256": "f29ef6f5ff8eb1e68b989e83de2fd22217e1206c7579dc044e58ec8b02b4b161" }, "downloads": -1, "filename": "adventure-1.0.tar.gz", "has_sig": false, "md5_digest": "87efff18b6912f6cc373a561b9a63d7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77554, "upload_time": "2011-02-16T05:36:46", "url": "https://files.pythonhosted.org/packages/a4/e4/010e5a17a12eda6d98da3e230f0e954b12c58a9a4eb80c61970e2974c67d/adventure-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "a01cb94ccfbbafe5e13413b9a3dc3aa4", "sha256": "6adca654121e4434cef70d6afbf0ea6f3d57e24965bf7b1312acd6c4a64e5839" }, "downloads": -1, "filename": "adventure-1.1.tar.gz", "has_sig": false, "md5_digest": "a01cb94ccfbbafe5e13413b9a3dc3aa4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79550, "upload_time": "2011-03-12T21:24:27", "url": "https://files.pythonhosted.org/packages/84/a6/3cf65074ba3eea03bd0af551309817c0ded8e9683cd3fb06bea4ad74e2a3/adventure-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "3953b92c56185d33759df2333dcb4afe", "sha256": "bac4c24fcc7e8d9470907d774daeda091409e48c7229c1f771d08d452d21b251" }, "downloads": -1, "filename": "adventure-1.2.tar.gz", "has_sig": false, "md5_digest": "3953b92c56185d33759df2333dcb4afe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79800, "upload_time": "2012-04-05T10:52:31", "url": "https://files.pythonhosted.org/packages/7d/c2/3b18d77cdfb63d3afca2b91fb52a1fda7c00c31ac1a877e93d3fa0381a2a/adventure-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "c8efa7bb4a638064936f35e2ed69c340", "sha256": "aade7c630733cd9f8a8a38b984df0d2d78e3840fde00cc75b934083fc06a2374" }, "downloads": -1, "filename": "adventure-1.3.tar.gz", "has_sig": false, "md5_digest": "c8efa7bb4a638064936f35e2ed69c340", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80699, "upload_time": "2012-04-28T05:01:27", "url": "https://files.pythonhosted.org/packages/89/11/2b42894d46592fce696762353f6692d8248ec180255d128b39d9e17763fa/adventure-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "9f4cb20f318f07fe22dd63d766f525d7", "sha256": "9b40c547a578e12a79f9e74ce80a78e333b12d82dd8e880925536b2f09dd3a23" }, "downloads": -1, "filename": "adventure-1.4.tar.gz", "has_sig": false, "md5_digest": "9f4cb20f318f07fe22dd63d766f525d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81080, "upload_time": "2016-01-31T07:04:55", "url": "https://files.pythonhosted.org/packages/a1/86/c4b0476d24171529f86a0b2f202d2b6711699dd7f911090599fef89d6318/adventure-1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9f4cb20f318f07fe22dd63d766f525d7", "sha256": "9b40c547a578e12a79f9e74ce80a78e333b12d82dd8e880925536b2f09dd3a23" }, "downloads": -1, "filename": "adventure-1.4.tar.gz", "has_sig": false, "md5_digest": "9f4cb20f318f07fe22dd63d766f525d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81080, "upload_time": "2016-01-31T07:04:55", "url": "https://files.pythonhosted.org/packages/a1/86/c4b0476d24171529f86a0b2f202d2b6711699dd7f911090599fef89d6318/adventure-1.4.tar.gz" } ] }