单元三

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

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

一、任务目标

做出一局简易 RPG 回合战。

二、把零件组装成战斗

本课把前面模块拼起来:

  • 列表保存技能名
  • 函数计算扣血
  • while 控制回合,直到一方生命归零

这就是很多 RPG 战斗的缩影:数据(状态)+ 规则(函数)+ 循环(回合)。

三、解题思路

任务:做出一局简易 RPG 回合战。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。

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

  1. 1明确任务「做出一局简易 RPG 回合战。」:运行后你希望看到什么结果(文字、图形或计算结果)。
  2. 2用「打印」积木把结果说出来,确认屏幕上出现预期内容。
  3. 3写出判断条件:什么情况下走 A,什么情况下走 B。
  4. 4用 while 保持程序持续运行或等待条件变化。
  5. 5把可复用的一段动作做成函数,主程序里调用它。
  6. 6对照参考积木(或代码)跑通后,只改一个参数,观察结果如何变化。

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

任务:做出一局简易…用「打印」积木把结果说出来,…写出判断条件:什么情况下走…用while保持程序持续运…把可复用的一段动作做成函数…

四、图形块功能讲解

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

五、知识点讲解

综合:简易RPG回合战:弄清本课概念定义、适用边界与可观察现象;用例子或仿真验证后再练习。

先弄清本课输入与输出,再进编程练习对照现象。

六、编程练习

用下拉列表切换题目;下方 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. 用函数算扣血,主要是为了?

八、本节小结

RPG 回合战 = 状态 + 函数规则 + 循环。下一单元进入文字玩法进阶:字符串、随机事件、存档与排行榜。