少儿编程Python实战课:当小海龟学会了“思考”,带孩子用代码玩转密室逃脱!
哈罗,各位大朋友小朋友们!在前面的课程里,我们学会了用 if 语句让电脑做选择,也养了一只会在屏幕上画画的小海龟(Turtle)。
如果把这俩结合在一起,会发生什么神奇的化学反应呢?
答案是:我们可以做游戏啦!今天,我们不讲枯燥的语法,直接带孩子们用代码给小海龟设计两场惊险刺激的“密室逃脱”和“沙漠求生”!
📍 神奇的第一招:给小海龟装上“GPS定位”
在玩游戏之前,我们得先确保小海龟知道自己在哪儿。
在 Python 里,我们可以使用 pos() 函数来判断当前画笔(小海龟)的位置。 大家可以把它想象成小海龟身上自带的 GPS 定位系统。我们都知道,小海龟刚出生时,默认的初始位置是在画布正中央,也就是坐标 (0, 0) 的地方。
我们可以用 if...else 语句来跟它打个招呼:
import turtle
x, y = turtle.pos() # 返回当前位置的坐标x和y
# 判断小海龟是不是在老家(0,0)
if x == 0 and y == 0:
print('Yes')
else:
print('No')
turtle.done()
运行一下,因为小海龟还没动弹,屏幕下方的控制台就会乖乖吐出一个
Yes!🕵️♂️ 游戏一:听暗号,走出迷宫!
现在,小海龟被困在了一个隐形的迷宫里。想跑出来,必须听懂大喇叭里传来的“暗号数字”。
迷宫的逃亡规则是这样的:
我们要让用户随机输入 2 个数字当暗号,然后用红色的画笔画出小海龟的逃跑路线,最后打印出它停在了哪个坐标!
带孩子敲下这段魔法代码:
import turtle
# 1. 听暗号:输入两个整数
a = int(input('提示数字:'))
b = int(input('提示数字:'))
# 2. 换上一支红色的画笔
turtle.pencolor('red')
# 3. 破解第一个暗号 (a)
if a % 3 == 1:
turtle.backward(100)
turtle.right(90)
if a % 3 == 2:
turtle.forward(100)
turtle.left(90)
# 4. 破解第二个暗号 (b)
if b % 3 == 1:
turtle.backward(100)
turtle.right(90)
if b % 3 == 2:
turtle.forward(100)
turtle.left(90)
# 5. 汇报最终位置
print(turtle.pos())
turtle.done()
快去试试输入不同的数字,看看小海龟会画出怎样奇形怪状的逃跑路线吧!
🐪 游戏二:沙漠求生大考验
接下来是个更惊险的故事:探险队在长长的、宽度为 200km 的矩形沙漠里迷失了方向。
在没有参照物的情况下,人是很难走直线的。已知探险队每天能走 20km,但总是会不知不觉比原来向右偏移 10 度。 他们从坐标原点 (0, 0) 出发,笔直朝上走,走了六天后,到底有没有成功走出这片沙漠呢?
这里教大家一个新绝招:turtle.write() 函数!以前我们都是用 print() 在控制台里打印文字,现在用了 write(),文字会直接像贴纸一样贴在小海龟的画布上哦!
来看看探险队的生死路线:
import turtle
turtle.color('blue')
turtle.left(90) # 先转个身,面朝上方(北方)准备出发
# 第一天:右偏10度,走20km
turtle.right(10)
turtle.forward(20)
# 第二天
turtle.right(10)
turtle.forward(20)
# 第三天
turtle.right(10)
turtle.forward(20)
# 第四天
turtle.right(10)
turtle.forward(20)
# 第五天
turtle.right(10)
turtle.forward(20)
# 第六天
turtle.right(10)
turtle.forward(20)
# 审判时刻:拿出GPS看看Y坐标
x, y = turtle.pos()
# 因为判断走出沙漠的界限是100km,所以Y跑大于等于100才算跑出去
if y >= 100:
turtle.write('走出了沙漠') # 直接写在画布上
else:
turtle.write('还未走出沙漠') # 直接写在画布上
turtle.done()
运行一下就会发现,因为天天往右偏,探险队走了一个大大的圆弧,第六天的时候,画布上会无情地显示出:“还未走出沙漠”!
📝 课后亲子小挑战
今天的实战是不是特别像在做小游戏?通过让小海龟结合 if 语句,孩子们不仅复习了条件判断,还深刻体会了坐标和方向在编程里的奇妙作用。
留个小作业:在上面的沙漠求生里,探险队走了 6 天没出去。那如果给代码再加上一天(第 7 天,也就是再手动加一遍右转 10 度、前进 20),他们能走出去吗?