今天我们的python课堂给大家带来一个迷宫大冒险。先看视频,然后我们还是按照我们的习惯,用拆解思维去拆解分析这个作品的具体任务流程(先自己拆解再看我后续的内容)3、小猫的行动路线会形成轨迹,并且每一关的颜色都不一样4、每次换迷宫的时候小猫会回到迷宫入口,并且会清空所有轨迹或者说我问各位同学一个问题,我最先应该完成什么才能让我的迷宫冒险能够开始玩,又有哪一部分属于扩展优化的项目呢?还是先自己想一想,然后有一定想法和思路了再继续看下去。我们的迷宫任务,肯定是先要完成一次迷宫挑战,也就是先添加一张迷宫背景图,然后让小猫动起来,并且留下轨迹,看能否完成第一次迷宫挑战。如果我们顺利完成了第一次挑战,那么就可以再添加新的迷宫,添加颜色变化的任务了。所以接下来我们就按照我们分析的开始程序的编写(背景和角色图片可以在文末的链接自取哈)。今天我们用的还是海龟绘图模块,所以我们还是导入海龟,并且起一个名字叫t。添加背景的函数叫做bgpic(),这个函数用来从本地的文件中导入一张图片当做背景。这里要注意,程序保存的位置要和我们的图片在同一个文件夹里,要不然会出现找不到文件的错误。就像我想安排张三同学去给我拿一根粉笔,我得确保张三在教室里,我才能让他去拿粉笔,我们的程序也必须和图片在一个文件夹才行。今天的角色也不是用的海龟默认的箭头,而是使用的小猫角色,那怎么把我们的角色修改成小猫的样子呢?我们的图片名字叫做“p1.gif”,所以可以用register_shape()函数就可以把我们本地的图片拿到程序里。register其实是注册的意思,我们注册游戏账号,就可以登录游戏了,同样的,把图片注册到程序中,就可以在程序中使用了。然后shape()这个函数就可以改变角色的形状,我们导入哪张图片就把形状改成哪张图片的样子就可以了。导入了背景和角色以后,那我们就要让角色移动到一个初始位置,什么初始位置?移动的逻辑还是先抬笔避免留下痕迹,然后把笔移到指定位置,然后落笔,因为我们要通过落笔来形成海龟的轨迹,从而判断角色是否按照我们正常的迷宫在行走的。那在这里还要添加一个speed函数,让速度变得快一些,让游戏更加流畅,速度也要在移动之前设置。下一步就是让我们的角色动起来,我们用键盘上的上下左右键控制角色移动。我们需要一直检测哪个键按下去了,哪个键没按下去,并且要给某一个指定键按下去了以后要干什么事情做一个设定。我们可以使用t.listen()的函数来监听键盘,这个函数可以获取到键盘上哪一个按键有没有按下去。那接下来就要定义一下我按下去哪个键要干什么事儿了。我们想让人往前走,就定义一个函数叫做“shang”,表示向上。这里setheading()是设置朝向的意思,forward()我们之前学过,让角色向前移动一定的步数。我们的海龟朝向是这么设定的,一开始进入海龟模块面向的最右方是0°方向,正上方是90°方向,左方是180°,下方是270°。所以上面两行代码的作用就是让小猫面向上方,然后移动20步。那角色移动的功能已经设置好了,怎么把按键和这个移动函数对应起来呢?就要用到t.onkey()函数,这个函数可以把我们已经写好的函数绑定给我们规定的按键,用在这里就是把“shang”这个函数绑定给键盘上的“上按键”。要注意的就是上下左右键对应着up,down,left,right,这几个单词的首字母是要大写的,这是程序设计的时候已经规定好的。那一个按键绑定好了以后,向下和左、右的按键,各位就可以根据向上移动的功能,自己去尝试编写了,参考代码如下:那接下来就是优化扩展的任务了,我们可以让游戏里添加多个图片当做背景,逻辑就和角色移动很像了。先定义切换背景的函数,然后绑定给某一个按键就可以了,在这里我用1、2、3、4键来控制四张背景图的切换,因为我只找了4张图,如果想要更多的关卡,可以自己再去找迷宫背景然后用上就可以了。清空屏幕上已经有的画笔痕迹,然后抬笔,移动到起点位置,再落笔,之后就是改变颜色,和改变背景。这里换颜色和换背景的代码可以在函数最前面,也可以在最后面,因为先换和后换没有影响,但是清空屏幕和抬笔、落笔的顺序是不能变的,要不然轨迹就可能会一直留在原地。clear()函数就是清空屏幕上所有画笔痕迹的功能。那最后把我们的“m1”函数绑定给“1”按键就可以了。接下来我们最后的任务,就是写其他背景的函数,要注意,函数名要修改,颜色和背景图都要改,这些各位可能都能想到。有还有一个,因为每张迷宫的起点可能不完全相同,所以我们的起点坐标也要根据实际效果进行微调,左右调节就改x(第一个数),上下调节就改y(第二个数)上图给了大家一个迷宫2的参考程序,其他的迷宫就靠各位自己来实现啦。首先是拆解思维来分析任务逻辑,把大问题拆分成小问题,同时也有顺序思维,让我们的程序按照顺序执行才能完成任务。今天还用了一个思维,叫做第一性原理,今天是不是带大家分析了我们这个任务哪个部分是必要的,哪个部分是优化扩展的呀?这就属于第一性原理的应用,第一性原理是用来思考一件事情最本质最基础的部分是什么,今天我们这个作品,本质是让小猫角色按照我们规定的路线前进,完成挑战,所以我们优先完成这一部分的逻辑。在我们生活中,遇到一些事情的时候,我们也可以用第一性原理来分析这件事最重要的是什么,比如锻炼身体,本质是什么?不是,我们在家里也可以进行锻炼,所以只要积极的动起来,就能有一定的锻炼效果,这也是第一性原理的应用。迷宫大冒险百度网盘素材:
链接: https://pan.baidu.com/s/1d7OYLauntDxO9mzUYwK3kA?pwd=6ypn 提取码: 6ypn