Markov Junior
@Reference: Jack Cui | Github-Markov Junior | Wiki Markov algorithm
第一篇文章简要介绍了一下该编程语言能实现什么效果;第二个是官方repo,其文档和代码都有很强的借鉴意义;第三个是wikipedia对马尔可夫算法的解释,在该编程语言的实现中有重要的意义。
markov algorithm
马尔可夫算法指的是字符串重写算法,其基本逻辑如下:
- 自顶向下依次检查规则,看是否能在符号串中找到任何在箭头左边的字符串。
- 如果没有找到,停止执行算法。
- 如果找到一个或多个,把符号串中的最左匹配的文字替换为在第一个相应规则的箭头右边的字符串。
- 返回步骤1并继续。(如果应用的规则是终止规则,则停止执行算法。) [1]
MarkovJunior
Markov Junior是一种基于概率的编程语言,通过重写和传播规则(约束)来实现随机的生成和编写。最终对画布进行重写来实现随机的生成。
如上图所示,基础规则的约束以上图所示的色块变换和Pattern决定,再基于马尔可夫算法的规则,从上到下的规则逐渐进行转化和重写,实现最终关卡和规则的生成。
具体的例子如下,通过设定红色起点和颜色转换规则来进行全局的随机搜索实现色块的变化最后生成迷宫。
最基本的规则如上图所示,更为复杂的规则和写法可以通过参考GIthub上面的样例并进行自我实现来学习一下。
实现和测试
Markov Junior