写了个网页版数独游戏

2019-09-07 22:47:28 +08:00
 mara1
在线玩: https://emilytimer.github.io/sudoku/
代码在这: https://github.com/emilytimer/sudoku

欢迎大佬来瞅瞅
4935 次点击
所在节点    分享创造
35 条回复
steley
2019-09-07 23:03:18 +08:00
挺好玩的,要是支持左右上下键就好了
tuding
2019-09-07 23:04:46 +08:00
滋瓷,我手机上有个数独游戏 APP 都待了几年了
rekulas
2019-09-07 23:05:20 +08:00
加上错误检测体验更好点
caNoN2019
2019-09-07 23:07:50 +08:00
这个随机留空不能保证最终答案只有一个,而你最后验算是根据玩家的 81 个格子与你设定的 81 个格子是否完全一致。这样是不是会导致 如果玩家的答案正确,却不符合你的设定答案,你会判定为玩家错误?
caNoN2019
2019-09-07 23:15:26 +08:00
@caNoN2019 又想了下,随机留空能否保证只有唯一的正确答案,还得仔细思考下。我上面的说法不一定正确。
rekulas
2019-09-07 23:16:44 +08:00
如上所说 问题还很严重
caNoN2019
2019-09-07 23:20:53 +08:00
@caNoN2019 刚搜索了一下,生成数独的唯一解算法还是个挺好玩的事,又长见识了。
newtype0092
2019-09-07 23:26:44 +08:00
随便做了一个就不给通过。。。数独校验只有加法你是怎么算错的?
newtype0092
2019-09-07 23:31:25 +08:00
@caNoN2019 好像目前没有能批量生成唯一解的,全集空间太大,只能像挖素数一样一点点算,有一个够大的已验证样本集之后,用几种模式变换矩阵,可以把一个变型成多个。
Building
2019-09-08 00:23:15 +08:00
@caNoN2019 只要有 17 个已知数,数独的解就是唯一的,不存在第二个解。
rekulas
2019-09-08 01:07:36 +08:00
做游戏不需要考虑唯一解的问题,遍历检查就行了 1ms 都不用
digimoon
2019-09-08 02:01:17 +08:00
第 81 个空里边,值 GoogleCN 不对
xiri
2019-09-08 03:02:13 +08:00
@Building 你搞错了哦,被证明的是小于 17 个已知数的数独必定有多解,但这是充分不必要条件,并不意味着大于等于 17 个已知数的数独必定有唯一解。

最简单的情况,已知数都集中在两行中,第一行 123456789,第二行 456789123 (这里有 18 个数了,要 17 个的话随便删掉一个就行),你自己看看有多少个解吧
caNoN2019
2019-09-08 07:11:02 +08:00
@rekulas 所以我上面的说法是,作者没有生成唯一解,但是校验却用的唯一解的检验方法
VEEX6
2019-09-08 08:39:51 +08:00
@caNoN2019 n 年前我也写过一个安卓版的,生成随机盘用的回溯法,然后随机遮掉几个,挺好玩的
zycojamie
2019-09-08 09:46:59 +08:00
适配下移动端,样式完全乱了。。
mara1
2019-09-08 10:10:35 +08:00
大家主要争论唯一解的问题,这个我写完的时候也想过,去查了下,跟 @Build 得到的结果一样,只要你写填上大于 17 个数字,就会只有 1 个答案。
我这个难度设置最难的概率说 0.3,大概率会填上 0.3*81 = 24 个,所以,基本都会>17 个,我就当只有唯一解了(不要打我)。
@zycojamie ,移动端不想适配了,本来想写 ios 的,但是苹果开发者要 99 美元才能开通,算了,我还是写个小程序吧。
mara1
2019-09-08 10:11:11 +08:00
@steley ,房间键是个好想法,我加上。
mara1
2019-09-08 10:11:26 +08:00
方向键
mara1
2019-09-08 10:12:01 +08:00
@rekulas , 错误检测也挺好,我也加上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/598919

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX