误入魔道 发表于 2020-10-31 11:13:49

分享去年用MATLAB写的一个puzzle

本帖最后由 误入魔道 于 2020-10-31 11:26 编辑

关于这个puzzle
       记得原puzzle的实现是很多年前,百度贴吧实现过一个网页版,同时还制作了4×4版本,一直挺喜欢。但是原帖和原作者找不到了,作者给出的链接也很早就失效了。
       这个用MATLAB是一个一年多前参加各种建模比赛时摸鱼写下的,也并不是第一次实现这个puzzle,大概五年前高中的信息技术课老师用一个叫编程猫(应该是类似scratch的东西)的少儿编程教学工具让大家学习编程。最后提交的编程作业就是这个,这个网站用户的数据也早就被删除掉了,域名经过转变,现在用户数据依旧丢失。
       由于是MATLAB写的,可能大家没办法玩到了,也有考虑有时间用别的工具重制一个。程序区也很冷淡,这次分享也是做一个记录,或许更适合在闲聊区,如果有学工科安装了matlab可以尝试一下:lol。

       这个puzzle不仅仅限于3×3和4×4,而是直接实现了1到n阶以及不等阶(内在逻辑是相同的),还设定了几种内置的规则可以选择(如果熟悉MATLAB,自己修改属于自己的规则也不困难),
规则和功能
基本规则:点击某一个方块自身及相邻的方块数值加一,到达最大值(设定的是9)循环回最小值(1),最小值的索引不是0而是1对应了Matlab的索引下标是1起始。
扩展的规则:新规则1.被点击的方块数值不发生变化,相邻方块数值加1。
                   新规则2.被点击的方块所在的行列+1

puzzle展示

复原

二阶

不等阶

高阶


新规则
规则1

规则2


下载:

关于这个puzzle的一些问题
开始的打乱的规则随机生成一个包含1到9的n×n的矩阵,实际复原的过程中发现任意状态都是可以达到一个复原态的,后来加入了新的规则之后,就需要考虑能否遍历所有的状态,所以后来将打乱改成了随机打乱。对这方面的问题不太熟悉,还望对理论了解的朋友指教。

redcarrot 发表于 2020-11-1 16:19:26

一个扩展的关灯游戏啊,挺好玩。schuma写过一个几何体版的关灯游戏,可以参考一下:http://bbs.mf8-china.com/forum.php?mod=viewthread&tid=102204

误入魔道 发表于 2020-11-1 18:59:38

redcarrot 发表于 2020-11-1 16:19 static/image/common/back.gif
一个扩展的关灯游戏啊,挺好玩。schuma写过一个几何体版的关灯游戏,可以参考一下:http://bbs.mf8-china.c ...

我写的本身可以改变循环的次数,改到2就等于平面上的关灯游戏了。也有过做空间版本的,类似做成分子结构。
几何体这个挺好玩,估计这几天要沉迷了。

skying007 发表于 2020-11-2 09:26:13

很好玩啊。试试

bob424200 发表于 2020-11-2 10:12:13

平面也可以变成立体的, 可以试试改变边界条件, 加入周期性边界条件就变成一个Torus了

xwfh2000 发表于 2020-11-3 09:43:16

很不错的创意,关灯游戏的扩展版。以前看到一些变种,可以自定义当前块影响的矩阵,楼主可以考虑下。

折翼蚂蝗 发表于 2020-11-8 20:14:50

用MATLAB写的!很有意思:lol我最近正好常用mathematica,我来试试能不能移植过去;P
页: [1]
查看完整版本: 分享去年用MATLAB写的一个puzzle