sfqxx 发表于 2023-7-22 13:11:38

【鱼币】用 Scratch 做一个数独

本帖最后由 sfqxx 于 2023-8-9 21:02 编辑

官方课程:

https://www.bilibili.com/video/BV1Ks411G7WW

【鱼币】用 Scratch 做一个数独

起因:

为什么我要做这一个数独呢?(其实还怪难得),因为:
**** Hidden Message *****

数独规则:

玩家需要根据9×9盘面上的

已知数字,推理出所有剩余

空格的数字,并满足每一行、

每一列、每一个粗线宫内的

数字均含1-9,不重复。

制作环节:

先来看看 zhangjinxuan 给的要求,咱们一个一个完成。

必须要求(达不到扣分,在 666 育碧里面扣,如果这一步扣完了就没有奖励了):

1. 必须是随机数独,可以根据用户要求来决定提示数数量。(-300育碧)

2. 支持候选数的功能,且与我的程序实现效果相同。(-300育碧)这个有点难完成

3. 可以计时,计时必须是分钟+秒数。(-50育碧)

4. 可以保证数独的基本游戏逻辑,数独必须有解。(-666育碧)

5. 当填数失败,要闪烁与其冲突的数字(可以参考 GIF)。(-200育碧)……

6. 高亮用户想要填充的数字(可以参考 GIF)。(-200育碧)……

7. 不同的宫格之间要有明显的分隔。(-30育碧)

8. 效率,3秒以内必须生成一个数独(允许开启加速)。(-500育碧)

自选要求(达不到会有折扣,最多扣100):

1. 成功会有窗口提示(可以参考 GIF)。(达成+50,达不到-20)

2. 在生成数独获取用户想要的提示数,建议做一个类似 Entry 的东西。(达成+50,达不到-10)不理解,所以……

3. 7/21 前完工。(达成+50,达不到-30)


加分要求(达到会加分):

1. 支持导出文件(加11451419198190育碧)…………

2. 满足生成的数独仅有唯一解。(加500育碧)

3. 可以支持用户自己造数独,且判断其有解性,唯一性。(加100育碧)因为7.21的原因,懒得完成

好,我们一个一个来完成

1. 必须是随机数独,可以根据用户要求来决定提示数数量。

我们可以创建一个角色,造型写上1—9,再随机生成即可

核心代码如下:



主打的就是随机{:10_256:}

2. 支持候选数的功能,且与我的程序实现效果相同。

这个懒得做,过{:10_333:}

3. 可以计时,计时必须是分钟+秒数。

很水,还是造型的问题,核心代码如下:




4. 可以保证数独的基本游戏逻辑,数独必须有解。(-666育碧)

一般情况下,数独是80%有解的,所以我们可以开几个列表,然后随机生成数字存放进去,最后随机挖空即可

由于代码过多,暂不展示,可以自己试玩一下

5. 当填数失败,要闪烁与其冲突的数字(可以参考 GIF)。(-200育碧)……

6. 高亮用户想要填充的数字(可以参考 GIF)。(-200育碧)……

以上 2 种情况本人似乎不会,(虽然我不知道我是怎么最后辩解成功的{:10_257:} )

7. 不同的宫格之间要有明显的分隔。(-30育碧)

太简单了,直接用一个角色画在那里就OK了{:10_256:}

8. 效率,3秒以内必须生成一个数独(允许开启加速)

zhangjinxuan,你知道开加速会怎么样嘛?原来1分钟才能完成的东西加速1秒OK{:10_257:}

所以我们正常生成即可

可代码量还是太多,放一下部分代码{:10_333:}



终于做完了,清算一下还剩多少鱼币,emmmmmmmmmm……,仅剩66了{:10_266:} {:10_266:}

其实后来我又完成了一个条件,加了100{:10_256:}

自选要求(达不到会有折扣,最多扣100)

1. 成功会有窗口提示(可以参考 GIF)。(达成+50,达不到-20)

这种情况嘛……因为他要求必须是窗口,用 Scratch 自带的模块做起来有亿点点难,所以我们直接用一个角色代替即可

