跳转到主要内容

在Python提示符下玩巨洞冒险游戏

项目描述

这是一个将1977年Crowther和Woods撰写的原始FORTRAN代码“冒险”游戏忠实移植到Python 3的版本!它允许你探索巨洞,在这里其他人发现了财富和黄金,尽管有传言说有些人进入后就再也没有出来。

此页面

http://rickadams.org/adventure/e_downloads.html

在此链接提供了原始PHP源代码

http://www.ifarchive.org/if-archive/games/source/advent-original.tar.gz

为了鼓励使用Python 3,游戏被设计成可以直接在Python提示符下进行。可以单独输入单词命令,但双词命令应作为函数调用编写(因为双词命令在Python中不是有效的)

>>> import adventure
>>> adventure.play()
WELCOME TO ADVENTURE!!  WOULD YOU LIKE INSTRUCTIONS?

>>> no
YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK BUILDING.
AROUND YOU IS A FOREST.  A SMALL STREAM FLOWS OUT OF THE BUILDING AND
DOWN A GULLY.

>>> east
YOU ARE INSIDE A BUILDING, A WELL HOUSE FOR A LARGE SPRING.
THERE ARE SOME KEYS ON THE GROUND HERE.
THERE IS A SHINY BRASS LAMP NEARBY.
THERE IS FOOD HERE.
THERE IS A BOTTLE OF WATER HERE.

>>> get(lamp)
OK

>>> leave
YOU'RE AT END OF ROAD AGAIN.

>>> south
YOU ARE IN A VALLEY IN THE FOREST BESIDE A STREAM TUMBLING ALONG A
ROCKY BED.

原始冒险游戏只关注每个命令的前五个字母,所以像inventory这样的长命令可以直接输入为inven。这个包为每个长词定义了两个版本的符号,所以你可以随意输入长版本或短版本。

你可以通过调用带有文件名的save()命令在任何时候保存游戏,然后稍后可以恢复它

>>> save('advent.save')
GAME SAVED

>>> adventure.resume('advent.save')
GAME RESTORED
>>> look
SORRY, BUT I AM NOT ALLOWED TO GIVE MORE DETAIL.  I WILL REPEAT THE
LONG DESCRIPTION OF YOUR LOCATION.
YOU ARE IN A VALLEY IN THE FOREST BESIDE A STREAM TUMBLING ALONG A
ROCKY BED.

你可以在其tests目录中找到两个完整的游戏攻略,你可以使用Python 3内置的discover模块运行它们

$ python3 -m unittest discover adventure

我大部分是在2010年圣诞节假期编写了这个包,为了更多地了解那个曾经让我着迷的童年的游戏的工作原理;这个项目还让我练习了编写Python 3。如果我不专心,我仍然会在编写 print() 时忘记括号。

传统模式

您还可以使用这个包在不需要输入有效Python的传统提示符下玩冒险游戏。使用您的操作系统命令行来运行此包

$ python3 -m adventure
WELCOME TO ADVENTURE!!  WOULD YOU LIKE INSTRUCTIONS?

>

在出现的提示符中,两个词的命令可以简单地通过空格分隔

> get lamp
OK

为了增加真实性,本模式下的冒险游戏输出将在1200波特率下打印到您的屏幕。您会注意到,尽管这比您阅读的速度要快,但您的游戏体验将大大提高,尤其是在移动导致惊喜时。

为什么游戏在1200波特率下更好?当一段文本可以一次性出现在屏幕上时,您的眼睛会扫描整个段落以寻找重要信息,这通常在您开始阅读之前就破坏了惊喜。但在1200波特率下,您将按顺序阅读出现的文本,正如冒险游戏的作者所期望的那样,按顺序展开叙事。

如果您在游戏中使用 save 命令创建了一个文件,您可以通过在命令行中命名它来稍后恢复它

> save mygame
GAME SAVED
> quit
DO YOU REALLY WANT TO QUIT NOW?
> y
OK

$ python3 -m adventure mygame
GAME RESTORED
>

注意事项

  • 一些冒险命令与标准Python内置函数冲突。如果您想运行正常的Python函数 exit()open()quit()help(),则导入 builtin 模块并运行那里存储的函数副本。

  • “break” 是Python的关键字,所以在游戏中无法使用它。相反,使用由冒险游戏的PDP版本定义的两个同义词:“粉碎”或“打碎”。

变更日志

1.6 — 2020年8月15日 — 添加对终端输入的大写命令的支持;修复用户因水而在瓶子里死亡时的异常 (查看#26)
1.5 — 2020年7月18日 — 当输入“灯转”时修复致命异常。
1.4 — 2016年1月31日 — readline编辑;添加许可证;修复错误;测试修复。
1.3 — 2012年4月27日 — 在Windows上安装;修复了未定义的命令。
1.2 — 2012年4月5日 — 从命令行恢复保存;5个字母的命令。
1.1 — 2011年3月12日 — 传统模式;更灵活的Python语法。
1.0 — 2011年2月15日 — 100%测试覆盖率,功能完整。
0.3 — 2011年1月31日 — 首次公开发布。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

adventure-1.6.tar.gz (83.0 kB 查看哈希值)

上传时间 源代码

由以下提供支持