大数跨境
0
0

Python入门系列课程—04 小海龟走迷宫

Python入门系列课程—04 小海龟走迷宫 蘑菇云创造
2021-04-29
3
导读:第四课来了!

点击蘑菇云创造 关注我们


第四课-海龟迷宫


一、学习背景

经过前面第一单元三节课的学习,我们已经对python中的知识有了一定的了解,也学会了利用海龟绘图turtle库绘制各种有趣的图形。事实上,除了在界面上绘制图形外,我们还能利用turtle库实现与外设的交互,创作更好玩的游戏,让我们来试一试吧!

二、学习目标

本实践项目通过编写python程序来设计小海龟走迷宫的游戏。

知识目标:
1、理解函数的两种类型
2、理解python中的事件与事件的绑定
3、掌握函数创建与调用的方法

技能目标:
1、掌握使用turtle库在屏幕上书写文字的方法
2、掌握使用turtle库实现屏幕与键盘交互的方法

三、学习准备

1、电脑
2、mind+编程软件

四、学习实践

在本项目中,我们将创建两个python程序,之后运行程序,通过按动键盘上的不同按钮,使小海龟从起点开始沿着迷宫中的道路慢慢爬行,并最终走出迷宫。
1.创建一个带迷宫背景的屏幕并在迷宫上添加小海龟及起止点标记。
2.添加键盘与屏幕的交互功能。


任务1:创建迷宫程序设计

这个程序中,我们将创建一个带迷宫背景的屏幕,并在迷宫上添加小海龟及起始点标记。通过它,我们可以了解在屏幕上书写文字的方式。为此,我们将分三步创建这个程序。首先是分析任务,之后进行程序的编写,最后运行程序并观察效果。


1、任务分析

在这个任务中,我们首先需要创建一个屏幕,之后在屏幕上添加一张迷宫图(见附录2)。接下来我们需要创建本次小游戏的主角——小海龟,并使小海龟移动到中间区域作为起点。为了让小海龟在迷宫背景图上能一眼找到出口所在,我们再创建一个圆作为出口点并写上文字标记。


这里我们将采用顺序结构的方式编写程序。具体流程如下:


2、程序编写

在正式编写程序代码之前,我们首先要创建一个项目文件及python程序文件。

STEP1:创建与保存项目文件
启动Mind+,另存项目并命名为“小海龟走迷宫”。
 
STEP2:创建与保存python文件
创建一个python程序文件“任务一.py”,双击打开。
 
STEP3:编写程序
import turtle#导入turtle库#绘制背景-------------------------------------------screen = turtle.Screen()#赋值screen对象width,height = 700,520#设定宽度和高度screen.setup(width,height)#以设定好的宽和高来创建屏幕实体screen.title("小海龟走迷宫")#设定屏幕标题screen.bgcolor("white")#设定屏幕背景色screen.bgpic('迷宫4.gif')#添加迷宫背景图screen.delay(0)#屏幕延迟,设为0避免卡顿#绘制小海龟-----------------------------------------t=turtle.Turtle(shape='turtle')#创建海龟对象t.shapesize(0.9)#设定海龟尺寸缩小到正常的0.9倍t.speed(0)#设定海龟速度为最大t.color('blue')#设定海龟颜色为蓝色t.write("起点",font=('微软雅黑', 14, 'normal'))#设定海龟所在为起点#绘制终点-------------------------------------------yuan = turtle.Turtle('circle')#创建一个圆作为终点标志yuan.shapesize(0.5)#设定海龟尺寸缩小到正常的0.5倍yuan.color('red')#设定圆的颜色为红色yuan.penup()#抬笔yuan.goto(-300,120)#使圆移动到指定位置yuan.write("出口",font=('微软雅黑', 14, 'normal'))#添加终点标记
#设置键盘触发#往前def upMove(): t.forward(10)#前进10像素#往后def downMove(): t.backward(10)#后退10像素#右转def rightMove(): t.setheading(t.heading() - 10)#右转10°#左转def leftMove(): t.setheading(t.heading() + 10)#左转10°#清屏重置def clear_screen(): t.clear()#清屏 t.penup()#抬笔 t.home()#回到初始位置 t.pendown()#落笔
#输入按键,触发对应的函数turtle.onkeypress(leftMove,'a')#按压键盘a键实现左移turtle.onkeypress(rightMove,'d')#按压键盘d键实现右移turtle.onkeypress(upMove,'w')#按压键盘w键实现上移turtle.onkeypress(downMove,'s')#按压键盘s键实现下移turtle.onkeypress(clear_screen,'space')#按压键盘空格键实现清屏
#键盘监听开始turtle.listen()screen.exitonclick()#点击屏幕退出

3、程序运行

运行程序,我们看到:弹出了一个标题为“小海龟走迷宫”的屏幕,屏幕的背景是一幅迷宫图。屏幕中间是起点位置,一只蓝色的小海龟蓄势而发,屏幕的左侧有一个红色的圆,边上写有“出口”二字。



任务2:键盘触发程序设计

至此,无论是迷宫图还是小海龟,我们都已经成功创建了,在接下来这个程序中,我们将设置键盘触发,实现通过按下键盘上的按键来控制小海龟移动,达到出口。为此,我们依旧将分三步创建程序,首先是任务分析,之后进行程序的编写,最后运行程序并观察效果。
 

