跳到主要内容

第 8 周,共 8 周

结课游戏制作

结课项目。学生规划并做出自己的 Python 小游戏,把一切结合起来:用变量记分、用 input 接收玩家的操作、用条件判断决定发生什么、用循环让游戏继续、用函数保持条理,再用列表加 random 让它保持新鲜。他们从一个能跑的骨架出发,把它改造成自己的作品。

预计时间
60 分钟(或分两次上)
项目
做出你自己的 Python 小游戏

核心思路

真正的程序是由你已经掌握的小块拼起来的,一次加一块。先有一份计划和一个能跑的骨架,然后加一个功能、测试它,之后再加下一个。一个能跑起来的小游戏就是真正的胜利——胜过一个永远跑不起来的大游戏。

你将学到什么

  • 写代码之前先在纸上规划一个小游戏。
  • 在一个程序里结合变量、输入、条件判断、循环、函数和随机。
  • 测试游戏,找出 bug,并随手修好。
  • 把骨架改造成属于自己的游戏。

新词汇

计划
在写代码之前写下的、关于程序该做什么的简短提纲。
骨架
一个能跑起来的小程序,你在它的基础上往上搭。
测试
用不同的输入运行你的程序,看看它是否正常。
bug
代码里的错误,会让程序做错事。

项目:做出你自己的 Python 小游戏

编辑下面的初始代码,然后按“运行”看看效果。想回到原始代码,随时点“重置初始代码”。

main.py
终端

运行你的程序来查看输出。

预期输出

你叫什么名字? Alex
欢迎你,Alex!猜中我的秘密数字就算赢。
选一个 1 到 5 的数: 2
不对,再试一次。
选一个 1 到 5 的数: 4
不对,再试一次。
选一个 1 到 5 的数: 5
Alex,你用了 3 次就猜中了!

小挑战

给玩家一点提示:在循环里,每猜错一次就打印「太小了」或「太大了」,就像你在第 5 周做的那样。

调试挑战

Python 指着 while 那一行报了语法错误。每一行开启代码块的语句——if、while、def——结尾都有同一个小符号。看看那行的末尾。

有错误的代码

secret = random.choice([1, 2, 3])
guess = 0
while guess != secret
    guess = int(input("选一个数: "))
查看答案
开启代码块的行要以冒号结尾:
while guess != secret:

拓展挑战

把骨架重新设计成你自己的游戏:一轮问答、一个带选择的故事,或者一个刷最高分的挑战。至少用上一个列表、一个函数和一个循环。

回顾思考

你用这门课的八个概念做出了一个游戏。你最依赖哪一周的概念?为什么?

教师笔记

鼓励他们先在纸上写计划:目标是什么、玩家输入什么、程序回应什么。因为游戏用到了随机,把「预期输出」当成一个示例即可。要多肯定那些能跑起来的小游戏,而不是跑不起来的宏大构想。用一小段时间让学生互相玩对方的游戏,是很有力的收尾。

要带这节课吗?请查看 教师与图书馆员指南 ,里面有上课流程、常见错误,以及一个不用电脑的备用活动。

这节课完成了吗?标记为已完成,解锁下一周。