无穷小追求2 + ε:一个回合制的谜题地牢探险游戏
项目描述
简介
无穷小追求2 + ε(或简称“SQ”;Python包名simalq)是一个类似《护城使者》的回合制谜题地牢探险游戏,旨在作为Hy的官方示例程序。它是Yves Meynard于1996年开发的Macintosh游戏《Infinity Quest II》(简称“IQ”)的重新实现/重制/简化版。
在Lubuntu的Konsole上运行的游戏。在这里,我们的英雄在新第一次探险的第10级被恶魔和蝙蝠所困扰。
SQ的特点包括
在任何具有Python 3和兼容终端模拟器的平台上可玩
光荣的类似roguelike的控制台显示,没有分散注意力的图形、声音或鼠标支持
确定性、全信息游戏
无限历史记录的可撤销功能
与IQ的二进制格式兼容的quest(级别)文件兼容性
广泛的测试套件
使用方法
您可以通过pip从Python包索引(PyPI)使用命令pip install simalq安装SQ,或使用pip install .从源代码安装。为了提高速度,尝试使用PyPy而不是CPython。
为了最佳显示效果,您应该使用支持24位颜色的终端模拟器(我是Konsole的粉丝,链接:[Konsole](https://konsole.kde.org)),但SQ应该能够应对更少的颜色支持,并通过其依赖库[blessed](https://pypi.ac.cn/project/blessed/)使用最佳近似值。对于Windows,SheepsTooth(一个SQ粉丝)已经贴心地整理了一份[逐步指南](https://github.com/hylang/simalq/files/14231807/Simalq.instructions.odt),教您如何在PowerShell中使游戏看起来很棒。
使用python3 -m simalq
运行SQ,或者使用pytest
运行测试。使用python3 -m simalq --help
查看选项。一个不错的选择是从教程任务开始:python3 -m simalq Tutorial_Quest
。
SQ第一次需要IQ的原版任务时,会自动下载。下载会被缓存,所以之后不需要互联网连接。
查看[Tilepedia](http://hylang.org/simalq/doc/tilepedia)获取瓷砖信息页面的HTML汇编。
到目前为止的故事
皇家公主十三边形十三世(朋友们叫她“Tris”),厌倦了她的学习,关闭了非标准分析的沉重法典。“我被迫长期关注乏味的学术,已经太久了”她大声哀叹,“而我的哥哥Argonn已经踏上了许多英勇的冒险。现在我坐在这里,无所事事,没有机会测试自己在剑术、弓箭和滑动拼图方面的技能。”
“啊!”邪恶的巫师Idok在地下实验室中大声喊道,他一直在用他的神秘Macintosh LC监视公主,以便抄袭她的家庭作业答案。“这是给你一个教训,年轻的公主,要小心你所愿望的。”他用死去的蛇生章鱼的语言Hy编写了一个可怕的咒语,在一堆令人作呕的括号中,Tris被带到了遥远的魁北克精灵之地的深处的一个巨大的地牢。这个地方看起来很熟悉,Tris意识到Idok几乎是从他的博士导师、邪恶的巫师Karvarel的论文中剽窃了整个事情。她的哥哥多年前就勇敢地闯过了这些地牢。她没有他的回忆录,但她确实知道一个很好的魔法咒语,这允许她预知未来。现在,有了这种先知的能力,她可靠的剑和弓,以及她碰巧找到的任何东西,Tris必须逃离地牢,或者尝试中死去。如果她能在路上装满财宝,这真的会帮助她王国最新的财政危机。
与IQ的不同之处
除了外观和其他界面差异外,SQ在设计中与IQ的主要区别在于其对确定性的承诺。SQ用确定性的等效物替换了IQ的随机机制,如怪物路径寻找,有时使游戏状态变为有状态的,而之前是无状态的。SQ还故意省略了如黑暗和混乱等界面恶作剧。SQ为瓷砖添加了风味文本,游戏中的保存和加载,撤销,英雄射击半径之外的地图可见性,修复了bug和奇怪的行为(例如,如果玩家在同一回合中因毒药而死,就会收到“你已死亡”的消息),移除了许多引擎限制(例如,最大和最小等级大小),以及调整一些核心游戏规则的能力(例如,怪物是否可以走在物品上)。
原始的IQ地图布局中包含许多类似于法轮的设计。IQ的作者Yves Mey纳德在2023年向我解释道:“我本来打算用它们来表示邪恶的简称。回顾IQ2,这是我唯一希望没有做的事情,因为这个符号有可能被误解。”我同意,如果没有解释性的背景,比如与纳粹作战,那么在游戏中看到法轮会让人感到不舒服。因此,当SQ加载原始关卡时,它会通过用我为相应关卡区域制作的新布局替换它们来审查法轮。我保留了骷髅设计,尽管Totenkopf也是纳粹的象征,因为在当代,通用的人头形状与纳粹的联系较少。
虽然Yves友好地提供了IQ的源代码供我参考,但SQ是一个原创作品,在代码层面上并没有实质性地复制IQ,并且在行为上有许多细微的(故意和可能也是偶然的)差异。
实现
SQ相当完善,允许玩家完成几个完整的任务。并非所有IQ的图块类型都得到了实现,因此一些原始任务(噩梦2、狂喜和原始教程Boot Camp 2)无法完全玩。如果您想尝试,可以尝试,但它们不会通过--quests列出。
总体而言,代码状况良好,提供了在Hy中解决许多不同类型问题的示例。一些文件使用Outli头部注释进行组织。在SQ中可以看到的示例包括
使用宏来简化许多类似类的定义:查看defdataclass和deftile(在深入研究它们的实现细节之前,先看看它们的用法)
管理全局变量和几种全局状态的概念:查看Global
使用blessed编写基于终端的游戏
使用construct解析新的二进制格式
使用类似于ElementTree的接口生成HTML:查看simalq.tile.tilepedia
使用pytest测试Hy程序(并且测试本身也用Hy编写)
为SQ创建一个新的任务:复制文件tutorial.hy,根据需要编辑它,并将其放在同一目录(quest_definition)中
SQ的一些方法和一点点代码源自我早期未完成的游戏Rogue TV。
版本历史
本节列出了每个版本中最重要且对用户可见的变化。通常,每个版本的保存游戏与其他版本不兼容,但带有星号(*)标记的版本应与前一个版本的保存游戏兼容。除非进行此类向后兼容的升级,否则您在升级游戏之前应删除所有保存的游戏。
1.0.2*(2024-09-22):主要是内部更改。
1.0.1*(2024-05-20):主要是内部更改。
1.0.0(2024-03-01):对显示进行了各种改进。
0.6.0(2024-02-19):IQ任务BoneQuest现在可以完全玩。
0.5.0(2024-01-10):主要是内部更改。新脚本util/gate_map.hy可能有助于绘制传送门迷宫,如新噩梦第10级。
0.4.0*(2023-09-08):SQ现在使用platformdirs设置数据目录。
0.3.0(2023-09-01):现在可以通过命令行提供难度选项。漫游怪物(如蝙蝠)的移动变化得到了改善。
0.2.0* (2023-07-23): IQ quest 新恶梦已被去纳粹化并添加到 --quests。
0.1.0 (2023-07-13): 首次可玩版本。
许可协议
本程序版权所有 2023, 2024 Kodi B. Arfer。
本程序是免费软件:您可以按照自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,许可证版本为3,或(根据您的选择)许可证的任何较新版本。
本程序分发时希望它将是有用的,但没有任何保证;甚至没有关于其商业性或适用于特定目的的暗示性保证。有关更多信息,请参阅GNU通用公共许可证。
项目详情
simalq-1.0.2.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8cb6e2720224329045b1019b5dbfed39a8f1182a229b311f20e366a81ce4dcf5 |
|
MD5 | b90a76059eecdf4b54bd6ca7789c6135 |
|
BLAKE2b-256 | aa4ecb35cd2d02f594af02097bc1cd172ef265fd0f586b76f905b4765bfeaf0f |