1、任务分析

在上个任务中,我们将屏幕的中心位置作为小海龟的起点,接下来我们只需在此基础上添加键盘的交互即可。
 
这里,为了能控制小海龟沿着迷宫移动出来,我们选择键盘上的“w”“s”“a”“d”四个键来控制小海龟前后左右四个方向。同时,由于小海龟在迷宫中可能会走“错”路,因此,我们还需一个空格键“space”来清空屏幕、回到起点。
在设定屏幕触发时,我们首先将创建五个函数,分别用来实现小海龟前进、后退、左转、右转、以及清屏归位的效果。之后再设定相应按键与函数之间的联系,由于我们要实时检测按键的按压与否,因此还需设置键盘的监听功能,整体上,采用顺序结构的方式编写,具体流程如下,

2、程序编写


STEP1:创建与保存python文件
新建一个python程序文件“任务二.py”,双击打开。
 
STEP2:编写程序
import turtle#导入turtle库#绘制背景-------------------------------------------screen = turtle.Screen()#赋值screen对象width,height = 700,520#设定宽度和高度screen.setup(width,height)#以设定好的宽和高来创建屏幕实体screen.title("小海龟走迷宫")#设定屏幕标题screen.bgcolor("white")#设定屏幕背景色screen.bgpic('迷宫4.gif')#添加迷宫背景图screen.delay(0)#屏幕延迟,设为0避免卡顿#绘制小海龟-----------------------------------------t=turtle.Turtle(shape='turtle')#创建海龟对象t.shapesize(0.9)#设定海龟尺寸缩小到正常的0.9倍t.speed(0)#设定海龟速度为最大t.color('blue')#设定海龟颜色为蓝色t.write("起点",font=('微软雅黑', 14, 'normal'))#设定海龟所在为起点#绘制终点-------------------------------------------yuan = turtle.Turtle('circle')#创建一个圆作为终点标志yuan.shapesize(0.5)#设定海龟尺寸缩小到正常的0.5倍yuan.color('red')#设定圆的颜色为红色yuan.penup()#抬笔yuan.goto(-300,120)#使圆移动到指定位置yuan.write("出口",font=('微软雅黑', 14, 'normal'))#添加终点标记
#设置键盘触发#往前def upMove(): t.forward(10)#前进10像素#往后def downMove(): t.backward(10)#后退10像素#右转def rightMove(): t.setheading(t.heading() - 10)#右转10°#左转def leftMove(): t.setheading(t.heading() + 10)#左转10°#清屏重置def clear_screen(): t.clear()#清屏 t.penup()#抬笔 t.home()#回到初始位置 t.pendown()#落笔
#输入按键,触发对应的函数turtle.onkeypress(leftMove,'a')#按压键盘a键实现左移turtle.onkeypress(rightMove,'d')#按压键盘d键实现右移turtle.onkeypress(upMove,'w')#按压键盘w键实现上移turtle.onkeypress(downMove,'s')#按压键盘s键实现下移turtle.onkeypress(clear_screen,'space')#按压键盘空格键实现清屏
#键盘监听开始turtle.listen()screen.exitonclick()#点击屏幕退出

3、程序运行


STEP1:点击运行,弹出一个迷宫背景的屏幕


STEP2:观察迷宫,找出一条从起点到终点的可行线路


STEP3:体验游戏
退出输入法,通过“w”“s”“a”“d”四个方向键移动小海龟,并依据其走出的线条来判断是否与迷宫之墙有交叉,继而确保小海龟始终在迷宫内的红色道路上前进。若小海龟“穿墙而过”,则需按下空格键重新开始。



五、巩固提高

项目回顾

本节课我们利用海归绘图(turtle)库,首先创建了一个迷宫背景的屏幕,之后设定了键盘与屏幕的交互功能,实现通过按下键盘上的按键来控制屏幕上小海龟的移动,最后,体验游戏,用键盘按键移动小海龟使其走出迷宫。

 

知识小结


程序
Python知识点
迷宫创建程序设计
键盘触发程序设计
事件与事件的绑定、函数的创建与调用
 

项目拓展

结合本节课设计的小游戏,想一想,是否可以通过改变小海龟每一步移动的距离及转弯的角度,使其更快得走出迷宫呢,自己来试一试吧?
 

附录


附录1python常用的内置函数


链接:
https://pan.baidu.com/s/1E67KZJzQgj0SS8DY2IUWcQ
提取码:
9tqn




蘑菇云创造

微信号 : mgystem

扫码关注,了解更多



推荐阅读:



点击 “ 原文链接 ” ,可下载源程序和图片
【声明】内容源于网络
0
0
蘑菇云创造
蘑菇云是DFRobot旗下专注于AI人工智能、创客、STEAM、劳动教育的科技创新教育品牌;以为中国培养下一代科技创新人才为使命,为学校提供k12全龄段科技创新教育解决方案。
内容 969
粉丝 0
蘑菇云创造 蘑菇云是DFRobot旗下专注于AI人工智能、创客、STEAM、劳动教育的科技创新教育品牌;以为中国培养下一代科技创新人才为使命,为学校提供k12全龄段科技创新教育解决方案。
总阅读1.9k
粉丝0
内容969