🗺️ 计算机科学 4
Loading...
🗝️ 📜 ⚔️

练习字典与综合能力

CodeCombat CS4 Level 30-31

准备好成为编程小法师了吗?
让我们复习所有的魔法咒语!

📦 字典:魔法宝箱

🗃️

生动解释:
字典就像一个有魔法的宝箱!每个格子里都有一个钥匙(key)和一个宝藏(value)

想要找到宝藏?必须先找到正确的钥匙!

# 这是一个坐标字典,像藏宝图!
target = {"x": 48, "y": 40}

# 英雄信息字典
hero_info = {
    "name": "小勇士",
    "health": 100,
    "gold": 50
}

# 命令士兵去这个位置
hero.command(soldier, "move", target)

🎠 循环:旋转木马

🔄

生动解释:
循环就像游乐场的旋转木马!

木马会一圈一圈地转,直到音乐停止。代码也会一遍遍执行,直到条件不满足。

# 只要还有钱,就继续召唤士兵
while hero.gold > hero.costOf("soldier"):
    hero.summon("soldier")

# 遍历所有士兵 (一圈一圈数)
soldierIndex = 0
while soldierIndex < len(soldiers):
    soldier = soldiers[soldierIndex]
    # 做一些事情...
    soldierIndex += 1

🚦 条件判断:红绿灯

🚥

生动解释:
条件判断就像马路上的红绿灯!

绿灯 (True) 就前进,红灯 (False) 就停止。程序根据条件决定走哪条路。

# 如果发现硬币(绿灯),就去收集
coin = hero.findNearest(hero.findItems())

if coin:
    hero.move(coin.pos)

# 如果发现敌人(红灯危险!),就攻击
enemy = hero.findNearest(hero.findEnemies())

if enemy:
    hero.command(soldier, "attack", enemy)

👫 列表与索引:排排坐

List (列表): 像一群排队的小朋友。

Index (索引): 像教室里的座位号

["A", "B", "C"]
 0    1    2
# 找到所有朋友,排成一个列表
soldiers = hero.findFriends()
# 结果像: ["士兵1", "士兵2", "士兵3"]

# 谁坐在 0 号座位?
soldier = soldiers[0] # 第一个士兵

# 谁坐在 1 号座位?
soldier = soldiers[1] # 第二个士兵

🧮 算术 & 📍 坐标

➕ 算术运算 (小卖部)

像在小卖部买东西,计算钱够不够。

if gold > 20:
    hero.gold -= 20 # 花掉20金币

🗺️ 坐标系统 (棋盘)

x 是左右,y 是上下。

# 定义目标: 向右48步,向上40步
target = {"x": 48, "y": 40}

# 计算距离
while hero.distanceTo(target) > 0:
    hero.move(target)

🧙‍♂️ 函数调用:魔法咒语

生动解释:
函数就像魔法咒语!

念出咒语名字,魔法就会生效。比如念“召唤士兵”,就会出现一个帮手!

hero.summon("soldier")  # 召唤咒语

hero.findFriends()      # 找朋友咒语

hero.command(...)       # 命令咒语

hero.move(...)          # 移动咒语

🧠 编程思维小贴士

🧱

1. 分解问题

像搭积木一样,把大问题拆成小步骤。

🔁

2. 重复利用

同样的代码不用写很多遍,用循环!

🤔

3. 条件思考

如果…那么…否则…,像做选择题。

🔍

4. 调试精神

代码出错了不要怕,像侦探一样找线索!