❤️
100
💰 0
计算机科学 3 | 第 56-66 关
📊

英雄属性与流程控制

Properties & Control Flow

❤️ 生命
⏰ 时间
💰 财富

本节课关卡 · 1/2

扣哒世界 · 计算机科学3 · C++ · 第56–66关

C++ · 本节课关卡

56 · Kithgard附魔师

先读关卡目标,观察地图,再运用本课知识。

57 · 扫雷

先读关卡目标,观察地图,再运用本课知识。

58 · 'Killdeer'操作

先读关卡目标,观察地图,再运用本课知识。

59 · 医疗护理

先读关卡目标,观察地图,再运用本课知识。

60 · 概念挑战. 王之谷

先读关卡目标,观察地图,再运用本课知识。

61 · 组合挑战. 千岩谷

先读关卡目标,观察地图,再运用本课知识。

62 · 守时

先读关卡目标,观察地图,再运用本课知识。

63 · 沙漠十字

先读关卡目标,观察地图,再运用本课知识。

64 · 囤积黄金

先读关卡目标,观察地图,再运用本课知识。

学习路线:读目标 → 看图解 → 写代码 → 运行检查

本节课关卡 · 2/2

扣哒世界 · 计算机科学3 · C++ · 第56–66关

C++ · 本节课关卡

65 · 诱饵演习

先读关卡目标,观察地图,再运用本课知识。

66 · 概念挑战. 贪婪保护

先读关卡目标,观察地图,再运用本课知识。

学习路线:读目标 → 看图解 → 写代码 → 运行检查

🪄

定义函数 (Define Function)

[Image of code encapsulation diagram]

将重复的动作打包成一个函数,让代码更整洁。

使用 void 定义一个不返回值的动作函数。

// 定义向右移动的函数 void moveRight() { float x = hero.pos.x + 12; float y = hero.pos.y; hero.moveXY(x, y); } int main() { moveRight(); // 直接调用! return 0; }
📦
Package Code
❤️

生命值 (Health)

hero.health:当前的生命值。
hero.maxHealth:满血时的生命值上限。

// 计算半血阈值 float limit = hero.maxHealth / 2; // 如果受伤严重 if (hero.health < limit) { hero.say("Heal me!"); } else { hero.attack(enemy); }
"像看血条一样,变红了就该跑去治疗了!"
100%
⏰

时间属性 (Time)

[Image of timeline Gantt chart]

hero.time:游戏开始后经过的秒数。

// 使用 else if 分阶段行动 if (hero.time < 10) { // 前10秒:全力攻击 hero.attack(enemy); } else if (hero.time < 35) { // 10-35秒:收集资源 hero.moveXY(30, 40); } else { // 35秒后:最后决战 hero.attack("Boss"); }
0
15
30
45
Phase: Attack
💰

金币与跳出 (Gold & Break)

hero.gold:当前拥有的金币数。
item.value:地上金币的价值。

使用 break 可以随时跳出循环。

int totalGold = 0; while(true) { auto coin = hero.findNearestItem(); if (coin) { // 累加价值 totalGold += coin.value; hero.moveXY(coin.pos.x, coin.pos.y); } // 存够 25 金币就停手 if (totalGold >= 25) { break; // 跳出循环! } } hero.say("收工!");
🐷
Total: 0

点击存钱罐 (Break at 25)

📜

大师秘籍

"health 是红线,低了就危险。
maxHealth 是上限,比例算一算。"
"time 像闹钟,分段做任务。
break 是紧急出口,达成目标就撤退。"
🌟

我的知识宝藏 · 一页复习

扣哒世界 · 计算机科学3 · C++ · 第56–66关

C++ · 知识点图
关键字方法 / 函数字符串数字

定义函数

将重复的动作打包成一个函数,让代码更整洁。

float x = hero.pos.x + 12;

生命值

hero.health:当前的生命值。 hero.maxHealth:满血时的生命值上限。

float limit = hero.maxHealth / 2;

时间属性

hero.time:游戏开始后经过的秒数。

hero.attack(enemy);

金币与跳出

hero.gold:当前拥有的金币数。 item.value:地上金币的价值。

auto coin = hero.findNearestItem();

大师秘籍

先检查类型、拼写和运算顺序;一次修改一个地方,用运行结果验证想法。

本节课关卡:56. Kithgard附魔师;57. 扫雷;58. 'Killdeer'操作;59. 医疗护理;60. 概念挑战. 王之谷;61. 组合挑战. 千岩谷;62. 守时;63. 沙漠十字;64. 囤积黄金;65. 诱饵演习;66. 概念挑战. 贪婪保护