单元三

第12课 综合:简易RPG回合战

任务场景:回合战——状态 + 技能函数 + 循环
任务场景:回合战——状态 + 技能函数 + 循环

一、任务目标

综合运用变量、循环、分支、列表或字典与函数,完成一回合或多回合的攻防。

二、我们要学什么

  • 学习要点:简易RPG回合战|综合
  • 本课过关:能完成:说出一回合包含选择、更新血量、打印结果;载入体验程序,指出战斗在血量归零或回合结束时停止;改伤害后战况跟着变。
  • 示例对齐:体验题对应本课「编程体验」;完整代码对应编程题1;补全与独立编写对应编程题2–3。均在 Mixly 图形化积木中完成。

三、本节要点

本课要综合已学结构完成战斗。重难点是每回合都要更新状态并判断是否结束。要点对齐「简易RPG回合战|综合」。

1读场景明确真实任务
2对要点简易RPG回合战|综合
3载入运行图形化积木

四、解题思路

任务:完成简易回合战斗。请分清每回合的输入、更新与输出。

本课主要用到:屏幕输出。

  1. 1明确任务「打完一局」:须有开始、回合更新与结束条件。
  2. 2每回合读取或选择动作,更新双方生命值并打印。
  3. 3改伤害或初始血量后重跑,观察回合数是否变化。

流程示意(可对照左侧文字)

任务:打完一局每回合读取或选择动作改伤害或初始血量后重跑

五、图形块讲解

本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。

六、知识点讲解

回合战把游戏循环落到每一回合:选择动作→更新生命值→打印战况,直到一方生命值归零。本课综合变量、分支、循环与函数,不引入新语法。

先弄清:每回合都要更新并判断结束;再进编程练习对照战况。

七、编程练习

用下拉列表切换题目;下方 Mixly 默认显示图形化积木。请在 Mixly 工具栏点「运行」;「检查」读取 Mixly 代码判题。

先阅读并运行,感受游戏循环。

参考代码(对照抄写到下方 Mixly)
skills = ["攻击", "治疗"]
print("技能:", skills[0], "/", skills[1])

def attack(hp, power):
    hp2 = hp - power
    if hp2 < 0:
        hp2 = 0
    return hp2

hero = 40
foe = 40
round_n = 1
while hero > 0 and foe > 0:
    print("==== 第", round_n, "回合 ====")
    foe = attack(foe, 11)
    print("敌人生命", foe)
    if foe <= 0:
        break
    hero = attack(hero, 7)
    print("英雄生命", hero)
    round_n = round_n + 1

if hero > 0:
    print("你获胜了!")
else:
    print("战败了…")

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:双方生命都大于 0 时继续战斗;有一方归零则结束。

  2. 判断:只要循环打印「战斗开始」而不改血量,也算完整的回合战。

  3. 「当双方生命都大于 0」表示?

  4. 技能名放在列表里,便于?

  5. 用函数计算扣血,主要是为了?

九、本节小结

本课主题是回合战综合:每回合选择、更新、输出,直到战斗结束。