TL;DR
大家好,我做了一款数独游戏——Hi Sudoku,自认为还不错,现在已经上线,这里发一些码给大家。希望大家能够尝试和喜欢,如果你觉得不错,能够到商店给打个星,或者写几句评价的话就更加感谢了,也欢迎推荐给身边的朋友。
兑换码在文章末尾,需要注意的是 iOS 平台因为在国区没有版号和备案,所以是国区独不占,需要其他区的账号才能使用。欢迎大家积极回复。
以下是啰哩啰嗦的正文:
大家好,玩了这么多年的数独游戏,我终于拖拖拉拉的花了小一年做出了一个自己的数独游戏—— Hi Sudoku 。
我是一重度的数独玩家,每天不玩上几盘就手痒那种。玩了这么多的数独游戏,能让人满意的凤毛麟角,不是题库质量太差,就是操作太反人类,或是广告满天飞,各种打扰。这也是促使我又双叒叕开发一款数独游戏的缘由。
终于,炖了快一年,可以把自己做的这盘菜来给大家尝尝了了。游戏的设计目标只有两个:精良的题库,舒适的操作。
首先,合格的数独题目要满足有唯一解,不幸的是,现在市面上很多数独游戏连这点都做不到,玩到这种多解的题目,让你摔手机的冲动都有。
其次,难度分布要合理。市面上很多数独 APP 的出题思路简单粗暴:给定数字越少,题目就越难。乍一看很合理,实际是经不起推敲的。一些难题,往往不是在开始的时候就卡住你,而是填到后边快结束,只剩下 20 左右格子的时候难为你,那么这个只剩 20 来个格子的数独当成简单题目显然是不合理的,如果你不会一些高级技巧,保证你一筹莫展,只能靠猜。
Hi Sudoku 的出题原则很简单,让出题的程序像人类一样思考,我将大量的时间用在了模拟人类解题逻辑,编写了一套算法,从简单技巧到复杂技巧,并根据用到技巧的难度给题目打分,以此来区分题目的难度。
Hi Sudoku 并不标榜纯手工打造题库,因为手工打造太过费时费力,效果也不一定最好,我试图用程序的方式来提高题目的质量。
我后续有一个小计划,就是将 Hi Sudoku 的题库开源,其中包含 简单/中等/困难/专家/魔鬼 各 1 万道题目,加上每日挑战 初/中/高 三个级别各 5 千 道题目,共 6 万 5 千道题目。
对于数独 APP ,什么样的操作是便捷的,见仁见智。我按照玩了这么多数独游戏个人经验,优化了 Hi Sudoku 的操作。
数字高亮是现代数独游戏的必备功能,目前主流的操作方式基本上是:点击盘面上的数字,高亮盘面上相应的数字,以及这个数字的标记。这已经很不错了,但是还能够改进,如果盘面上正好缺了某个数字,但我想高亮它(盘面没有这个数字,所以只能是标记)是做不到的。 这是 Hi Sudoku 的做法:可以点击盘面数字高亮,同时,也可以长按数字按钮来高亮数字和标记。甚至可以在数字键盘上按住并滑动,快速的切换高亮的数字,这在某些解题技巧中非常的实用。
传统的方案是提供一个切换按钮,在输入数字和标记之间切换。 Hi Sudoku 保留了这个传统方案,同时,增加了一种新的模式——快速上划,通过在数字按钮快速上划,来临时的切换输入的模式。比如游戏前期往往主要是填入数字,这是你可以一直处于填数模式,在偶尔需要标记的时候,在想要的数字按钮上划就完成了标记;相反,游戏后期,一般都是在排出标记,这是你就可以切换到标记模式,当确认了某个格子的数字时,在对应的数字按钮上划一下,就完成数字的输入,非常方便。
老派的数独玩家可能认为自动标记是异端,但是我认为玩数独是为了乐趣而非自虐,并且 Hi Sudoku 给了玩家是否使用自动标记的自由。 自动标记有两种:一种是一次只自动标记一个格子;另一种是一键自动全部标记格子。 简单题目下,往往是不需要标记的;但是对于一些难题来说,自动标记减少了前期标记的枯燥,把主要的时间和精力用在解题本身的乐趣上。 Tip:自动标记有一个快捷触发机制,长按标记模式切换按钮,可以立即标记当前选中的空格。
这个功能是前边题库算法的副产品,因为已经有了一套模拟人类的解题算法,所以 Hi Sudoku 可以模仿人类的逻辑来做题,给出当前盘面下最可能采取的步骤,并给出采取这个步骤的原因,而不是简单粗暴的告诉你某个格子该填什么数字。 Tip:智能提示也有一个快捷触发机制,长按智能工具按钮“神奇”就可以快速的打开提示界面,获取一条逻辑提示。
兑换完成后如果 APP 中没有自动解锁高级会员,可以尝试重启 APP ,或者进入 选项-高级会员,在会员购买页面点一下 “恢复购买”即可。
注意:国区没有上架,如果你是国区账号应该是兑换不了的。
## 1 年高级会员兑换码
JRLKJP3JNENY
TJPLWRRKMM3N
WN63R74JNELJ
N9MR4EAKM7HK
JYN4KXJPTA33
L33LN9NJET76
TP7N4KAXKL3W
RMX77M9ANHPP
EF74PPF9MFTA
EPWPRTR4R7RA
## 终身会员兑换码
P3PFPP4XNXRN
KP6JXP6A96KW
6P43TLP746WA
9FMPFPTL4MPL
PY6JF49A47KK
7RLNA9A6R7M7
MMJTFR677JHM
7F6PPRP74JAA
WYL4X7HFPWNW
WYEEPPTATMAA
注意:Google Play 的订阅兑换码实际是试用兑换码,最长为 90 天,到期会自动续订,如果你不想到期续订,可以在兑换后在 Play 商店的设置中取消订阅,取消后这 90 天的订阅还是有效的。
## 90 天高级会员兑换码
ULG4ZCCGX9YMU5AXBRME007
GLLFF5467F3NWFV49JTJ41W
PJHNJRRTGYRL3YZL513FPQ3
PR16QMUUCL72BKLH9JK4F6A
CEASSCYX7EKUYTSJU0GKP77
H8L8526QHBYXE1V9WW4NEZ9
UCCEYFQPDCN2CXCVJ1ALM6Q
42114FHP0ADRRMUU6LRGKY8
M57LMW0NUT2JFT5H44678PE
ZDBWRBY7XA087FLTXPEH3NZ
6CQ1F9RJTCUH5KCAVDGS0KE
2QDBBT868C5PNM0WFYR03AZ
C8UAS381WJKTVG3KCH3VWVS
ZDRUW7TCMKJNC26BNMRVEJF
27QZHHVFRQU8A4RQASEVRDF
03KK5WL7G7C4Q606FA7YYL2
HCW10897MG7XAM16105V7UY
ZCPL68QSF11XKQTEY092GZN
S6E1J5TM22SB7KPCY0CE4HF
ZXEZGRQFXRSAQ2HL32J25XL
## 终身会员兑换码
C70ZDHXUNGM7SMBKU1C2N32
M37AP9Y7A7XRBXZVFSQDCEB
TFG9MY036PPR0M34TPQKCN4
ZSM3S964XRKDKU3AXUWB3XB
TPRQ37FS7LFJ0ZTXZTTXW87
QNBYA5ZBLPYKSLZT28YVKQY
LKQP7PGAH8CLQAED3XQJ46C
KEBYSG5NEQ8RCQ2DPFMU9T7
4GRYX23SPR728F5LM4D7F9G
RNH5Y66GTHNU320NA8YTHY8
请到**除国区之外的 APP Store **搜索 "Hi Sudoku" 即可下载,或直接点击下面的链接
https://apps.apple.com/app/instagram/id6450198518
搜索 "Hi Sudoku" 即可下载,或直接点击下面的链接
https://play.google.com/store/apps/details?id=com.hisudoku.classic
你也可以通过 Hi Sudoku 的官网 https://hisudoku.com/ 找到不同平台的下载方式。
因为开发者可以生成的兑换码的数量是有限制的,所以暂时先发这么多,如果大家热情比较高,我视情况再发一些。
其实如果你喜欢数独,即使没有码,也希望你能下载玩一下,游戏确实是有广告的,但是我已经尽最大努力做到不让广告打扰到玩家了。
201
vialon17 2023-11-18 18:28:37 +08:00 via Android
试了一把中级难度,评价:
对比其他 play 的数独,难度偏高点。 我做了 30min ,其他版本数独大概 15-20min , (也许自己太菜了吧,哈哈) 建议添加自动填充,最后只剩一个数字的时候自动补全; 建议当数字全部填充完毕后使该数 选项 消失功能。比如 1 全部填入后将 1 抹去或者 转变为不可选择(灰色,和可选数字颜色相同比较不太好辨认)。 祝 good luck ;) |
202
andyzhshg OP @Pig930 #194 兑换码已发送至邮箱。已经到了 200 楼,抽奖活动告一段落啦,感谢大家热情参与。
继续欢迎大家试用和交流使用想法哈,我还是会按前边 #168 楼所说,给有价值的反馈赠送兑换码。 大家如果觉得游戏不错的话,非常希望您能帮忙去对应的商店打个星,评个分,让 App 有机会让更多的人看到,谢谢大家。 |
203
andyzhshg OP @nuhou #195 确实可以加上这个功能。
@sixg0d #199 多谢返场评价,Hi Sudoku 关卡难度的划分原则大致上是 hard 之前的可以在不做 note 的前提下完成,Hard 不会用到高级技巧,Expert 会用到少量高级技巧,Evil 高级技巧会多一些。您提到的那个巨难数独,貌似只能用暴力穷举才能解了,个人认为题目其实给人做的话,这种算不上好的题目。 @vialon17 自动补全这个可以考虑下,但这种功能肯定会有人不喜欢,应该会有个开关。全部填完的按钮的显示方式我确实也想改一下,但应该不会是消失,具体还没想好,您说的另一种确实也是一个可选的方式。 感谢各位反馈,nuhou 和 vialon17 二位请查收下邮箱,给二位发了兑换码。sixg0d 前边已经中过奖就没有再发了哈。 |
204
ZeroW 2023-11-19 16:11:44 +08:00 via iPhone
玩了两天,提个小建议:有时候手抖会误操作但是这会导致错误次数累加,有没有啥开关可以避免这种情况,比如我不想要错误提示
|
205
oIMOo 2023-11-19 19:18:23 +08:00
@andyzhshg #167 小飞机已经下架很久了(暴露年龄),搜到一篇文章里有一些截图 https://zhuanlan.zhihu.com/p/21481730
然后关于操作方式的一点补充,我发现长按地步数字后,实际棋盘中的相同数字可以高亮,算是我希望的步骤,只不过是短按和长按的区别。不过这之后,我点击空白格子,这个时候能不能自动填充我选好的数字呢? 比如判定一下逻辑,是其它操作后点击空白格 —— 保持目前逻辑;还是长按了底部数字后按空白格 —— 填充数字。当然这个需要严谨的逻辑思考,因为如果玩家再高亮之后,需要连续填几个空白格子(相同数字)的话,逻辑需要再缜密一下。 加油!~ |
206
sixg0d 2023-11-19 20:38:23 +08:00
每一行、列或块的最后一个空格的确可以考虑自动补全,这一步也和填 note 一样枯燥~
|
207
lvlcj 2023-11-19 23:26:54 +08:00
一直在玩一个韩国的古早 App 试用楼主这个非常不错 题库很不错~
也求一个兑换码 谢谢楼主 // bHZsY2o0NzExNzc4QGdtYWlsLmNvbQ== |
208
lvlcj 2023-11-19 23:31:25 +08:00
|
209
andyzhshg OP |
210
oIMOo 2023-11-20 15:56:55 +08:00
@andyzhshg #209 再跟进一条,试了一下 magic 功能 —— 将所有可能性填入空白格子。
我不知道以下功能是不是有意为之: 假如横向第一组( 3 * 9 个格子)中,我们需要补全 “2”, - 最左边的一组( 3*3 )已经有 2 ,在第一行 - 然后中间一组的 2 待填,可能的格子为第二行的两个格子(横向) - 最右边的一组中,2 可能存在与第二行和第三行。 按照初始逻辑,这样没有问题。但是多加一步判断后,因为中间一组中,2 只能在第二行,所以会将最右边一组中 2 的可能性限制到第三行。 我的问题就在于,你是故意没有把后面这层判断加进去么。 补充一点,小飞机之前有免费版和付费版,看起来是后者下架了。 |
211
andyzhshg OP @oIMOo 没图的情况下把数独描述清楚太难了😂,我一边看一边在纸上画才理解了你的意思,真是辛苦打这么多字了。
确实是故意这么做的,如果把这层判断加进去,就等于是帮玩家多做了一步推理了。我定义的自动标记,就是排出这个格子所有相交的行列宫已有数字后剩下的数字。 |
212
shenpVip 2023-11-21 10:21:48 +08:00
@shenpVip #149 下载玩了两局,个人感觉首页设计有点复杂了,可以简单点,就初级、中级、高级三个入口,其他模式放到一个聚合入口,点击开始游戏,具体的统计信息放到单独的功能,例如成就、挑战榜单。另外每次进入的时候,白屏时间有点长,可以加个动画或者图案之类,白屏看着有点不舒服
|
213
lvzw 2023-11-21 17:57:19 +08:00
bHp3a2lraUBnbWFpbC5jb20=
求个 ios 终生,谢谢 |
214
vankhu 2023-11-22 09:51:07 +08:00
dmFua2h1NDdAZ21haWwuY29t iOS 谢谢分享
|
215
zjl03505 2023-11-22 16:13:36 +08:00
已手动标记的情况下使用自动标记全部,无法正常标记 全部格子
|
216
andyzhshg OP v1.0.3 已经上线,增加了游戏内唤起设置页面的功能,现在像错误提示,选中格行列宫高亮等都可以通过设置项关闭了。
@shenpVip #212 感谢建议,确实是有计划加一个专门的统计页面,包含现在首页的统计信息还有游戏的历史之类的;摆平时间长主要应该是首次加载,因为要解压拷贝关卡数据和做一些初始化,还有 android 上的 flutter 首次启动应该是需要作 shader 编译,确实是会慢一些,我已经按你的建议加了一个启动的动画,下个版本就会有了。 @zjl03505 #215 目前如果格子做过手动标记再选全部自动标记的话,会只根据已有数字计算没标记过的格子;对于已经手动标记过的格子,会检查这个格子的答案是否在已经标记的数字里,如果不在,会把这个答案的数字补在标记里。这是因为玩家可能已经根据逻辑分析排除了某些标记,自动标记不应该把已经正确排除的标记再标回来。如果你遇到的是这个情况之外的问题,就应该是 bug 了,方便的话麻烦提供下发生的场景,我分析排查一下。 @shenpVip 给您邮箱发送了 play 的兑换码,请查收;@zjl03505 我看提了好几次建议,但没留过邮箱,如果需要可以下边留个邮箱,我给您发兑换码。 |
217
zjl03505 360 天前
@andyzhshg #216 经过测试,实际为游戏初期「只标记了格子的部分数字」时,剩余的数字被判断为人工排除(虽然我实际没有去执行排除),因此未完整的填充所有可能的数字。
可能我需要养成一个习惯,入场先全部标记下 /笑 cry |
218
kingdom8 358 天前
最近正好在找数独游戏,搜索就看到这个,烦请给个 IOS 终身,谢谢 andxMjAxOEBnbWFpbC5jb20=
|
219
lulu00147 357 天前
老板,安卓 14 下一直闪退啊,跪求修一下谢谢
|
220
sixg0d 351 天前
老铁,我又回来反馈一些看法啦~
1. 我每天都玩,经常出现的情况就是手滑填错,反思了一下觉得可以给底部选中的数字也高亮,因为玩数独的时候都是靠选中数字看是否有唯一位置,并不会在意这数字是几,在拼时间且频繁切数字下,脑子来不及反应现在是数字几。 2. 在填错的情况下,同行同列同块的同数字标记也会消失。这时候如果按 undo ,标记会回来,还算好,但这时如果手急改回正确的数字后,那就蛋疼了,因为不该抹去的标记也没了。通过你 216 楼的回复,似乎这时按一键 note 只会补上正确答案的 note 。能够理解这是很尴尬的局面,一方面要照顾可能是用户通过逻辑排除掉的 note ,一方面又可能有被错误抹去的 note (不管是误填还是错误逻辑)。你选择补上正确答案作为 note 也算是折衷,不过这是不是等于是给答案了(😂我在所有空格标记 1 ,然后一键 note ,出来的是不是就是正确答案?)。 3. 我说了这么多,其实想说的是,填错的情况下,是不是可以不抹去 note ? 4. 同时为了处理第二点中出现的尴尬局面,是否可以增加一个一键 erase ,比如用户发现自己 note 填乱了,也会想重新填。 5. 如果允许的话,统计可以添加一个平均时间。最短时间具有偶然性,有时候突然出现一个简单的题,这样保留下的时间记录没啥参考意义。 6. 是不是其他 v 友提到过,每日挑战是不是可以放个排名(比如你击败了百分之多少的网友)?顺便问下,每日挑战的题是所有用户都一样的么。 7. 最后就是我心心念念的从底部选中数字和自动补全最后一格啦。底部数字改成选中高亮的话,跟点击选中逻辑就配套了,修改数字的话可以改成长按,或者强制 erase 后才能修改,符合自然逻辑,跟你现在的数字锁定也是一致的。 |
221
andyzhshg OP @sixg0d 非常感谢这么久了还返场回复哈
1 底部选中数字高亮可以加上,不过我还没想好怎么展示。最直观的方式是跟棋盘上高亮的样式一致,不过现在绿色圆角矩形已经用来展示对应宫是否完成了,最终可能上边或下边加一个小点之类的。 2/3 这里确实有你提到的问题,其实我已经偷偷处理了一些情况,比如某个格子填了错误的数字 3 ,然后不按 undo 而是按 3 取取消填入或者按橡皮擦擦出,都会按照 undo 处理,补回之前的 note 。但确实没有考虑填错了再改成正确的情况。像你说的填错了就不更新 note 也是一个方案,我再研究下有没有更好的方式。 4 一键 erase 指的应该是 erase 所有的 note 吧,这个可以加上,不过我现在的 ui 不太容易放进去了,可能藏得比较深了。 5 平均时间确实更有意义一些,下次更新就加上。其实游戏的中的很多数据就在本地的存档数据库里,只是我设计能力有限,还没想明白怎么展示,后边会一点点迭代出来。 6 排名这个短期估计没有,现在游戏可以认为是一个单机游戏,只有内购,广告这些联网,游戏本身是没有服务器的。而且现在游戏的下载量还很小,用真实数据展示的话也比较尴尬。等现在的版本迭代的基本稳定的话我计划去花钱商店买买广告,扩大下用户量,后边在考虑加联网排名之类的东西。 目前的题库是固定的,包括快速游戏和每日挑战:快速游戏每个难度包含了 10000 道题,如果 10000 道刷完了会从头再循环(我是不太信有人会刷完的😂),但是会对原题做等价变换,看起来会不一样,所以可以理解成是无限的;每日挑战每个难度有 5000 道题,从 2023 年 1 月 1 日开始,每个难度每天 1 道题,大概可以用 13 年(如果真能有人玩这么久我一定会回来更新题库的😂) 7 自动补全最后一格这个也会有,但排期的优先级会稍低一些,也不会是默认开启的功能。选中高亮这个我还没确定要不要做,因为跟现在的操作模式确实是冲突的,容我再想想。 |
222
sixg0d 340 天前
@andyzhshg 哈哈,看到平均时间加上去了,关于其他几点改动我斗胆提供一下我的想法:
1. 底部高亮已经有背景的情况下,可以考虑上移突出、放大或上边加个亮杠之类的。 4. erase all 可以考虑长按 erase 键。 7. 按打开正确锁定的情况下,焦点在非空格时点击底部数字就成了无效操作了。这么高效的操作浪费了挺可惜的,所以选中底部高亮可以和正确锁定绑定在一起,打开的话就成了选中底部高亮,不打开的话就默认你之前的操作。 辛苦开发者啦,你的 UI 非常简洁舒服~ |
223
waytin 308 天前
开代理,买会员怎么连不上 google play ,不整个微信/支付宝买会员码的链接吗,google play 应该也有很多人没有绑定卡吧。
|
224
andyzhshg OP @waytin 国内购买确实有些麻烦,我自己 play 商店绑卡也没成功过...
Google Play 的应用是否可以放第三方支付的购买方式我确实是不太清楚,苹果那边是明确不可以的。现在这个版本因为备案和版号的问题没有上国内的市场,所以想付费确实麻烦一些。我这边正在重构项目,后边应该会单独封装处一个国内版,功能基本一致,尝试上到国内的市场,以游戏的方式上架肯定是没戏的,看能不能上到应用分类里。 如果需要会员,可以留个邮箱,我免费发你个兑换码。 |
227
xuelang 41 天前
学习了,你这个设计确实考虑的很多,很不错。
我最近用 cursor 写了个数独小游戏,比较简单,web 端的,可以玩玩看。 https://gallery.selfboot.cn/zh/games/sudoku |