GAME / 创作记录

烽火来信:把七道逻辑题写成一封军报

一直想做一个不需要联网、不需要知识储备、打开就能玩十分钟的小游戏。不打操作、不靠反应,全靠一张纸一支笔的那种推理。这次把平时喜欢的七道逻辑题串成了一个古风小故事:你是关城的传令兵,七个烽火燧台依次送来军报,每封都藏着一道题,解完才能点起下一道回火。

七道题,从易到难

故事框架很简单:望沙、听风、照雪、渡河、伏岭、归雁、长明七座燧台,每台一封军报。题目我刻意选了七种不同的推理套路,避免重复:

第一台五影不依名次,是经典排序题——五个人到达先后,给出相邻、间隔、先后条件,还原位次。第二台五报容一误考条件句逻辑,五份英文译报里恰好一句错,推出哪两盏灯亮着。第三台灯要怎样回来是过河问题的变种,五个人一盏灯一叶舟,求最短时间。第四台谁在交替说话是真假话推理,三个人分别说真话、说假话、一真一假,给每人两句话定身份。第五台没有新字的来信是那道经典的"生日谜题"——知月者和知日者三轮对话,从沉默里推日期。第六台三遍抄牍的空白反过来,已知操作后的结果,反推初始牌序和操作顺序。最后一台十札合成一封是压轴,人名、封号、位次三个维度同时排,十条条件互相约束。

为什么全做成纸上推理

做之前我给自己定了几条规矩:所有题目必须只靠题目里给的条件就能解,不需要冷门史实、不需要先看攻略、不需要试出隐藏交互;答错了给一句"坏收据",告诉你这份回报和条件对不上,但不告诉你错在哪;答对了给一句"好收据",顺便点起下一道烽火。

界面就做成聊天窗口的样子——你在输入框里回报密语,军报一封封往下滑。每道题旁边留一条军令旁批当提示,实在卡住了可以看一眼,但不直接给答案。

最费劲的是让答案唯一

逻辑题最怕的不是难,是有多个解。一道题如果按条件能排出两种顺序,那不管玩家答哪个都可能被误判,整个体验就崩了。

前五道题改了好几轮。比如第五道生日题,一开始剩好几个候选日期,就得加条件或者调整日期表,直到三轮对话下来只剩唯一答案。第七道十札联合题最麻烦——人名、封号、位次三个变量缠在一起,我写了个小脚本枚举所有排列,把十条条件一条条过滤,确认只有一种排列同时满足全部条件才定稿。第六道反推题也是,必须保证不管你从哪个中间状态倒推,初始牌序都是唯一的。

这个过程比写故事费时间。故事写一晚上就行,但题目自洽性得反复跑、反复删条件加条件。

打包方式

核心就是一个 HTML 单文件,故事、样式、脚本全内嵌,双击就能玩,不用联网也不用配环境。另外打了一个 Windows 版 EXE,进度自动存在游戏旁边的存档目录里,关了再打开接着推。手机浏览器直接打开单文件版也能玩。全程不请求账号、不读位置、不连远程服务。

试玩

游戏放在 烽火来信单文件试玩版 ↗,浏览器打开就能开始。Windows EXE 和多页面版本也在同目录下。

七道题全部解完会到结局。不赶时间的话,泡杯茶慢慢推,大概半小时到四十分钟。

好的逻辑题不考知识,只考你愿不愿意把条件一条条摆开。这游戏就是给愿意摆条件的人做的。