🟢 领航员 🤖 家长演示

🧙 第 4 课:仙人指路

第 4 课:🧙 仙人指路

🎯 学习目标

  • 掌握 for 循环range() 函数
  • 深入理解 f-string 格式化
  • 了解 continue 关键字
  • 实现 NPC 互动问答完整冒险循环

📚 家长预习指南(5 分钟)

本课核心要点

  • for i in range(3): — "重复做 3 次",像 Scratch 的"重复执行 N 次"
  • range(3) 生成 0, 1, 2 三个数
  • for 是"固定次数的循环",while 是"直到条件终止的循环"
  • NPC = 非玩家角色(仙人、书生等),用 if 判断谜语答案

常见问题

  • range(3) 从 0 开始 → 生成 0, 1, 2(不包含 3)
  • for 和 while 什么时候用哪个 → "知道重复几次用 for,不知道用 while"

您的角色

🟢 领航员 → 观察孩子是否能独立写 3 行以上代码(过渡信号)

过渡观察

到本课结束时,如果孩子能独立写出 3 行以上的正确代码,下一课可以开始过渡到 🟡 副驾驶模式。


🔗 Scratch ↔ Python 对照

Scratch 积木 Python 代码 说明
重复执行 N for i in range(N): 精确执行 N 次
计数器 for i in range(3): 中的 i i 自动变成 0, 1, 2

🧠 知识桥梁:"还记得 Scratch 里'重复 3 次'积木吗?Python 的 for i in range(3) 就是一样的——让电脑重复做 3 次!"


📖 活动模块

模块 A — for 的力量(15 分钟)

目标

用 for + range 实现"每条路线 3 次遭遇"的循环

  1. 对比 while 和 for:
  2. while:"不知道重复几次,直到条件不成立"
  3. for:"知道重复几次,精确控制"

  4. 练习 for 循环:

for i in range(3):
    print(f"第 {i + 1} 次遭遇...")
  1. 引入 random.choice():
encounter_type = random.choice(["妖怪", "仙人"])
print(f"遇到了{encounter_type}!")

模块 B — 仙人问答(20 分钟)

目标

实现 NPC 互动——仙人出谜语

npc_name = "白胡老者"
riddle = "什么东西越长越短?"
answer = "蜡烛"

print(f"\n🧙 一位{npc_name}出现在面前!")
print(f""{npc_name}微笑着说'{riddle}'"")
player_answer = input("你的答案是:")

if player_answer == answer:
    reward = 15
    print(f"✨ 答对了!{npc_name}赏你 {reward} 银两!")
else:
    reward = 3
    print(f"😊 答错了,不过{npc_name}见你诚恳,赏你 {reward} 银两。")
silver = silver + reward

模块 C — 完整冒险(10 分钟)

目标

将路线→3 次遭遇→结算串联成完整循环

for i in range(3):
    encounter = random.choice(["妖怪", "仙人"])
    if encounter == "妖怪":
        # ... 战斗逻辑
    else:
        # ... 仙人问答逻辑

🎮 运行游戏:第一次体验完整冒险循环——选路线→3 次遭遇→展示数据!


🤖 AI 环节(家长演示→过渡)

阶段

🟢→🟡 过渡 — 家长可以开始让孩子参与提问

任务

让 AI 出几道适合四年级孩子的谜语

示例提示词

出 4 道简单的中国传统谜语,每道给出谜面和答案,难度适合四年级小学生。


✅ 最小完成目标

  • [ ] 使用 for + range 实现 3 次遭遇循环
  • [ ] 实现 NPC 问答(问谜语、判断答案)
  • [ ] 完成一次完整冒险循环(选路线→3 次遭遇→展示数据)

⭐ 扩展挑战

  • random.choice() 随机决定遇到妖怪还是仙人
  • 不同路线有不同难度的妖怪
  • 用 continue 跳过无效遭遇

🐛 常见错误提示

错误 原因 解决
TypeError range() 参数不是整数 确保 range() 里是数字
for 只执行了一次 循环体忘了缩进 检查 for 下面的代码是否都缩进了

💻 代码查看

# ==========================================
# 🎮 少年侠客闯江湖 - 第 4 课
# 📚 本课知识点:for 循环、range()、f-string 深入、continue
# ==========================================

import random

# --- 前面课程的代码 ---
print("=" * 40)
print("  ⚔️  少年侠客闯江湖  ⚔️")
print("=" * 40)

name = input("\n少年侠客,请赐名:")
hp = 100
attack = 15
silver = 0

print(f"\n少年侠客【{name}】,踏入了江湖...")

# 路线选择
print("\n前方出现三条路:")
print("  1. 🏔️ 忘忧山    2. 🐉 龙王洞    3. 👻 幽灵峰")
choice = input("请选择路线(1/2/3):")

if choice == "1":
    print(f"\n{name}走上了忘忧山...")
elif choice == "2":
    print(f"\n{name}踏入了龙王洞...")
elif choice == "3":
    print(f"\n{name}登上了幽灵峰...")
else:
    print("⚠️ 迷路了!默认走忘忧山...")

# --- 本课新内容:仙人指路 ---

# TODO: 用 for i in range(3) 实现 3 次遭遇循环
# 每次遭遇随机为妖怪或仙人

# TODO: 遇到妖怪 → 回合制战斗(复用第 3 课逻辑)

# TODO: 遇到仙人 → 出谜语,判断答案
# 提示:npc_name = "白胡老者"
#       riddle = "什么东西越长越短?"
#       answer = "蜡烛"

# TODO: 3 次遭遇结束后,展示冒险数据