Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

!header_login!

只需一步,立刻登录

查看: 832|回复: 5

[命令方块] [TML小组]<绝对原创>数独雨林原理

[复制链接]
发表于 2016-8-9 10:25:20 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 MojeDes 于 2016-8-9 10:46 编辑

大家好,我是来自TML小组的夕阳延辉。
自从看到帕西的解数独游戏视频(地图原作者是Az大大)以及那时候乾坤正在做五子棋AI,于是我突发奇想,打算在MC里面做一个智能解数独。
终于,历经千难万险,我做出了这个东西。
那么,废话不多说了,我来讲讲它的原理吧。

在开始之前,我们得明确一个方案,这里我用粗略的流程图来表示一下:
流程图.png

现在就是详细讲解一下了:
首先做一个棋盘,棋盘边上放置4个盔甲架(视情况而定),这些盔甲架(你也可以用其他任何实体用来探测)名称分别叫find(遍历整个数独的东西)、col(列Column的缩写)、row(行)、box(宫)。
遍历数独.png

他们的作用分别是:find用于全盘探测和深度搜索、row用于行探测、col用于列探测、box用于宫探测。
·创建一个记分板,名字叫round(随你定),类型为dummy
开始的时候,玩家会按下按钮,那么这时就得将findround设置为0了(由于一些原因(后面会讲),我们需要给find规定round3的时候才能触发开始指令),那么相关的CB就需要根据findround来执行。
·先召唤一个叫做start的盔甲架
·在创造一个记分板,名字叫times(随你定,以后不做赘述),类型为dummy
看下面这个图,RCB循环型命令方块)一直执行给starttimes+1的指令;
第一个CCB连锁型命令方块)是一直把基础流程(由探测和唯一法填数组成的CB链)的CB脉冲型命令方块有时候是泛指所有类型的CB注意区别))激活(激活后再关闭,才能确保下一次能够激活),这个CCB是每一个游戏刻都会触发的,但是下一个CCB是每4个游戏刻才触发一次(3游戏刻触发一次会出现一些问题),因为考虑到后面的流程,所以必须要隔这些时间再执行一次。第三个CCB是当starttimes5的时候将分数改回0,以便达到循环的目的。第四个(可忽略)是用来告诉玩家正在使用唯一法解数独(当findround=1的时候)。
开始.png


(有些CCB是空指令的。。。我懒得删掉了,楼主是个大懒货,嘿嘿)
基础流程:
接下来就是重头戏了!
深度搜索+剪枝:
其实有一种方法可以省去开始的探测,就是每个单元格都弄一个AEC,大概能省去160多游戏刻。。。
教程到此结束了,谢谢大家的观看,可能还有可以简化的地方,如果大家有什么更好的方法,欢迎大家提出或者自己实践! 至于检测无解数也不是很难,只要在深度搜索那里加一些探测的CB就行了,然后调用,如果达不到81,则视为无解。
希望大家能喜欢,给点金粒吧。
最后,祝TML小组一周年快乐!
群LOGO.jpg

评分

参与人数 10人气 +19 金粒 +281 贡献 +2 收起 理由
10935336 + 1 + 10 dalao
chyx + 2 + 50 很棒的作品!
林扬骐 + 2 + 25 写了好多啊,总体思想可以概括一下吧.
乾.坤 + 1 + 15 TML大法好!
pca006132 + 2 + 35 很棒的作品!
bm2.5 + 1 + 1 大触我们做朋友吧!
贰逼 + 3 + 20 + 2 MCBBS有你更精彩~
_Benson_ + 3 + 25 MCBBS有你更精彩~
lzs1234 + 2 + 50 上天系列
scorpio975 + 2 + 50 MCBBS有你更精彩~

查看全部评分

回复

使用道具 举报

发表于 2016-8-9 10:35:55 | 显示全部楼层
来签到水一下

评分

参与人数 1人气 -1 金粒 -10 收起 理由
贰逼 -1 -10 无意义

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-8-9 10:41:50 | 显示全部楼层
@贰逼 申精
回复

使用道具 举报

发表于 2016-8-9 12:08:29 | 显示全部楼层
TML大法好!
快用雨林秒杀宝!
回复

使用道具 举报

发表于 2016-8-12 00:02:58 | 显示全部楼层
如果可以自动出题,手动做题。做不下去了选择自动解题。那样就完美了。然后解完之后在次全盘扫描一下。看有没有一行内重复出现的数字。

点评

嗯,以后会加上这些的  详情 回复 发表于 2016-8-12 15:18
回复

使用道具 举报

 楼主| 发表于 2016-8-12 15:18:37 | 显示全部楼层
lrf8643 发表于 2016-8-12 00:02
如果可以自动出题,手动做题。做不下去了选择自动解题。那样就完美了。然后解完之后在次全盘扫描一下。看有 ...

嗯,以后会加上这些的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 手机版本

GMT+8, 2017-7-28 19:05 , Processed in 0.120820 second(s), 11 queries , Memcache On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。

© 2010-2017 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

快速回复 返回顶部 返回列表