电子拼图思维逻辑机的破解思路

最近孩子去朋友家做客,喜欢上了一个玩具,网上找了好久都没找到,后来问朋友给了个链接,发现是上市不久的益智类游戏玩具。

先上个图

电子拼图思维逻辑机的破解思路_第1张图片

电子拼图思维逻辑机的破解思路_第2张图片

电子拼图思维逻辑机的破解思路_第3张图片 

 开机之后有500关,难度越来越大,在朋友家玩的第3关,小孩子们都拼不上,然后我们家长大孩子们也一起参与,搞了几分钟才拼好,发现这个游戏真的不简单哟。

在回家的路上我就在想,这个游戏能不能通过写一段代码来解决呢。说干就干。干完了给孩子买这个玩具,然后搞不定了跑跑代码然后炫耀一番

然后就搞完了,代码跑了3个小时49分,也难怪,对于暴力尝试方式,大概有1.8亿以上的尝试次数。

然后优化算法:

1. 剪枝算法

2. 并发执行

程序执行减少到了2分钟,满意!

直接上第500关解法

电子拼图思维逻辑机的破解思路_第4张图片

 499关解法

电子拼图思维逻辑机的破解思路_第5张图片

说说暴力破解方法:

1. 棋盘有8 * 8,也就是一个二维数组,初始状态都是0
2. 填入目标性状,并且将对应位置 ➡️ 置为1。
3. 一共12个形状,除了填入的关卡形状块,还剩下9块,正方形1个方向,矩形2个方向,异形4个方向。
4. 每一个块都从二维数组开始遍历,但是没必要遍历64次(你们懂的)
5. 只要都放下,或者二维数组都是1就是结束条件。
6. 选择深度优先算法的朋友记得用stack作为数据结构。
7. 暴力的种类主要有剩余9个形状块的顺序的全排列,对于每一个形状块又有方向,也就是全组合。

最后,其实身为一个老父亲,还能够对代码有些许执着,算是一种情怀了!

你可能感兴趣的:(算法,算法)