用 Haskell 解决“护照申请”

主要观点:当下存在用编程解决在线游戏的趋势,文中以英国“护照申请”游戏为例,介绍其是冒险解谜文档收集游戏,有线上和线下纸质版,规则复杂需收集多种文件证明“申请人是英国人”,硬核玩家选择纸质版。作者为女儿在线玩游戏,过程中遭遇各种文档请求及误导,发现游戏背后的“官僚逻辑”,即不能使用排中律,需提供特定文件证明,且英国国籍与父母国籍相关,HMPO 不信任自身护照记录会引发家族树式的递归文件请求。作者用 Haskell 编码规则以理解游戏,展示了代码及运行过程,发现不同证明路径所需文件不同,还探讨了代码中的一些问题及自动化的思考。
关键信息:

  • 游戏由“HMPO”开发,费用约 100 英镑,每 10 年左右玩一次。
  • 游戏规则复杂,需收集多种文件,如出生证明、结婚证等。
  • 有线上和线下纸质版,线下版需邮寄。
  • 游戏过程中会遭遇各种误导和额外的文档请求。
  • 用 Haskell 编码规则,展示不同证明路径及所需文件。
    重要细节:
  • 游戏中一些术语如“‘recognised profession’”有特定含义。
  • 证明英国国籍的规则涉及多种情况,如出生地点、父母国籍等。
  • Haskell 代码中定义了各种数据类型和函数,用于处理证明和文件相关问题。
  • 运行代码时需与用户交互回答各种问题以探索证明路径。
  • 不同证明路径所需文件不同,且存在一些复杂情况和未编码的规则。
阅读 10
0 条评论