03_Python 使用Matplotlib绘图

游戏攻略06

03_Python 使用Matplotlib绘图,第1张

03_Python 使用Matplotlib绘图
导读: 不知不觉,已经进入第12周了,Python数据分析的学习现今也已经进入了中后期,在继上周进行了Numpy的康威生命游戏的编写之后;紧接着进行的学习就是利用Python的Matplotlib模块来练习绘图。 这次由于涉及到图像,所以引用了一

不知不觉,已经进入第12周了,Python数据分析的学习现今也已经进入了中后期,在继上周进行了Numpy的康威生命游戏的编写之后;紧接着进行的学习就是利用Python的Matplotlib模块来练习绘图。 这次由于涉及到图像,所以引用了一些丁烨老师的pdf的截图。主要是进行用Matplotlib模块来进行MATLAB能做的数据分析绘图工作,并结合Numpy和Matplotlib来做一个扫雷小游戏。

matplotlib官网

在狂拽酷炫的大神烧脑的阿法尔狗原理解析之后,我更多的从游戏设计和现象角度谈谈围棋和生命游戏以及生命围棋一些设计思路和开发体验。

线上Demo地址:gooflife

“All of life is an act of letting go” -- Life of Pi

这是生命围棋的主题,出自李安的《life of Pi》,翻译过来:人生(或者生命)就是不断前进、放下的过程,与生命围棋意义十分搭配,我们古称围棋为“弈”,西方名称是“Go”。弈:古语就是指下围棋,也有博弈、对弈的意思,与英文名Go of Life形成对称,而Go有走,去,进行,达到等含义,很多游戏的开始按钮都是Go,每一次点击和移动的游戏操作动作我们也可以看成是“go”。比喻人生如棋,我们的每一次观察、言语、动作、行为和决策都可以看成是一次落子,an act of go。

围棋起源于中国,文化博大精深,论语、左传、孟子都有关于围棋的记载,“琴棋书画”棋所指的就是围棋,存在了几千年,而千古无同局,生命力依然非常旺盛。

我们可以几分钟了解明白围棋的规则,但也许要用一生来追寻围棋的技艺,古往今来也吸引了许多聪明人将智力和注意力投入其中,状态空间10^172远超过宇宙可观测的原子总数,可以说是最伟大的游戏。

这次人机大战,再次掀起全民(主要是中日韩地区)对于围棋的热潮和关注,而围棋一直都是完全信息博弈游戏的巅峰,人工智能的圣杯。而阿尔法狗4:1战胜李世石颇具历史意义,让我们有了参照物,知道人类围棋在天地之间是什么位置。

围棋规则主要可以归纳为下面三条:

基于这简单规则,围棋涌现出近乎无穷的下法和策略,从围棋术语我们就可以窥见一斑:

这次人机大战直播中,我们听到职业九段说各种围棋术语,但这些围棋术语也都是人为定义的,而阿尔法狗走棋的时候就没有这些概念,它只有概率和输赢,所以我们在直播中听到许多职业棋手们解说也看不懂阿尔法狗棋路,阿尔法狗也常常下出我们认为不合常理的棋路,同时职业在形势判断上出入也都比较大,说明了我们之前积累的围棋理论,比如一些总结出来的定式,包括“势”的概念及判断,其实是有局限性的。

人机大战第四局,李世石在78手下出“神之一手”,展现人类的思维直觉、计算力和创造力,AlphaGo在此之后看似乱了阵脚,连续下出低级昏招,使得李世石拿下世纪大战中极具历史意义的一盘。

围棋如此复杂的下法和变化背后,可以用对弈记录和量化的棋力准确的衡量一个人的水平,现在已经是非常成熟的段位体系。

我们将上市公司估值作一个类比,一个上市公司也是非常复杂的组织,但通过发行股票后,在市场里可以量化得到公司估值。