核心代码:



2. 满足生成的数独仅有唯一解。(加500育碧)

因为我查了资料,数独一般很少有第 2 解,所以一番辩论后{:10_250:} ,我也是博得了一些鱼币{:10_256:}

3. 可以支持用户自己造数独,且判断其有解性,唯一性。

我不会,过{:10_266:}

综上,我一共获得了,400-50=350(鱼币){:10_298:}

虽然没有完美的完成,但是我也要证明,Scratch就是一个好用的编程语言{:10_256:}
**** Hidden Message *****



结束语:
最后,一个数独游戏就从我们手中诞生了{:10_298:}

希望大家能够借对 Scratch 有更多的了解!特别是不服气的人

至此,就全部结束了,最后,你评分了吗{:10_256:}

初级鱼油请评 1鱼币 1 荣誉{:10_254:}

中级鱼油请评 2 鱼币 2 荣誉{:10_254:}

高级鱼油请评 5 鱼币 5 荣誉{:10_254:}

VIP大佬请评 5鱼币 5荣誉 3 贡献{:10_254:}

管理人员求5 鱼币 5 荣誉 5 贡献{:10_254:}

其他的请评5荣誉 5鱼币,能评贡献的一定要评哦,谢谢啦{:10_254:}



求评分,你们的认可就是我写下去的动力{:10_254:}

sfqxx 发表于 2023-7-22 13:33:02

各位VIP大佬请给5荣誉3贡献哦{:10_254:}{:10_281:}

zhangjinxuan 发表于 2023-7-22 13:18:55

这个懒得做,过

说具体点就是不会做呗{:10_256:}



我感觉你的算法非常神奇,感觉不是很对,但是又很神奇。

你能简述一下你的算法吗,并且证明一下。

zhangjinxuan 发表于 2023-7-22 13:20:56

你都承认了有些完成不了,我给你 400 鱼币只是让你感受一下我的慷慨{:10_256:}

声明:因为 sfqxx 的数独有些条件都没有达到,我原本是不想给他鱼币的,但是看他这么努力我就给了{:10_256:}

zhangjinxuan 发表于 2023-7-22 13:23:35

我不会 Scratch,你能给我解释一下你的算法的证明吗,或者提供算法简述?

就是你这个算法为什么是对的。

歌者文明清理员 发表于 2023-7-22 13:24:39

不错,已评分

sfqxx 发表于 2023-7-22 13:29:51

zhangjinxuan 发表于 2023-7-22 13:23
我不会 Scratch,你能给我解释一下你的算法的证明吗,或者提供算法简述?

就是你这个算法为什么是对的。

不要

sfqxx 发表于 2023-7-22 13:30:27

歌者文明清理员 发表于 2023-7-22 13:24
不错,已评分

没有啊???

yinda_peng 发表于 2023-7-22 13:31:19

我上学期大作业是选择做数独或者八皇后,我选了八皇后

歌者文明清理员 发表于 2023-7-22 13:31:44

sfqxx 发表于 2023-7-22 13:31:57

@isdkz @python爱好者. @Mike_python小 @陶远航

yinda_peng 发表于 2023-7-22 13:32:18

@开心老六 @夏季的春秋 @中英文泡椒

sfqxx 发表于 2023-7-22 13:32:25

歌者文明清理员 发表于 2023-7-22 13:31


请评分{:10_254:}{:10_254:}我都给你评过

isdkz 发表于 2023-7-22 13:32:46

5

isdkz 发表于 2023-7-22 13:33:56

5

陶远航 发表于 2023-7-22 13:35:29

《此帖仅作者可见》

币1

_Flowey_ 发表于 2023-7-22 13:35:31

看看

isdkz 发表于 2023-7-22 13:35:44

5

isdkz 发表于 2023-7-22 13:36:05

5

isdkz 发表于 2023-7-22 13:36:30

5
页: [1] 2 3 4 5 6 7
查看完整版本: 【鱼币】用 Scratch 做一个数独