单元四

第14课 random——随机事件与暴击掉落

任务场景:随机暴击与宝箱掉落
任务场景:随机暴击与宝箱掉落
原理图:随机事件——伤害、暴击、掉落
原理图:随机事件——伤害、暴击、掉落

一、任务目标

理解 random 按范围或概率产生不同结果,能模拟伤害、暴击与随机掉落,使每局不完全相同。

二、我们要学什么

  • 学习要点:随机事件|暴击与掉落
  • 本课过关:能完成:说出 randint 给整数、random()<0.25 约四分之一概率;载入体验程序,指出多次运行结果可能不同;改暴击概率后,暴击出现频率跟着变。
  • 示例对齐:体验题对应本课「编程体验」;完整代码对应编程题1;补全与独立编写对应编程题2–3。均在 Mixly 图形化积木中完成。

三、本节要点

本课要认识随机。重难点是先列清可能发生的事,再交给概率去挑,而不是「随便写」。要点对齐「随机事件|暴击与掉落」。

1读场景明确真实任务
2对要点随机事件|暴击与掉落
3载入运行图形化积木

四、解题思路

任务:模拟伤害、暴击与掉落。请分清:可能结果有哪些,各自大概多常发生。

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

  1. 1明确任务「每局有差别」:伤害或掉落应可能不同。
  2. 2用 randint 或概率判断生成结果并打印。
  3. 3连续运行几次,确认结果不是每次完全一样。

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

任务:每局有差别用 randint 或概率判断生成结果并打印连续运行几次,确认结果不是每次完全一样

五、图形块讲解

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

六、知识点讲解

随机让每局不一样。本课用伤害、暴击和掉落作例子——在范围内取整数伤害;按概率决定是否暴击;从掉落表里抽一件。须先列清可能事件,再按概率选择。

先弄清:有哪些可能、概率大概多少;再进编程练习对照多次运行。

七、编程练习

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

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

参考代码(对照抄写到下方 Mixly)
import random
hp = 40
print("遭遇史莱姆 生命")
print(hp)
hit = random.choice([6, 7, 8, 9, 10, 11, 12])
print("伤害")
print(hit)
roll = random.choice(["暴击", "普通", "普通", "普通"])
if roll == "暴击":
    hit = hit * 2
    print("暴击伤害")
    print(hit)
else:
    print("普通一击")
hp = hp - hit
if hp < 0:
    hp = 0
print("剩余生命")
print(hp)
drops = ["药水", "金币", "无"]
print("掉落")
print(random.choice(drops))

八、课堂练习

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

  1. 判断:暴击把伤害乘 2,属于更新阶段:先算出这一击的伤害,再改血量。

  2. 判断:只要导入了 random,每一次攻击都一定会暴击。

  3. 暴击把伤害乘 2,属于游戏循环的?

  4. 从掉落列表里「随机取一项」,适合做?

  5. 希望大约 10% 的攻击暴击,应?

九、本节小结

本课主题是随机事件:用随机数模拟伤害、暴击与掉落。先列事件,再交给概率。