在这个排名背后我们看到AlphaGo现在一人之下万人之上,而当今围棋第一人就是天才少年——柯洁,他的职业是棋手,副业是段子手+网红,在AlphaGo击败李世石第一场后就放言:“就算阿法狗战胜了李世石,但它赢不了我!”。纵观五场直播过程,总体柯洁对于场上形势判断是最为敏锐和准确的。

John Conway在1970年设计和发明的二维元胞自动机,元胞自动机最早要追溯到祖师爷冯诺依曼,

想象一个二维平面网格,每个格子里能放下一个“细胞”,它有死和活两种状态;它的下一代是由它自身和它周围邻居8个细胞的死活状态决定。

演化规则如下:

基于这三条规则我们可以在屏幕上观察到许多纷繁复杂、形态各异的图案。

更有滑翔机,滑翔机枪,滑翔机枪播种机这样神奇的产物。

我们可以用这些滑翔机模拟计算过程,在生命游戏的虚拟世界中构造一台通用计算机!康威和他的学生们也证明了在这个二维世界中存在并包含了通用图灵机(Universal Turing Machine),也就是说在生命游戏上是完全可能再虚拟嵌套一个生命游戏,下面这个图案是由Paul Rendell具体实现,分别在2000年和2010年用数以万计的细胞实现了图灵机和通用图灵机。

康威他们还成功设计了一个自我复制结构,会通过产生自身的更多拷贝而在空平面上殖民,每个包含了一个通用图灵机。不过这么复杂的家伙要长多大?他们估计是在10^13像素这个数量级,大概要曼哈顿岛那么大一块地。

目睹这些震撼而复杂的动态后,康威放出豪言:“只要给我足够大的模拟空间,等待足够长的时间,生命游戏中可能演化出任意你能想到的复杂事物,包括可以自我繁殖的细胞,以及能够撰写PhD论文的智慧生命!”

强烈推荐 生命游戏 Web版(由Copy大神开发) ,可在上面看到非常许许多多震撼的Pattern,事实上基本导入了 conwaylife(Wiki) 里的Pattern,还带有视角伸缩和演化速率调节功能。

我们可以在图灵机之中定向植入一枚“病毒”细胞,“一粒老鼠屎坏了一锅粥”——一个极其有序的图灵机迅速走向崩溃,直观地观察到这样设计出来的系统其实也非非常脆弱的。

我们可以得到这两个游戏世界的共性

围棋和生命游戏至今都吸引了许多人参与和沉浸其中,在游戏过程之中不断涌现出让人意想不到游戏可玩性和惊奇性,这两个游戏也揭示了沉浸和涌现的深刻联系。

因此我们考虑如何将二者结合,尝试开发出一种新的游戏,以下就是生命围棋的基本构思。

生命游戏与围棋在两个不同的层次上进行融合。具体地,在高层是围棋规则——宏观对弈;而在底层世界是按照生命游戏——微观演化。

两个层次的交互体现为:高层玩家的棋子实际上是一片固定尺寸的方格世界,按照多数原则分配黑色、白色方格。这些方格可以作为底层生命游戏的初始条件,并按照生命的规则进行演化。反过来,生命游戏的游戏结果会决定高层的围棋游戏行为。也就是说,在高层,玩家的地盘占领除了由围棋规则决定以外,还会受到底层生命游戏规则的影响。生命游戏使围棋子进行演化,并可能影响周围的棋盘世界。

高层每一个围棋棋子映射成底层M M生命游戏方格,每一次落子以一定的概率在M M格子内生成一定数量的活细胞,这个过程称作细粒化,反之方格转化为棋子过程称为粗粒化,因为底层生命游戏会生长、扩散、死亡,方格会一个格点可能同时包含两种以上的方格,以多数原则决定该棋子归属,类似于地方民主投票——少数服从多数。

底层由于也会常常出现两种颜色以上,因此生命游戏规则需演变成竞争性的生命游戏:

在开发过程中,生命围棋尝试了多人实时在线的游戏模式,简单来说有几个要点:

