虽然我们日常工作或者爱好编程时用的编程语言多数属于大面儿上的通用编程语言,比如Java啦、Python啦、C++啦等,不过现在的编程语言并非只有通用编程语言一种,还有一种编程语言被创建出来是为了某个问题或某个特定领域或者方向的编程语言。这次机智客和大家一起学习接触的就是特定方向的新编程语言:概率编程语言MarkovJunior。
它的推出,就是为了解决随机性的问题。比如我们在游戏中见到的迷宫,原本是为了突出随机造成的可玩性,可是当我们玩多了,就会发现它们千篇一律,再显得随机,玩多了也能熟悉它们的规律和刻板。而用概率编程语言MarkovJunior生成的批量游戏迷宫,则是彻头彻尾的无重复性不可预知,根本让你摸不到它下一个结构模样的规律。除非你瞎蒙猜到。

虽然代码展示的例子是2D迷宫,不过这只是一个简单演示。它其实可以生成2D迷宫,还可以生成类似一层层建筑的3D迷宫,和我们物理世界的建筑不同的是,这个3D建筑是随机的,跟女孩子的心理一样是猜不透的。由于它是借鉴了马尔科夫算法(Markov algorithms),本身“毫无记忆”,由当前状态决定下一状态的概率分布,然后通过制定的一系列规则,来形成需要的效果。所以规则不同,随机性强,拓展延伸性也强。以此延伸出来,这个概率编程语言MarkovJunior,不仅能生成2D迷宫,3D迷宫,而且还能生成地形图、随机河流、电路图。
为嘛会想到搞这个编程语言呐?原来这款概率编程语言MarkovJunior的作者是个游戏开发者,所以我们也能想象到为嘛前面介绍的语言生成应用,多半和游戏领域有关了。大概也正因为这哥们是游戏开发者,所以机智客看到在GitHub代码项目页面显示这个概率编程语言MarkovJunior的项目用的底层语言是C#编程。毕竟现在好多游戏所用的游戏引擎就是使用C#啦,JS啦这类脚本语言编程。有一说一,C#在游戏界的地位真是显赫,一般避不开。
虽然我们在文章开头说学习接触新语言,不过呢,现如今的我们,经济低迷到无力,竞争内卷得发狂,个人奋斗到躺平。那么,现在的你,还能学得动吗?此处有手动狗头。嗯,用得着,学得动,就学呗,反正这货是基于C#编程语言开发的,有C#编程语言基础的,大抵不会有多少障碍。
网友评论