以下是啰哩啰嗦的正文:
大家好,玩了这么多年的数独游戏,我终于拖拖拉拉的花了小一年做出了一个自己的数独游戏—— Hi Sudoku 。
我是一重度的数独玩家,每天不玩上几盘就手痒那种。玩了这么多的数独游戏,能让人满意的凤毛麟角,不是题库质量太差,就是操作太反人类,或是广告满天飞,各种打扰。这也是促使我又双叒叕开发一款数独游戏的缘由。
终于,炖了快一年,可以把自己做的这盘菜来给大家尝尝了了。游戏的设计目标只有两个:精良的题库,舒适的操作。
1. 题库
首先,合格的数独题目要满足有唯一解,不幸的是,现在市面上很多数独游戏连这点都做不到,玩到这种多解的题目,让你摔手机的冲动都有。
其次,难度分布要合理。市面上很多数独 APP 的出题思路简单粗暴:给定数字越少,题目就越难。乍一看很合理,实际是经不起推敲的。一些难题,往往不是在开始的时候就卡住你,而是填到后边快结束,只剩下 20 左右格子的时候难为你,那么这个只剩 20 来个格子的数独当成简单题目显然是不合理的,如果你不会一些高级技巧,保证你一筹莫展,只能靠猜。
Hi Sudoku 的出题原则很简单,让出题的程序像人类一样思考,我将大量的时间用在了模拟人类解题逻辑,编写了一套算法,从简单技巧到复杂技巧,并根据用到技巧的难度给题目打分,以此来区分题目的难度。
Hi Sudoku 并不标榜纯手工打造题库,因为手工打造太过费时费力,效果也不一定最好,我试图用程序的方式来提高题目的质量。
我后续有一个小计划,就是将 Hi Sudoku 的题库开源,其中包含 简单/中等/困难/专家/魔鬼 各 1 万道题目,加上每日挑战 初/中/高 三个级别各 5 千 道题目,共 6 万 5 千道题目。
2. 操作
对于数独 APP ,什么样的操作是便捷的,见仁见智。我按照玩了这么多数独游戏个人经验,优化了 Hi Sudoku 的操作。
高亮
数字高亮是现代数独游戏的必备功能,目前主流的操作方式基本上是:点击盘面上的数字,高亮盘面上相应的数字,以及这个数字的标记。这已经很不错了,但是还能够改进,如果盘面上正好缺了某个数字,但我想高亮它(盘面没有这个数字,所以只能是标记)是做不到的。
这是 Hi Sudoku 的做法:可以点击盘面数字高亮,同时,也可以长按数字按钮来高亮数字和标记。甚至可以在数字键盘上按住并滑动,快速的切换高亮的数字,这在某些解题技巧中非常的实用。
标记模式切换
传统的方案是提供一个切换按钮,在输入数字和标记之间切换。
Hi Sudoku 保留了这个传统方案,同时,增加了一种新的模式——快速上划,通过在数字按钮快速上划,来临时的切换输入的模式。比如游戏前期往往主要是填入数字,这是你可以一直处于填数模式,在偶尔需要标记的时候,在想要的数字按钮上划就完成了标记;相反,游戏后期,一般都是在排出标记,这是你就可以切换到标记模式,当确认了某个格子的数字时,在对应的数字按钮上划一下,就完成数字的输入,非常方便。
自动标记
老派的数独玩家可能认为自动标记是异端,但是我认为玩数独是为了乐趣而非自虐,并且 Hi Sudoku 给了玩家是否使用自动标记的自由。
自动标记有两种:一种是一次只自动标记一个格子;另一种是一键自动全部标记格子。
简单题目下,往往是不需要标记的;但是对于一些难题来说,自动标记减少了前期标记的枯燥,把主要的时间和精力用在解题本身的乐趣上。
Tip:自动标记有一个快捷触发机制,长按标记模式切换按钮,可以立即标记当前选中的空格。
智能提示
这个功能是前边题库算法的副产品,因为已经有了一套模拟人类的解题算法,所以 Hi Sudoku 可以模仿人类的逻辑来做题,给出当前盘面下最可能采取的步骤,并给出采取这个步骤的原因,而不是简单粗暴的告诉你某个格子该填什么数字。
Tip:智能提示也有一个快捷触发机制,长按智能工具按钮“神奇”就可以快速的打开提示界面,获取一条逻辑提示。