但这次尝试,在刚上线前几天日均有破万的点击数,我们从中可以看到玩家们一统江湖,王朝更迭的现象,但持续的可玩性还远远不够,新鲜度过去之后,演变成偷菜拼时间的游戏,用户迅速流失。

我们知道围棋的关键参数是19x19路棋盘,361个交叉点,据说当年围棋也是从9路、13路、15路、17路一直到19路演变过来,到了19路就停止了,得到19路关键系数。

而生命围棋规则里领军3个细胞创生,2或3个细胞继续存活无疑是生命围棋的关键参数,将这个换成其他数字都没有生命游戏如此多变好玩。

生命围棋里也有两个关键参数:

空间尺度:一个大方格对应多少小方格M

这是一个关键参数。当M较大的时候,底层的生命游戏规则将不会对围棋规则造成太实质的影响。当M较小的时候,整个游戏将变成生命游戏。

时间尺度:生命游戏演化速率T

假如不考虑计算机的运算速度,玩家下一步的时间如果为u,那么这段时间内,生命游戏演化的步数T就是一个关键变量。因为,如果T过大,则生命游戏的时间尺度就会过大,如果T小,那么生命游戏规则将来不得体现,围棋的时间尺度就会更大。总之,连续地调节T将会带来完全不同效果的游戏。

人脑的计算和反应能力,进行调节。

通过调整这个两个参数我们有可能体验感受完全不同的游戏。

生命围棋里的神之一手:

让我们展开想象,如果将M调到10 13次方,自复制细胞的量级;如果将M调到10 80次方——宇宙原子总和的数量级,,时钟滴答T=10^-34方接近普朗克尺度,那么神之一手这一落子,有没有可能从中涌现出智慧生命来,只是需要宇宙级计算能力的支持。

万事万物都有边界。细胞有细胞膜?人与人之间不能靠得太近,特别是在不熟的时候。地球是球状的,有限无界。宇宙有边界吗?如果有,那么边界外面是什么?滑翔机飞到了棋盘边缘,怎么办?不能凭空消失。

而围棋一旦边界相互连通,则所有的位置关系:天元、星位都不存在了,边角死活也将全部改写,“金角银边草肚皮”,所有的位置都是中腹,其实玩的已经不再是原来的围棋,影响了可玩性,但是值得探索。

生命围棋的边界目前是环状的,即上下互通,左右互通,如果是莫比乌斯环会怎么样?

边界其实深远的影响了局部与整体的关系,边界问题其实很深刻,通过边界可以探索空间的性质——自由度、连通性和相关性。

当然目前生命围棋的规则细节还没有确定和完善,还只是一个Demo,比如玩法和胜负条件都是开放的可变的,希望吸引更多同学,投入注意力,共同参与其中。

问题:

最后总结来一些比较水的思辨,围棋、生命游戏、生命围棋都是虚拟世界,棋和戏都是对我们的世界和人生的投影,而我们自身又是什么的投影呢?

我们的宇宙也许可以看成是一个规模超级巨大的元胞自动机,从游戏的视角来看我们的现实世界,我们自身也无时不刻不处在被基因、谜因、权力和经济规律所支配的游戏之中,通过能量、符号、语言、货币、情感等信息流,不断驱动着我们的进行计算和演化,最明显的现象和规律就是我们要吃喝拉撒睡,我们有马斯洛需求层次,我们个体要经历生老病死,组织有兴衰成败,而我们有没有可能从中脱离出来,迈向更高一个层次?就像当年单核细胞进化成多核细胞超级个体,单一个体又演化成群落,群落又诞生了人类的智能和文明,此刻我们已经正处在演化的轨道之上。

我们可能去尝试创造和实现一个更大的模仿游戏——Matrix?

附:出自xkcd的漫画

以上就是关于03_Python 使用Matplotlib绘图全部的内容,包括:03_Python 使用Matplotlib绘图、生命围棋——古老围棋与生命游戏的结合、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!