单元五
第17课 把游戏拆成多个函数

一、任务目标
理解把开始、一回合、结束分别写成函数,主程序只负责调用顺序;能说明拆分后更易阅读和修改。
二、我们要学什么
- 学习要点:把游戏拆成多个函数|结构
- 本课过关:能完成:说出主程序通过调用组织流程;载入体验程序,指出开始、回合、结束是不同函数;改其中一个函数体,只有对应阶段变化。
- 示例对齐:体验题对应本课「编程体验」;完整代码对应编程题1;补全与独立编写对应编程题2–3。均在 Mixly 图形化积木中完成。
三、本节要点
本课要认识用函数拆分游戏。重难点是先规划各函数做什么,再写主程序调用。要点对齐「把游戏拆成多个函数|结构」。
1读场景明确真实任务
2对要点把游戏拆成多个函数|结构
3载入运行图形化积木
四、解题思路
任务:用多个函数拼出一局游戏。请分清:每个函数负责哪一段。
本课主要用到:屏幕输出。
- 1明确任务「拆成几段」:开始、回合、结束应分开。
- 2分别定义函数,主程序按顺序调用。
- 3只改一个函数后重跑,确认其余阶段保持不变。
流程示意(可对照左侧文字)
五、图形块讲解
本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。
六、知识点讲解
把游戏拆成多个函数:开始界面、一回合逻辑、结束结算各写一段,主程序只调用。本课练习拆分——修改某一阶段不必翻遍全部积木。仍须先定义后调用。
先弄清:一段一个函数;再进编程练习对照调用顺序。
七、编程练习
用下拉列表切换题目;下方 Mixly 默认显示图形化积木。请在 Mixly 工具栏点「运行」;「检查」读取 Mixly 代码判题。
先阅读并运行,感受游戏循环。
参考代码(对照抄写到下方 Mixly)
def show_title():
print("==== 迷你冒险 ====")
def ask_action():
return input("1探路 2休息 0退出:")
def do_explore(state):
print("你发现了宝箱!")
state["gold"] = state["gold"] + 10
def do_rest(state):
print("你休息了一会儿。")
hp2 = state["hp"] + 15
if hp2 > 100:
hp2 = 100
state["hp"] = hp2
def main():
show_title()
state = {"hp": 80, "gold": 0}
while True:
print("HP", state["hp"], "金币", state["gold"])
act = ask_action()
if act == "0":
print("下次见!")
break
elif act == "1":
do_explore(state)
elif act == "2":
do_rest(state)
else:
print("无效指令")
main()
正在载入编程环境
正在载入 Mixly 图形化编程环境…
八、课堂练习
先完成两道正误判断,再做其余题目;选出后点「检查」。
判断:把游戏拆成多个函数后,修改某一阶段不必翻遍全部积木。
判断:把全部语句塞进一个巨大函数,就叫做「单一职责」。
把游戏拆成多个函数,主要目的是?
「主程序」在本课更像?
单一职责更接近哪句?
九、本节小结
本课主题是用函数拆分游戏:开始、回合、结束分开写,主程序负责调用顺序。