单元五

第18课 简单class——给角色做一张卡片

任务场景:角色卡片聚名字与生命
任务场景:角色卡片聚名字与生命
原理图:class 像角色卡——名字、生命和动作放在一起
原理图:class 像角色卡——名字、生命和动作放在一起

一、任务目标

用 class 给角色做一张卡片,能显示生命、受伤和治疗。

二、角色 = 数据 + 行为

前面用零散变量 namehp;概念上可以用 class 收成一张「角色卡」。Mixly Online 里我们用字典 + 函数实现同样效果(积木更完整):

  • make_hero:创建角色卡(字典),写好名字和生命
  • hero["hp"]:卡上自己的生命值
  • hurt / heal:对这张卡做动作的函数

调用 hurt(player, 10),比到处改一堆变量更不容易乱。正文里的 class / self 概念仍然成立,编程练习用字典写法。

三、解题思路

任务:用 class 给角色做一张卡片,能显示生命、受伤和治疗。 先想清楚:输入是什么、处理后得到什么、屏幕上应出现什么。

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

  1. 1明确任务「用 class 给角色做一张卡片,能显示生命、受伤和治疗。」:运行后你希望看到什么结果(文字、图形或计算结果)。
  2. 2用「打印」积木把结果说出来,确认屏幕上出现预期内容。
  3. 3写出判断条件:什么情况下走 A,什么情况下走 B。
  4. 4把可复用的一段动作做成函数,主程序里调用它。
  5. 5对照参考积木(或代码)跑通后,只改一个参数,观察结果如何变化。

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

任务:用class…用「打印」积木把结果说出来,…写出判断条件:什么情况下走…把可复用的一段动作做成函数…对照参考积木(或代码)跑通后,只改一…

四、图形块功能讲解

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

五、知识点讲解

—给角色做一张卡片:弄清本课概念定义、适用边界与可观察现象;用例子或仿真验证后再练习。

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

六、编程练习

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

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

参考代码(对照抄写到下方 Mixly)
def make_hero(name, hp):
    return {"name": name, "hp": hp}

def status(hero):
    print(hero["name"], "生命", hero["hp"])

def hurt(hero, dmg):
    hp2 = hero["hp"] - dmg
    if hp2 < 0:
        hp2 = 0
    hero["hp"] = hp2

def heal(hero, n):
    hero["hp"] = hero["hp"] + n

player = make_hero("小飞", 100)
status(player)
hurt(player, 25)
status(player)
heal(player, 10)
status(player)

七、课堂练习

选出你认为正确的一项,再点「检查」。

  1. 本课用字典当角色卡时,hero 参数更接近?

  2. make_hero 的主要时机是?

  3. hurt(player, 25) 更接近?

八、本节小结

class 把属性与方法打包成角色。