python玩与学 | 有你好看
公益教程 | 代码俱乐部 | 玩物励志
我们会用几期教程为大家做一个“迷宫”游戏。今天我们先试图画一个迷宫,什么样子的?请看下面:
至于迷宫里面怎么设置“弯弯绕”,代码都能按照你的要求改变。今天教大家怎么样画出这样的迷宫来。我们要在代码中先设计出上面迷宫的“草图”,然后通过寻找一种“映射”关系来将它“投射”到画布上。怎么弄呢?先来看下关于“列表”的准备知识:
列表里找“内容”
其实就是说的“索引”
上一节
《装东西的“容器”》
一文对“列表索引”有了介绍。其实最主要的就是要记住:索引是从0开始的——列表里的第一个东西是“***[0]”,其实对字符串的索引是和列表一样一样的。比如下面这个s字符串:
我想取到“y”这个字母,怎么弄呢?当然是s[1]就可以了。但如果是这样的一个字符串的列表呢?我还是想取“y”这个字母,怎么写?
首先先取到“python”这个字符串——a[0]是吧;a[0]里再取“y”,那就是a[0][1]了,理解了吗?
迷宫布局
盖房子之前都要先画图纸
画了张迷宫的局部图,下半部分没有画出来,最左上角的的方块的坐标我想设定为(-288,288)——为什么是它?因为我想这么设置的(整体是700*700大小,坐标系原点在中心位置,那一半就是300,再刨除边儿一点,就取了288);方块和方块之间的距离是24,上下都一样。
编写代码
用到好多知识
看了迷宫布局你该知道我想怎么画了!对了,一个方块一个方块的画——用class创造一个“方形”的乌龟,然后让他从左到右一步一步走,走一步stamp(跺脚踩个印儿)一下,走一步再stamp一下.......直到画完。我把代码分成了三部分,你把三部分连成一个整体执行就得到最后结果了。
第一部分代码
第一部分代码做了一些“背景”设置(bgcolor—背景颜色;title—标题;setup—大小)。像上面说的一样,我设置的大小是700*700。然后我设计了一个叫做“Pen”的class(类)。关于class的内容不知道的可以点击这里:
第二部分代码
第二部分代码我们建了一个叫做“level_1”的列表——呵呵,这个列表不错吧?已经被你给看出来了——我用"XXX"已经摆出来了一个“字符迷宫”(如果你不喜欢这个迷宫样式,你自己改吧,交给你了!),好像忘记告诉你一个查询列表长度的函数:len()——len(level_1)就是“level_1这个列表里装了多少个东西”。数一数上面的行数就知道了(25个)。
第三部分代码
第三部分代码是关键,如何将上面我们搭的“字符串迷宫”草稿给它一 一对应的画出来?建了一个函数叫“setup_maze”。基本想法就是——一个一个的取level_1列表里的内容,如果取到的内容是“X”,那就让乌龟走到那里面去stamp跺脚踩个印儿。还有就是有一个无形的坐标要一直跟着...要根据上面的迷宫草图写出一个公式:
screen_x = -288 + (x*24)
screen_y = 288 - (y*24)
里面有两个for循环,而且是嵌套的,外层的for循环的变量y依次取“从0到24”;里层的for循环的变量x依次取值也是:“从0到24”。想一想是这样吧?
三部分代码连起来执行一下,得出最终结果:
迷宫图
领取专属 10元无门槛券
私享最新 技术干货