From 478b3451a1e87524f207ade40b311f59dd610d53 Mon Sep 17 00:00:00 2001 From: Feast Date: Sun, 10 May 2026 09:00:14 +0800 Subject: [PATCH] init --- gacha | Bin 0 -> 23432 bytes lession1 | Bin 0 -> 18536 bytes lession1.cpp | 6 + lession2 | Bin 0 -> 18664 bytes lession2.cpp | 11 ++ lession3 | Bin 0 -> 18856 bytes lession3.cpp | 9 ++ lession4 | Bin 0 -> 18792 bytes lession4.cpp | 10 ++ lession5 | Bin 0 -> 18792 bytes lession5.cpp | 23 ++++ lession6 | Bin 0 -> 18976 bytes lession6.cpp | 29 +++++ lession7 | Bin 0 -> 21120 bytes lession7.cpp | 14 ++ lession8 | Bin 0 -> 19032 bytes lession8.cpp | 20 +++ lession9 | Bin 0 -> 19320 bytes lession9.cpp | 100 ++++++++++++++ 学习进度与状态.md | 81 ++++++++++++ 教程-抽卡游戏-C++-10课.md | 259 +++++++++++++++++++++++++++++++++++++ 第01课-欢迎来到抽卡世界.md | 103 +++++++++++++++ 第02课-小盒子与数字.md | 136 +++++++++++++++++++ 第03课-听玩家的话.md | 138 ++++++++++++++++++++ 第04课-运气来了.md | 121 +++++++++++++++++ 第05课-稀有度与判断.md | 130 +++++++++++++++++++ 第06课-循环与多抽.md | 138 ++++++++++++++++++++ 第07课-卡片与数组.md | 120 +++++++++++++++++ 第08课-函数与抽一次.md | 136 +++++++++++++++++++ 第09课-菜单与循环.md | 139 ++++++++++++++++++++ 30 files changed, 1723 insertions(+) create mode 100755 gacha create mode 100755 lession1 create mode 100644 lession1.cpp create mode 100755 lession2 create mode 100644 lession2.cpp create mode 100755 lession3 create mode 100644 lession3.cpp create mode 100755 lession4 create mode 100644 lession4.cpp create mode 100755 lession5 create mode 100644 lession5.cpp create mode 100755 lession6 create mode 100644 lession6.cpp create mode 100755 lession7 create mode 100644 lession7.cpp create mode 100755 lession8 create mode 100644 lession8.cpp create mode 100755 lession9 create mode 100644 lession9.cpp create mode 100644 学习进度与状态.md create mode 100644 教程-抽卡游戏-C++-10课.md create mode 100644 第01课-欢迎来到抽卡世界.md create mode 100644 第02课-小盒子与数字.md create mode 100644 第03课-听玩家的话.md create mode 100644 第04课-运气来了.md create mode 100644 第05课-稀有度与判断.md create mode 100644 第06课-循环与多抽.md create mode 100644 第07课-卡片与数组.md create mode 100644 第08课-函数与抽一次.md create mode 100644 第09课-菜单与循环.md diff --git a/gacha b/gacha new file mode 100755 index 0000000000000000000000000000000000000000..f69ba0e51b9a441849ba5ce1f795d31b0ddce325 GIT binary patch literal 23432 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 M9bM;OWg}4jKX-UlPyhe` literal 0 HcmV?d00001 diff --git a/lession1 b/lession1 new file mode 100755 index 0000000000000000000000000000000000000000..b59ef4527fe6ba4fbcdd9be23e92bc51927f95f7 GIT binary patch literal 18536 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 literal 0 HcmV?d00001 diff --git a/lession1.cpp b/lession1.cpp new file mode 100644 index 0000000..a4366ba --- /dev/null +++ b/lession1.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + std::cout << "欢迎来到抽卡世界!\n"; + return 0; +} \ No newline at end of file diff --git a/lession2 b/lession2 new file mode 100755 index 0000000000000000000000000000000000000000..ec7b043ae376103fa917cd7d9e722a54c0968fbc GIT binary patch literal 18664 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 literal 0 HcmV?d00001 diff --git a/lession2.cpp b/lession2.cpp new file mode 100644 index 0000000..1a669a9 --- /dev/null +++ b/lession2.cpp @@ -0,0 +1,11 @@ +#include + +int main() { + int pulls = 1083; + std::cout << "你还剩 " << pulls << " 次抽卡机会\n"; + int coins = 50; + std::cout <<"你的金币:" << coins << "\n"; + std::cout << "抽卡次数" << pulls << " ,金币" << coins << "\n"; + pulls = pulls - 1; + return 0; +} \ No newline at end of file diff --git a/lession3 b/lession3 new file mode 100755 index 0000000000000000000000000000000000000000..18ba6d7df170f0e005ea5fd3a6ffac22e90a3ebd GIT binary patch literal 18856 zcmeHPeQX@X6`%75aR|v>pwLjNvQQF20^!bIu^VWek0qDJN!*-`fHvBk&ue?>`Oe(! z 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 btzWy=@*e?()ylk*n!J*#>ii-)PGSE6&tj-Y literal 0 HcmV?d00001 diff --git a/lession3.cpp b/lession3.cpp new file mode 100644 index 0000000..3b54022 --- /dev/null +++ b/lession3.cpp @@ -0,0 +1,9 @@ +#include + +int main() { + int pulls = 0; + std::cout << "你想抽几次?"; + std::cin >> pulls; + std::cout << "好,我们准备抽 " << pulls << " 次\n"; + return 0; +} diff --git a/lession4 b/lession4 new file mode 100755 index 0000000000000000000000000000000000000000..195c040ef45589d018e94e0087b4ac78ea5244e7 GIT binary patch literal 18792 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 G==vX_DtK}L literal 0 HcmV?d00001 diff --git a/lession4.cpp b/lession4.cpp new file mode 100644 index 0000000..2f1c4d2 --- /dev/null +++ b/lession4.cpp @@ -0,0 +1,10 @@ +#include +#include +#include + +int main() { + std::srand(std::time(nullptr)); + int r = std::rand() % 101; + std::cout << " 随机数 " << r << "\n"; + return 0; +} \ No newline at end of file diff --git a/lession5 b/lession5 new file mode 100755 index 0000000000000000000000000000000000000000..4ade5ac567a192452be93544dce042faac1aa066 GIT binary patch literal 18792 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 literal 0 HcmV?d00001 diff --git a/lession5.cpp b/lession5.cpp new file mode 100644 index 0000000..aaae70f --- /dev/null +++ b/lession5.cpp @@ -0,0 +1,23 @@ +#include +#include +#include + +int main() { + + std::srand(std::time(nullptr)); + int r =std::rand() % 101; + std::cout << " 随机数 " << r << "\n"; + if ( r < 70) + { + std::cout << " 普通卡 " << "\n"; + } + else if (r < 95) + { + std::cout << " 稀有卡" << "\n"; + } + else + { + std::cout << " 传说卡 " << "\n"; + } + return 0; +} \ No newline at end of file diff --git a/lession6 b/lession6 new file mode 100755 index 0000000000000000000000000000000000000000..25a59c7785b96fbc30abb4b869240841d0f7419e GIT binary patch literal 18976 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 literal 0 HcmV?d00001 diff --git a/lession6.cpp b/lession6.cpp new file mode 100644 index 0000000..851d9d2 --- /dev/null +++ b/lession6.cpp @@ -0,0 +1,29 @@ +#include +#include +#include + +int main() { + std::srand(std::time(nullptr)); + int n = 0; + int i = 0; + std::cout << " 抽几次?" << "\n"; + std::cin >> n; + + for(i =1;i <= n;i++) + { + int r = std::rand() % 101; + std::cout << " 第" << i << "抽" << r << "\n"; + if(r < 70) + { + std::cout << " 普通卡" << "\n"; + } + else if( r < 95) + { + std::cout << " 稀有卡" << "\n"; + } + else + { + std::cout << " 传说卡" << "\n"; + } + } +} \ No newline at end of file diff --git a/lession7 b/lession7 new file mode 100755 index 0000000000000000000000000000000000000000..63feb07ea77e74affa9abab3705ecb6579a5ea26 GIT binary patch literal 21120 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 literal 0 HcmV?d00001 diff --git a/lession7.cpp b/lession7.cpp new file mode 100644 index 0000000..5c03136 --- /dev/null +++ b/lession7.cpp @@ -0,0 +1,14 @@ +#include +#include + +int main() { + std::string cards[3]; + cards[0] = "小火龙"; + cards[1] = "皮卡丘"; + cards[2] = "妙蛙种子"; + + int id = 0; + std::cin >> id; + std::cout << "你选中的卡:" << cards[id] << "\n"; + return 0; +} \ No newline at end of file diff --git a/lession8 b/lession8 new file mode 100755 index 0000000000000000000000000000000000000000..6e09112a0b4ad1c88b70dceeae64b356fbbb3486 GIT binary patch literal 19032 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 literal 0 HcmV?d00001 diff --git a/lession8.cpp b/lession8.cpp new file mode 100644 index 0000000..b31138a --- /dev/null +++ b/lession8.cpp @@ -0,0 +1,20 @@ +#include +#include +#include +void draw_once() { + int r = std::rand() % 100; + if (r < 70) std::cout << "普通\n"; + else if (r < 95) std::cout << "稀有\n"; + else std::cout << "超稀有\n"; +} +int main() { + std::srand(std::time(nullptr)); + int n = 0; + std::cout << "抽几次?"; + std::cin >> n; + for ( int i =1; (i <= n && i < 100 && n<=100); i++) + { + std::cout << "第" << i << "抽"; + draw_once(); + } + return 0;} \ No newline at end of file diff --git a/lession9 b/lession9 new file mode 100755 index 0000000000000000000000000000000000000000..0d640018f98b0e5cf147c2e394a340d2d2ba0162 GIT binary patch literal 19320 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 +#include +#include +void draw_once() { + int r = std::rand() % 111; + if (r < 50) std::cout << "R\n"; + else if (r < 80) std::cout << "SR\n"; + else if (r < 100) std::cout << "SSR\n"; + else if (r < 105) std::cout << "UR\n"; + else if (r < 109) std::cout << "TR\n"; + else std::cout << "USR\n"; +} +int main() { + int coins = 0; + std::srand(std::time(nullptr)); + while (true) { + flag: + std::cout << "现在有:" << coins << "金币" << "\n"; + std::cout << "\n===== 抽卡小游戏 =====\n"; + std::cout << "1 抽一次\n"; + std::cout << "2 说明\n"; + std::cout << "3 增加金币\n"; + std::cout << "4 稀有度查看\n"; + std::cout << "0 退出\n"; + std::cout << "请选择:"; + int choice = 0; + std::cin >> choice; + if (choice == 1){ + std::cout << "抽几次?(最大100)" << "\n"; + int n = 0; + std::cin >> n; + if (coins < n*10){ + std::cout << "金币不足,请增加金币,或者减少遍数" << "\n"; + std::cout << "将跳转到菜单,请按回车" << "\n"; + std::cin.ignore(); + std::cin.get(); + continue; + } + for ( int i =1; (i <= n && i <= 100 && n<=100 ); i++) + { + + std::cout << "第" << i << "抽"; + draw_once(); + coins -= 10; + } + } + if (choice == 2){ + std::cout << "说明:这是一个抽卡游戏,你可以通过抽卡来获得各种等级的卡牌。\n" + "有普通稀有传说,并且还可以查看稀有度分配,每抽一次花费10金币。\n" + "若金币不够,可以去菜单增加金币,或者减少抽卡遍数。并且抽卡遍数最高100。\n"; + std::cout << "将跳转到菜单,请按回车" << "\n"; + std::cin.ignore(); + std::cin.get(); + continue; + break; + } + if (choice == 3){ + std::cout << "请输入增加金币的数量(最大10000)" << "\n"; + int add = 0; + std::cin >> add; + coins += add; + std::cout << "增加成功,现在有:" << coins << "金币" << "\n"; + std::cout << "将跳转到菜单,请按回车" << "\n"; + std::cin.ignore(); + std::cin.get(); + continue; + break; + } if (choice == 4){ + std::cout <<"R:45.05% SR:27.03% SSR:18.02% UR:4.50% TR:3.60% USA:1.80%\n"; + std::cout << "将跳转到菜单,请按回车" << "\n"; + std::cin.ignore(); + std::cin.get(); + continue; + break; + } + if (choice == 0){ + choice: + std::cout << "你确定吗?(确定选0 返回菜单选1)" << "\n"; + int confirm = 0; + std::cin >> confirm; + if (confirm == 0){ + goto end; + } + else if (confirm == 1){ + goto flag; + } + else{ + std::cout << "输入错误,请重新输入。" << "\n"; + goto choice; + } + } + + std::cout << "将跳转到菜单,请按回车" << "\n"; + std::cin.ignore(); + std::cin.get(); + continue; + } + end: + return 0; +} \ No newline at end of file diff --git a/学习进度与状态.md b/学习进度与状态.md new file mode 100644 index 0000000..af019f8 --- /dev/null +++ b/学习进度与状态.md @@ -0,0 +1,81 @@ +# 学习进度与状态 + +用来记录 **每一课的学习状态**、**课堂练习**和**课后作业**是否完成。建议每学完一课或做完作业后 **马上改一次**,避免忘记。 + +--- + +## 状态说明 + +### 学习状态(`学习状态`) + +| 填写值 | 含义 | +|--------|------| +| `未开始` | 还没打开这一课的文档或视频。 | +| `进行中` | 正在学,还没认为「这一课学完了」。 | +| `已完成` | 这一课的内容已学完,理解主要目标。 | + +### 课堂练习(`课堂练习`) + +| 填写值 | 含义 | +|--------|------| +| `未完成` | 文档里的「课堂小练习」还没做完。 | +| `已完成` | 课堂小练习已做完(可简单写一句在备注里)。 | +| `无` | 该课没有单独列课堂练习(可填 `无` 或 `-`)。 | + +### 课后作业(`课后作业`) + +| 填写值 | 含义 | +|--------|------| +| `未完成` | 有布置作业但还没做。 | +| `已完成` | 作业已做。 | +| `无` | 该课没有课后作业或选择不做。 | +| `选做未完成` | 作业是选做,还没做。 | +| `选做已完成` | 选做作业已完成。 | + +--- + +## 总览表(请按需修改) + +| 课次 | 学习状态 | 课堂练习 | 课后作业 | 备注 | 最后更新 | +|------|----------|----------|----------|------|----------| +| 第01课 欢迎来到抽卡世界 | 已完成 | 已完成 | 已完成 | 第1课含选做作业已完成 | 2026-04-11 | +| 第02课 小盒子与数字 | 已完成 | 已完成 | 已完成 | 第2课含选做作业已完成 | 2026-04-11 | +| 第03课 听玩家的话 | 已完成 | 已完成 | 选做未完成 | `lession3.cpp`:cin 读入 pulls 已完成;选做作业见第3课文档 | 2026-04-11 | +| 第04课 运气来了 | 已完成 | 已完成 | 选做未完成 | `lession4.cpp`;选做作业见第4课文档 | 2026-04-11 | +| 第05课 稀有度与判断 | 已完成 | 已完成 | 选做未完成 | `lession5.cpp`;选做作业见第5课文档 | 2026-04-11 | +| 第06课 循环与多抽 | 已完成 | 已完成 | 选做未完成 | `lession6.cpp`;选做作业见第6课文档 | 2026-04-11 | +| 第07课 卡片与数组 | 已完成 | 已完成 | 选做未完成 | `lession7.cpp`;选做作业见第7课文档 | 2026-04-11 | +| 第08课 函数与抽一次 | 已完成 | 已完成 | 选做未完成 | `lession8.cpp`;选做作业见第8课文档 | 2026-04-11 | +| 第09课 菜单与循环 | 未开始 | 未完成 | 未完成 | 详见 `第09课-菜单与循环.md` | | +| 第10课 综合项目 | 未开始 | 未完成 | 未完成 | | | + +> **说明**:第 10 课独立讲义见 `第10课-综合小项目.md`(若尚未创建,可先对照总教程 `教程-抽卡游戏-C++-10课.md` 第 10 节)。 + +--- + +## 快速记录区(可选) + +把最近几次学习用一两句话写在这里,方便回顾: + +``` +日期:2026年04月11日 学了第3课,完成 lession3.cpp(cin 输入抽卡次数) +日期:____________________ ____________________________________ +``` + +--- + +## 文件对应关系 + +| 文件 | 用途 | +|------|------| +| `教程-抽卡游戏-C++-10课.md` | 10 课总目录与全部示例代码摘要 | +| `第01课-欢迎来到抽卡世界.md` | 第 1 课详细步骤与练习 | +| `第02课-小盒子与数字.md` | 第 2 课:变量 `int`、赋值、与抽卡相关的命名 | +| `第03课-听玩家的话.md` | 第 3 课:`std::cin` 读入整数、提示语、连续输入 | +| `第04课-运气来了.md` | 第 4 课:`rand` / `srand` / `time`、`%` 限定范围 | +| `第05课-稀有度与判断.md` | 第 5 课:`if` / `else if` / `else`、稀有度区间 | +| `第06课-循环与多抽.md` | 第 6 课:`for`、输入 `n`、每抽独立 `r` | +| `第07课-卡片与数组.md` | 第 7 课:`string` 数组、下标、`rand % n` 抽名 | +| `第08课-函数与抽一次.md` | 第 8 课:`void`、自定义函数、`draw_once`、与 `for` 配合 | +| `第09课-菜单与循环.md` | 第 9 课:`while (true)`、`break`、菜单与 `draw_once` | +| `学习进度与状态.md` | 本文件:进度与作业勾选 | diff --git a/教程-抽卡游戏-C++-10课.md b/教程-抽卡游戏-C++-10课.md new file mode 100644 index 0000000..de0c81f --- /dev/null +++ b/教程-抽卡游戏-C++-10课.md @@ -0,0 +1,259 @@ +# 用 C++ 做命令行抽卡游戏 · 10 课时教程 + +面向 **8 岁左右** 学习者,只在 **命令行** 用输入输出完成抽卡游戏,并系统练习 C++ 基础。每课约 **20~40 分钟**,建议家长陪同。 + +--- + +## 总说明(给家长) + +- **工具**:安装 C++ 编译器(例如 Mac 上 Xcode Command Line Tools 的 `clang++`)。 +- **原则**:先能运行出字,再变好玩;报错很正常,改一行再编译。 +- **抽卡**:用随机数模拟概率,不涉及真实金钱或充值。 + +--- + +## 第 1 课:程序和「打招呼」 + +**目标**:理解程序是一行行指令;能编译运行,屏幕出现一句话。 + +**要点**:`main`、花括号 `{}`、`std::cout`、分号 `;`、字符串用双引号。 + +详见:`第01课-欢迎来到抽卡世界.md` + +--- + +## 第 2 课:数字和「小盒子」(变量) + +**目标**:用 `int` 存数,例如「还剩几次抽奖机会」。 + +**要点**:变量名、赋值 `=`、`int`。 + +详见:`第02课-小盒子与数字.md` + +```cpp +#include +int main() { + int pulls = 3; + std::cout << "你还剩 " << pulls << " 次机会\n"; + return 0; +} +``` + +--- + +## 第 3 课:听玩家的话(输入) + +**目标**:用键盘输入数字,程序记住。 + +**要点**:`std::cin`、`>>`。 + +详见:`第03课-听玩家的话.md` + +```cpp +#include +int main() { + int pulls = 0; + std::cout << "你想抽几次?"; + std::cin >> pulls; + std::cout << "好,我们准备抽 " << pulls << " 次\n"; + return 0; +} +``` + +--- + +## 第 4 课:运气来了(随机数) + +**目标**:每次运行可能得到不同结果,为「抽到什么」做准备。 + +**要点**:`rand()`、`srand()`、`time()`;随机种子在程序开始时设一次。 + +详见:`第04课-运气来了.md` + +```cpp +#include +#include +#include + +int main() { + std::srand(std::time(nullptr)); + int r = std::rand() % 100; + std::cout << "随机数:" << r << "\n"; + return 0; +} +``` + +--- + +## 第 5 课:稀有度(条件判断) + +**目标**:根据随机数决定普通 / 稀有 / 超稀有。 + +**要点**:`if`、`else if`、`else`、比较运算符。 + +详见:`第05课-稀有度与判断.md` + +```cpp +#include +#include +#include + +int main() { + std::srand(std::time(nullptr)); + int r = std::rand() % 100; + + std::cout << "你抽到了:"; + if (r < 70) { + std::cout << "普通卡\n"; + } else if (r < 95) { + std::cout << "稀有卡\n"; + } else { + std::cout << "超稀有卡!!\n"; + } + return 0; +} +``` + +--- + +## 第 6 课:一口气抽很多次(循环) + +**目标**:按玩家说的次数重复「抽一次」。 + +**要点**:`for` 或 `while`、循环变量。 + +详见:`第06课-循环与多抽.md` + +```cpp +#include +#include +#include + +int main() { + std::srand(std::time(nullptr)); + int n = 0; + std::cout << "抽几次?"; + std::cin >> n; + + for (int i = 1; i <= n; i++) { + int r = std::rand() % 100; + std::cout << "第" << i << "抽:"; + if (r < 70) std::cout << "普通\n"; + else if (r < 95) std::cout << "稀有\n"; + else std::cout << "超稀有\n"; + } + return 0; +} +``` + +--- + +## 第 7 课:给卡片起名字(数组) + +**目标**:用编号对应卡名,抽中编号再打印名字。 + +**要点**:数组 `[]`、下标从 0 开始、`std::string`。 + +详见:`第07课-卡片与数组.md` + +```cpp +#include +#include + +int main() { + std::string cards[3]; + cards[0] = "小火龙"; + cards[1] = "皮卡丘"; + cards[2] = "妙蛙种子"; + + int id = 1; + std::cout << cards[id] << "\n"; + return 0; +} +``` + +进阶:把第 6 课的随机结果映射到 `cards[id]`。 + +--- + +## 第 8 课:把「抽一次」变成积木(函数) + +**目标**:用函数让代码更短、更好读。 + +**要点**:`void`、自定义函数名。 + +详见:`第08课-函数与抽一次.md` + +```cpp +#include +#include +#include +#include + +void draw_once() { + int r = std::rand() % 100; + if (r < 70) std::cout << "普通卡\n"; + else if (r < 95) std::cout << "稀有卡\n"; + else std::cout << "超稀有卡\n"; +} + +int main() { + std::srand(std::time(nullptr)); + draw_once(); + draw_once(); + return 0; +} +``` + +--- + +## 第 9 课:像游戏一样玩(简单菜单) + +**目标**:循环显示菜单:抽卡 / 说明 / 退出。 + +**要点**:`while (true)`、`break`、用整数表示选项。 + +详见:`第09课-菜单与循环.md` + +流程:显示菜单 → 读选项 → 选抽卡则调用抽卡函数 → 选退出则结束。 + +--- + +## 第 10 课:小项目整合(迷你抽卡游戏) + +**目标**:把前面内容串成可玩的一版。 + +建议包含:欢迎语与菜单、抽奖次数或「金币」、随机与稀有度、可选统计稀有数量、退出。 + +不要求:图形界面、网络、文件存档(本教程以命令行为主)。 + +--- + +## 知识点对照表 + +| 课次 | 主要语法与概念 | +|------|----------------| +| 1 | 程序结构、`#include`、`main`、`cout`、字符串 | +| 2 | `int`、变量 | +| 3 | `cin`、输入 | +| 4 | `rand` / `srand`、`%`、`ctime` | +| 5 | `if` / `else`、比较 | +| 6 | `for` 循环 | +| 7 | `string`、数组、下标 | +| 8 | 自定义函数、`void` | +| 9 | `while`、菜单与流程 | +| 10 | 综合与小项目习惯 | + +--- + +## 给小朋友的简单比喻 + +- 程序像 **乐高说明书**:一行一行,电脑照做。 +- 变量像 **贴了名字的小盒子**。 +- `if` 像 **岔路口**。 +- 函数像 **拼好的积木块**,需要时拿来用。 +- 抽卡是 **随机数假装运气**,和扭蛋类似,只是在电脑里。 + +--- + +*进度与每课作业完成情况请见:`学习进度与状态.md`* diff --git a/第01课-欢迎来到抽卡世界.md b/第01课-欢迎来到抽卡世界.md new file mode 100644 index 0000000..67d5456 --- /dev/null +++ b/第01课-欢迎来到抽卡世界.md @@ -0,0 +1,103 @@ +# 第 1 课:欢迎来到抽卡世界 + +**本课目标**:写出第一个 C++ 程序,让屏幕「打招呼」。学会保存代码、编译、运行。 + +--- + +## 1. 这一课要搞懂什么 + +- 程序就是给电脑的一串指令,电脑从上到下执行。 +- 我们写的文字要放在一个叫 **源文件** 的东西里,一般用 `.cpp` 结尾,例如 `hello.cpp`。 +- 电脑看不懂 `.cpp` 直接运行,要先 **编译**:把人类写的代码变成电脑能执行的程序。 + +--- + +## 2. 第一个程序长什么样 + +复制下面代码到 `hello.cpp`(名字可以自定,只要是 `.cpp`): + +```cpp +#include + +int main() { + std::cout << "欢迎来到抽卡世界!\n"; + return 0; +} +``` + +### 每一部分在说什么(不用背,多看几次) + +| 代码 | 意思(小朋友版) | +|------|------------------| +| `#include ` | 请把「在屏幕上写字」的工具拿来用。 | +| `int main() { ... }` | 程序从这里开始跑,`main` 像大门。 | +| `std::cout << ...` | 往屏幕上输出文字。 | +| `"...\n"` | 一串字;`\n` 表示换一行。 | +| `return 0;` | 告诉系统:正常结束啦。 | +| `;` | 一句话结束要像中文句号一样写分号。 | + +--- + +## 3. 怎么编译和运行(Mac 举例) + +在终端里进入你放 `hello.cpp` 的文件夹,然后: + +```bash +clang++ -std=c++17 -o hello hello.cpp +./hello +``` + +如果装了 `g++`,也可以: + +```bash +g++ -std=c++17 -o hello hello.cpp +./hello +``` + +屏幕上应出现:`欢迎来到抽卡世界!` + +--- + +## 4. 本课课堂小练习 + +1. 把 `"欢迎来到抽卡世界!"` 改成你自己编的一句欢迎语。 +2. 再写一行 `std::cout`,让程序多说一句话(比如你的名字或你喜欢的动物)。 + +示例(第二句要自己改内容): + +```cpp +#include + +int main() { + std::cout << "欢迎来到抽卡世界!\n"; + std::cout << "我是某某某,我们开始吧!\n"; + return 0; +} +``` + +--- + +## 5. 本课课后作业(选做) + +- 让程序连续输出 **三行** 不同的字,像小海报一样。 +- 问家长:如果少了一个分号 `;`,编译器会报什么错?把错误信息读一遍(不用懂每个词,习惯「有错就改」即可)。 + +--- + +## 6. 常见小问题 + +- **找不到命令 `clang++`**:需要先安装 Xcode Command Line Tools(可请家长搜索安装方法)。 +- **改完代码还是旧输出**:确认保存了文件,并且重新编译再运行。 +- **中文乱码**:终端编码问题,本课可先全用英文测试;需要中文时再和家长一起调终端编码。 + +--- + +## 7. 下一课预告 + +第 2 课会学 **变量**:用「小盒子」记住数字,比如还剩几次抽奖机会。 + +--- + +*学完请家长在 `学习进度与状态.md` 里更新第 1 课的状态与作业完成情况。* + +**下一课文档**:`第02课-小盒子与数字.md` diff --git a/第02课-小盒子与数字.md b/第02课-小盒子与数字.md new file mode 100644 index 0000000..5651bf8 --- /dev/null +++ b/第02课-小盒子与数字.md @@ -0,0 +1,136 @@ +# 第 2 课:小盒子与数字(变量) + +**本课目标**:学会用 **`int` 变量** 在程序里「记住一个整数」,并把它显示出来。为后面的「还剩几次抽卡」「有多少金币」打基础。 + +**复习**:第 1 课你已经会用 `std::cout` 输出文字。本课在输出里加上 **会变的数字**。 + +--- + +## 1. 这一课要搞懂什么 + +- 有时候程序要记住一个数,比如「还能抽几次」——这个数会变化,不能写死在引号里。 +- 在 C++ 里可以用 **`变量`**:像贴了小纸条的 **小盒子**,盒子里放一个整数。 +- 整数类型常写作 **`int`**(integer 的缩写,先记住这三个字母即可)。 + +--- + +## 2. 第一个用变量的例子 + +把下面保存为 `lesson2.cpp`(文件名可自定,扩展名用 `.cpp`): + +```cpp +#include + +int main() { + int pulls = 3; + std::cout << "你还剩 " << pulls << " 次抽卡机会\n"; + return 0; +} +``` + +### 每一部分在说什么 + +| 代码 | 意思(小朋友版) | +|------|------------------| +| `int pulls = 3;` | 准备一个装整数的盒子,名字叫 `pulls`,里面先放 **3**。 | +| `pulls` | 变量名,像盒子上写的名字,方便我们引用。 | +| `=` | 把右边的值放进左边的盒子里(叫「赋值」)。 | +| `std::cout << "你还剩 " << pulls << " 次..."` | 先输出前半句,再输出 **盒子里的数**,再输出后半句。 | + +运行后应看到类似:`你还剩 3 次抽卡机会` + +--- + +## 3. 改一改盒子里的数 + +变量的好处:**改一个数字,整段话跟着变**。 + +```cpp +#include + +int main() { + int pulls = 10; + std::cout << "你还剩 " << pulls << " 次抽卡机会\n"; + return 0; +} +``` + +把 `10` 改成 `0` 或 `100`,重新编译运行,看屏幕上的数字是否跟着变。 + +--- + +## 4. 变量名的小规矩(先记这几条) + +- 只能用字母、数字、下划线 `_`,**不能以数字开头**。 +- 同一个 `{ ... }` 里 **不要** 起两个一模一样的名字。 +- 名字要有意义:抽卡次数用 `pulls` 或 `cishu` 比叫 `a` 更容易看懂(拼音也可以,但以后大项目更推荐英文习惯)。 + +--- + +## 5. 和抽卡游戏的关系(先预告) + +| 以后会用到的想法 | 用变量表示 | +|------------------|------------| +| 还剩几次抽奖 | `int pulls` 或 `int chouka_cishu` | +| 有多少金币 | `int coins` | +| 抽到了几张稀有 | `int rare_count` | + +本课只练 **`int`**,能存正负整数;小数以后再说。 + +--- + +## 6. 怎么编译和运行 + +在终端进入源码所在文件夹: + +```bash +clang++ -std=c++17 -o lesson2 lesson2.cpp +./lesson2 +``` + +--- + +## 7. 本课课堂小练习 + +1. 新建一个变量 `coins`(金币),初始值设为 `50`,输出一句:`你的金币:50`(数字要用变量,不要手写 50 两次在引号里)。 +2. 在同一程序里再输出一行:用 `pulls` 和 `coins` 两个变量,各显示一次(可以编一句自己的话,比如「抽卡次数 ___ ,金币 ___」)。 + +**参考结构**(数字和文案可自己改): + +```cpp +#include + +int main() { + int pulls = 3; + int coins = 50; + std::cout << "抽卡次数 " << pulls << " ,金币 " << coins << "\n"; + return 0; +} +``` + +--- + +## 8. 本课课后作业(选做) + +- 把 `pulls` 先设为 `5`,再在下一行写 `pulls = pulls - 1;`,输出一次 `pulls`,想想为什么变成 4(第 3 课会大量用到「改变变量」)。 +- 问家长:如果写成 `int pulls = 3.5` 会怎样?(先猜,再编译试试,把结果记到 `学习进度与状态.md` 的备注里也行。) + +--- + +## 9. 常见小问题 + +- **忘了写 `int`**:只写 `pulls = 3` 可能报错,第一次声明盒子一般要写类型。 +- **用了中文标点**:代码里引号、分号请用英文半角。 +- **想存小数**:本课用 `int` 存不下「3.5」,编译器可能警告或截断,这是正常的,以后会学 `double`。 + +--- + +## 10. 下一课预告 + +第 3 课会学 **`std::cin`**:让玩家从键盘输入数字,程序把数放进变量里——你的抽卡游戏就可以「问你想抽几次」了。 + +--- + +*学完请家长在 `学习进度与状态.md` 里更新第 2 课的状态与作业完成情况。* + +**下一课文档**:`第03课-听玩家的话.md` diff --git a/第03课-听玩家的话.md b/第03课-听玩家的话.md new file mode 100644 index 0000000..2b16c21 --- /dev/null +++ b/第03课-听玩家的话.md @@ -0,0 +1,138 @@ +# 第 3 课:听玩家的话(键盘输入) + +**本课目标**:学会用 **`std::cin`** 从键盘读入数字,存进已经学过的 **`int` 变量** 里。这样游戏可以问「你想抽几次?」「你有多少金币?」而不是写死在代码里。 + +**复习**:第 1 课 `cout` 输出;第 2 课 `int` 变量。本课把 **玩家输入** 和 **变量** 连起来。 + +--- + +## 1. 这一课要搞懂什么 + +- **`std::cout <<`**:程序 **往外说**(屏幕上看得到)。 +- **`std::cin >>`**:程序 **往里收**(你在键盘上打字,程序读进来)。 +- `>>` 像一个小漏斗:右边的变量名表示「读到的数放进哪个盒子」。 + +顺序很重要:一般先 **`cout` 写一句提示**,再 **`cin` 读入**,玩家才知道该输入什么。 + +--- + +## 2. 第一个会「听人话」的程序 + +保存为 `lesson3.cpp`(或你喜欢的名字,扩展名 `.cpp`): + +```cpp +#include + +int main() { + int pulls = 0; + std::cout << "你想抽几次?"; + std::cin >> pulls; + std::cout << "好,我们准备抽 " << pulls << " 次\n"; + return 0; +} +``` + +### 每一部分在说什么 + +| 代码 | 意思(小朋友版) | +|------|------------------| +| `int pulls = 0;` | 先准备一个整数盒子,里面暂时当 0(读入后会被覆盖)。 | +| `std::cout << "你想抽几次?";` | 屏幕上显示问题,**不换行**也可以,光标停在同一行等输入。 | +| `std::cin >> pulls;` | 等你按回车,把输入的 **整数** 放进 `pulls`。 | +| 下一行 `cout` | 把盒子里的数说出来,确认程序真的记住了。 | + +编译运行后,输入一个整数(例如 `5`),回车,应看到:`好,我们准备抽 5 次` + +--- + +## 3. 提示语要清楚 + +玩家不知道要输入什么时会发呆,所以: + +- 问题用 **`cout`** 写清楚。 +- 可以在提示里写「请输入整数」或「输入数字后按回车」。 + +```cpp +std::cout << "请输入你想抽的次数(整数),然后按回车:"; +std::cin >> pulls; +``` + +--- + +## 4. 一次读两个数(进阶) + +抽卡可以既要「次数」又要「金币」,可以连着写两次 `cin`: + +```cpp +#include + +int main() { + int pulls = 0; + int coins = 0; + std::cout << "抽几次?"; + std::cin >> pulls; + std::cout << "现在有多少金币?"; + std::cin >> coins; + std::cout << "收到:抽 " << pulls << " 次,金币 " << coins << "\n"; + return 0; +} +``` + +运行时要 **输入两次**:第一次回车后,再问第二个数。 + +--- + +## 5. 和抽卡游戏的关系 + +| 想法 | 做法 | +|------|------| +| 玩家决定抽几次 | `cin >> pulls` | +| 玩家报金币数量 | `cin >> coins` | +| 以后扣金币、减次数 | 用第 2 课的变量和赋值、`pulls - 1` 等 | + +本课只保证:**能读进来、能显示出来**。随机抽结果在第 4 课。 + +--- + +## 6. 怎么编译和运行 + +```bash +clang++ -std=c++17 -o lesson3 lesson3.cpp +./lesson3 +``` + +输入数字后一定要按 **回车**,程序才会继续。 + +--- + +## 7. 本课课堂小练习 + +1. 只用一个程序:先 `cout` 问「你叫什么名字?」——名字是 **文字**,本课先不学 `string`,可以改成问「你的幸运数字是几?」用 `int lucky` + `cin` 读入并打印。 +2. 做「抽几次 + 金币」两段提问(用上文第 4 节的结构),最后输出一句自己编的话,里面必须用到 `pulls` 和 `coins`。 + +--- + +## 8. 本课课后作业(选做) + +- 故意在问「整数」时输入 **字母** 或 **符号**,看程序会怎样(可能卡住或出错,先观察,以后会学更稳妥的写法)。 +- 问家长:`cin >> pulls` 后面的 `>>` 和 `cout` 里的 `<<` 方向为什么相反?(一个往里收,一个往外送,像箭头方向。) + +--- + +## 9. 常见小问题 + +- **输入完没反应**:检查是否按了回车;是否在等待第二个数(读两次就要输入两次)。 +- **想输入中文名字**:要用 `std::string`,下几课会用到时再扩展;本课整数输入用数字即可。 +- **一次想输入多个数**:可以在一行里用空格隔开两个整数,例如 `3 50`,然后 `std::cin >> pulls >> coins;`(试一试当拓展)。 + +--- + +## 10. 下一课预告 + +第 4 课会学 **随机数**:每次抽卡结果不一样——`rand`、`srand` 和「种子」,为真正的 **抽卡运气** 做准备。 + +--- + +*学完请家长在 `学习进度与状态.md` 里更新第 3 课的状态与作业完成情况。* + +**下一课文档**:`第04课-运气来了.md` diff --git a/第04课-运气来了.md b/第04课-运气来了.md new file mode 100644 index 0000000..8f30b34 --- /dev/null +++ b/第04课-运气来了.md @@ -0,0 +1,121 @@ +# 第 4 课:运气来了(随机数) + +**本课目标**:让程序每次运行(或每次「抽一下」)得到 **不一样的整数**,为后面的「抽到普通 / 稀有卡」做准备。学会使用 **`rand`**、**`srand`** 和 **`%` 取余**。 + +**复习**:第 3 课用 `cin` 读入数据;本课的数据来自 **程序内部的随机**,不靠键盘。 + +--- + +## 1. 这一课要搞懂什么 + +- **`std::rand()`**:返回一个很大的随机整数(每次调用会变)。 +- **「种子」`std::srand(...)`**:告诉电脑「从哪一串运气开始乱」。种子一般在 **`main` 里、第一次 `rand` 之前只设一次**。 +- **常用种子**:用当前时间 `std::time(nullptr)`,这样每次运行程序,种子不同,随机序列也不同。 +- **`%`(取余)**:把很大的数 **缩到你想要的范围**。例如 `% 100` 得到 **0~99**。 + +需要多两个头文件: + +- `#include ` —— `rand`、`srand` +- `#include ` —— `time` + +--- + +## 2. 第一个随机数程序 + +保存为 `lesson4.cpp`(或 `lession4.cpp`,和编译命令一致即可): + +```cpp +#include +#include +#include + +int main() { + std::srand(std::time(nullptr)); + int r = std::rand() % 100; + std::cout << "随机数:" << r << "\n"; + return 0; +} +``` + +多运行几次 `./程序名`,观察:**数字会变**。 + +--- + +## 3. `srand` 为什么要写?(先有个印象) + +如果 **不写** `std::srand(...)`,有些环境下每次运行程序,`rand()` 出来的顺序可能 **一模一样**。加了用时间当种子,更像「每次开游戏运气不同」。 + +本课记住:**在 `main` 开头写一次 `std::srand(std::time(nullptr));` 就对了。** + +--- + +## 4. `%` 怎么帮你「限定范围」 + +| 写法 | 结果范围(整数) | +|------|------------------| +| `std::rand() % 100` | 0~99 | +| `std::rand() % 10` | 0~9 | +| `std::rand() % 6` | 0~5(像六面骰的 0~5 版) | + +以后要 **1~100** 可以以后再学「加偏移」:`% 100` 再加 1 等;本课先掌握 **0 起头** 即可。 + +--- + +## 5. 和抽卡游戏的关系 + +下一课会把随机数放进 **`if` 判断**:数字落在不同区间 → 普通 / 稀有 / 超稀有。本课只练:**能生成一个 0~99 的 `r` 并打印**。 + +--- + +## 6. 怎么编译和运行 + +```bash +clang++ -std=c++17 -o lession4 lession4.cpp +./lession4 +``` + +(若你的源文件叫 `lesson4.cpp`,把命令里的名字一起改掉,保持 **源文件名、` -o` 名字、`./` 名字** 一致。) + +--- + +## 7. 本课课堂小练习 + +1. 把 `% 100` 改成 `% 10`,看多运行几次是不是都落在 0~9。 +2. 连续输出 **3 个** 随机数(调用三次 `std::rand() % 100`,分三行 `cout`),看三次是不是一般互不相同。 + +示例结构(数字和换行可自己调整): + +```cpp +std::srand(std::time(nullptr)); +int a = std::rand() % 100; +int b = std::rand() % 100; +int c = std::rand() % 100; +std::cout << a << " " << b << " " << c << "\n"; +``` + +--- + +## 8. 本课课后作业(选做) + +- 注释掉 `std::srand(std::time(nullptr));` 这一行,多运行几次程序,观察随机数是否还容易变化(记下现象即可)。 +- 问家长:`nullptr` 是什么可以以后再学,本课先当「固定写法配合 `time` 用」。 + +--- + +## 9. 常见小问题 + +- **忘了 `#include ` 或 ``**:可能报 `rand` / `time` 未声明。 +- **`srand` 写了很多次**:一般只在开头写一次;循环里反复 `srand` 可能让随机性变差,本课先别在循环里设种子。 +- **想要小数**:本课都是整数随机;小数以后用 `double` 等再扩展。 + +--- + +## 10. 下一课预告 + +第 5 课学 **`if` / `else if` / `else`**:根据 `r` 落在哪个区间,打印「普通 / 稀有 / 超稀有」——抽卡的核心逻辑就来了。 + +--- + +*学完请家长在 `学习进度与状态.md` 里更新第 4 课的状态与作业完成情况。* + +**下一课文档**:`第05课-稀有度与判断.md` diff --git a/第05课-稀有度与判断.md b/第05课-稀有度与判断.md new file mode 100644 index 0000000..a25f9b4 --- /dev/null +++ b/第05课-稀有度与判断.md @@ -0,0 +1,130 @@ +# 第 5 课:稀有度与判断(`if` / `else`) + +**本课目标**:根据第 4 课得到的随机整数 **`r`**,用 **`if` / `else if` / `else`** 判断「抽到哪种稀有度」,并在屏幕上打印出来。这是抽卡游戏的 **核心逻辑**。 + +**复习**:第 4 课 `rand` + `% 100` 得到 0~99 的 `r`。本课不问键盘,先专注 **分支判断**。 + +--- + +## 1. 这一课要搞懂什么 + +- **`if (条件) { ... }`**:条件成立,就执行大括号里的语句。 +- **`else if (条件) { ... }`**:前面都不成立,再试这一个条件。 +- **`else { ... }`**:上面所有条件都不成立,就走这里(最后一档)。 +- **比较运算符**(本课常用):`<` 小于、`>` 大于、`<=` 小于等于、`>=` 大于等于、`==` 等于、`!=` 不等于。 + +条件外面要加 **圆括号** `()`,语句块外面要加 **花括号** `{}`(本课先养成「每档都写 `{}`」的习惯)。 + +--- + +## 2. 稀有度怎么和数字对应? + +下面用 **0~99** 的 `r` 分成三档(概率只是举例,以后你可以改数字): + +| `r` 的范围 | 约占比 | 结果 | +|------------|--------|------| +| 0~69 | 约 70% | 普通卡 | +| 70~94 | 约 25% | 稀有卡 | +| 95~99 | 约 5% | 超稀有卡 | + +代码里写成: + +- `r < 70` → 普通(0~69) +- `r < 95` → 稀有(70~94)——注意:能进到这里时,`r < 70` 已经不成立了,所以实际是 70~94 +- 剩下的 → 超稀有(95~99) + +--- + +## 3. 完整示例程序 + +保存为 `lession5.cpp`: + +```cpp +#include +#include +#include + +int main() { + std::srand(std::time(nullptr)); + int r = std::rand() % 100; + + std::cout << "你抽到了:"; + if (r < 70) { + std::cout << "普通卡\n"; + } else if (r < 95) { + std::cout << "稀有卡\n"; + } else { + std::cout << "超稀有卡!!\n"; + } + return 0; +} +``` + +多运行几次,观察三种结果都会出现(超稀有会较少,属正常)。 + +--- + +## 4. 调试小技巧:先看 `r` 是多少 + +不确定区间对不对时,可以先打印随机数: + +```cpp +std::cout << "本次点数 r = " << r << "\n"; +``` + +加在 `if` 之前,方便对照「数字落在哪一档」。 + +--- + +## 5. 和抽卡游戏的关系 + +| 本课学会 | 以后可以 | +|----------|----------| +| 分档判断 | 普通 / 稀有 / 传说 | +| 改数字 | 调概率(更难或更容易出稀有) | +| 加 `else if` | 多加一档「史诗」等 | + +第 6 课会加 **循环**,按次数连续抽;第 7 课用 **数组** 给每档起卡名。 + +--- + +## 6. 怎么编译和运行 + +```bash +clang++ -std=c++17 -o lession5 lession5.cpp +./lession5 +``` + +--- + +## 7. 本课课堂小练习 + +1. 在 `if` 前增加一行,输出本次的 `r`(或「点数」),再运行多次,对照上一节的表格看是否合理。 +2. 把「超稀有」条件改严一点:例如只有 `r >= 98` 才是超稀有(想想 `else` 里要对应哪一段 `r`)。 + +--- + +## 8. 本课课后作业(选做) + +- 把三档概率改成你自己喜欢的比例(例如更容易出稀有),记录你改的 `<` 旁边的数字。 +- 问家长:**为什么要先写 `r < 70` 再写 `r < 95`**,而不能把两个条件反过来?(提示:判断顺序像从上往下筛。) + +--- + +## 9. 常见小问题 + +- **`if (r < 70);`** 后面多写了分号:可能导致大括号里的内容**总是**执行或逻辑错乱,本课每档用 `{ }` 包住最清晰。 +- **用 `=` 代替 `==`**:`if (r = 70)` 是赋值不是比较,容易出 bug;比较数字是否相等要用 `==`。 +- **想判断「是否等于 100」**:本课 `r` 最大是 99,若要 1~100 的范围要改 `rand` 那一行,以后可以再扩展。 + +--- + +## 10. 下一课预告 + +第 6 课学 **循环**(`for`):按玩家输入的次数,连续抽很多次,不用复制粘贴很多遍 `if`。 + +--- + +*学完请家长在 `学习进度与状态.md` 里更新第 5 课的状态与作业完成情况。* + +**下一课文档**:`第06课-循环与多抽.md` diff --git a/第06课-循环与多抽.md b/第06课-循环与多抽.md new file mode 100644 index 0000000..cc24913 --- /dev/null +++ b/第06课-循环与多抽.md @@ -0,0 +1,138 @@ +# 第 6 课:循环与多抽(`for`) + +**本课目标**:把第 3 课的「输入次数」、第 4~5 课的「随机 + 稀有度」合在一起:玩家输入 **`n`**,程序用 **`for` 循环** 连续抽 **`n` 次**,每次结果可以不同。 + +**复习**:`cin` 读整数;`srand` 只设一次;`rand` % 100 与 `if` 判断。 + +--- + +## 1. 这一课要搞懂什么 + +- **循环**:同一段代码想做很多遍,不用复制粘贴很多行。 +- **`for` 句型(本课用这个)**: + + ```text + for (起点; 是否继续; 每轮结束时做什么) { 循环体 } + ``` + +- 本课常用写法: + + ```cpp + for (int i = 1; i <= n; i++) { ... } + ``` + + 含义可以记成:「`i` 从 1 开始,只要 `i` 还小于等于 `n`,就执行大括号里的话,每做完一轮让 `i` 加 1」。 + +- **`i`** 常用来当「第几抽」的序号,正好可以打在屏幕上:`第1抽`、`第2抽`…… + +--- + +## 2. 随机数要放在循环里面还是外面? + +- **`std::srand(std::time(nullptr));`**:仍在 **`main` 开头只写一次**(和前面一样)。 +- **`int r = std::rand() % 100;`**:要写在 **`for` 的循环体里面**——**每抽一次,重新得到一个 `r`**。若写在循环外,`r` 只算一次,多抽就全一样了。 + +--- + +## 3. 完整示例(输入次数 + 连抽 + 稀有度) + +保存为 `lession6.cpp`: + +```cpp +#include +#include +#include + +int main() { + std::srand(std::time(nullptr)); + + int n = 0; + std::cout << "抽几次?"; + std::cin >> n; + + for (int i = 1; i <= n; i++) { + int r = std::rand() % 100; + std::cout << "第" << i << "抽:"; + if (r < 70) { + std::cout << "普通\n"; + } else if (r < 95) { + std::cout << "稀有\n"; + } else { + std::cout << "超稀有\n"; + } + } + + return 0; +} +``` + +运行后输入一个整数(如 `5`),应看到 5 行结果,**每行稀有度可不同**。 + +--- + +## 4. `for` 三格分别是什么?(对号入座) + +以 `for (int i = 1; i <= n; i++)` 为例: + +| 位置 | 本课含义 | +|------|----------| +| `int i = 1` | 循环变量 `i` 从 1 开始。 | +| `i <= n` | 只要 `i` 不超过 `n` 就继续抽。 | +| `i++` | 每抽完一轮,`i` 加 1(`++` 表示加 1)。 | + +--- + +## 5. 和抽卡游戏的关系 + +| 本课组合 | 游戏效果 | +|----------|----------| +| `cin >> n` | 玩家决定十连、百连等 | +| `for` 里每次新的 `r` + `if` | 每一抽独立判稀有度 | +| 打印 `i` | 清楚是第几抽 | + +第 7 课会给卡片 **起名字(数组)**;本课先熟练「多抽」。 + +--- + +## 6. 怎么编译和运行 + +```bash +clang++ -std=c++17 -o lession6 lession6.cpp +./lession6 +``` + +输入正整数。若输入 `0`,循环体一次都不执行,属于正常;负数本课不专门处理,可和家长讨论「该做哪些判断」当拓展。 + +--- + +## 7. 本课课堂小练习 + +1. 在每一抽的输出里,顺便打印本次的 **点数 `r`**(和 `i` 一起),多运行几次,对照第 5 课区间是否一致。 +2. 把 `for` 里 `i` 从 **1 开始** 改成从 **0 开始**、条件改成 `i < n`(需同时改 `cout` 里显示第几抽,如 `i + 1`)。能做出来说明你在思考「下标从 0」。 + +--- + +## 8. 本课课后作业(选做) + +- 统计这一轮里 **出了几次「超稀有」**:在 `main` 里加一个 `int` 变量,在 `else`(超稀有的分支)里加 1,循环结束后 `cout` 打印总次数。 +- 问家长:**`while` 和 `for` 有什么不一样?** 本课只用 `for` 就够;知道「另一种循环名」即可。 + +--- + +## 9. 常见小问题 + +- **只随机了一次**:检查 `r = ...rand...` 是否在 `for` 的 `{ }` 里。 +- **想抽「固定 10 次」不写 `cin`**:可以把 `n = 10;` 写死,仍然用 `for` 循环。 +- **输入很大的 `n`**:会打印很多行,可以先用小数字测。 + +--- + +## 10. 下一课预告 + +第 7 课学 **数组** 和 `std::string`:用编号对应「皮卡丘、小火龙」等名字,抽到稀有时打印具体卡名。 + +--- + +*学完请家长在 `学习进度与状态.md` 里更新第 6 课的状态与作业完成情况。* + +**下一课文档**:`第07课-卡片与数组.md` diff --git a/第07课-卡片与数组.md b/第07课-卡片与数组.md new file mode 100644 index 0000000..e73b96b --- /dev/null +++ b/第07课-卡片与数组.md @@ -0,0 +1,120 @@ +# 第 7 课:卡片与数组(`string` 数组) + +**本课目标**:用 **数组** 存好多张卡的名字,用 **编号(下标)** 取出其中一张。学会 **`std::string`** 和 **下标从 0 开始**。 + +**复习**:第 6 课里每次有一张「结果」;本课在随机数上再往前一步,让结果变成 **某一张具体卡** 的名字。 + +--- + +## 1. 这一课要搞懂什么 + +- **一张卡有名字**(文字),在 C++ 里常用 **`std::string`** 表示一串字(不是本课的整数 `int`)。 +- **很多张卡** 可以排成一行放进 **数组**里:`std::string cards[3]` 表示有 **3 个格子**(编号 `0、1、2`)。 +- **下标永远从 0 开始**: + - 第 1 张是 `cards[0]` + - 第 2 张是 `cards[1]` + - 第 3 张是 `cards[2]` +- 若有 **3 张卡**,有效下标是 **0~2**,**没有** `cards[3]`(会越界,程序可能出错)。 + +头文件:写 `std::string` 前要加一行 **`#include `**。 + +--- + +## 2. 最简示例:三张卡、打印其中一张 + +保存为 `lession7.cpp`: + +```cpp +#include +#include + +int main() { + std::string cards[3]; + cards[0] = "小火龙"; + cards[1] = "皮卡丘"; + cards[2] = "妙蛙种子"; + + int id = 1; + std::cout << "你选中的卡:" << cards[id] << "\n"; + return 0; +} +``` + +运行会打印 **皮卡丘**(因为 `id` 是 1,对应下标 1)。把 `id` 改成 `0` 或 `2` 再试。 + +--- + +## 3. 随机从三张里抽一张(和抽卡最相关) + +3 个下标是 0、1、2,随机一个下标用: + +```cpp +int id = std::rand() % 3; // 0 或 1 或 2 +std::cout << "抽到:" << cards[id] << "\n"; +``` + +**注意**:若用随机,要在 `main` 最前面先写 `std::srand(std::time(nullptr));`(和前几课一样),并加上 `#include ` 与 `#include `。 + +--- + +## 4. 和稀有度、多抽怎么拼?(进阶思路) + +- 本课可以只做:**在「普通 / 稀有」某一档里**,再随机出 **具体卡名**(用 `cards[id]`)。 +- 也可以先生成 `r` 判稀有度,**分支里** 用 **不同的小数组** 或 **同数组不同下标范围**(慢慢加,不着急一次写完)。 + +和 **第 6 课** 的拼法:在 `for` 的每一轮里,除了打印「普通/稀有」,再打印 `cards[某个 id]`。 + +--- + +## 5. 本课必须记住的规矩 + +| 点 | 说明 | +|----|------| +| 3 格数组 | 合法下标是 `0、1、2` | +| `% 3` | 得到 0~2,正好当这三张的编号 | +| `string` 与 `int` 不同 | 算卡名用 `string`;第几张、下标、随机 0/1/2 用 `int` | + +--- + +## 6. 怎么编译和运行 + +```bash +clang++ -std=c++17 -o lession7 lession7.cpp +./lession7 +``` + +(若和随机数、循环写在同一个 `.cpp` 里,**所有**需要的 `#include` 都写上。) + +--- + +## 7. 本课课堂小练习 + +1. 把 `cards[3]` 改成 **4 张卡**(`cards[4]`),自己写四个名字,用 `std::rand() % 4` 随机抽一张并打印名字。 +2. 用 `for` 从 `i = 0` 到 `i < 3`,在循环里 **`cout` 打印** `cards[i]`,看是否按顺序列出一排卡名。 + +--- + +## 8. 本课课后作业(选做) + +- 在每一张卡名后面,再存一个 **等级数字** 太麻烦,以后可以用 **结构体**;本选做可改成:**两张表**—`std::string cards[3]` 和 `int level[3]`,下标相同表示同一张卡的名字和等级,打印时两个一起输出。 +- 问家长:生活中哪些东西像「下标从 0 开始」?(例如有的小区楼层、有国家的年级说法不同——先当聊天即可。) + +--- + +## 9. 常见小问题 + +- **忘了 `#include `**:可能报错找不到 `string` 类型。 +- **写了 `cards[3]` 只有三格,却用 `id = 3`**:越界,要改成 `id` 在 0~2,或把数组开大一点。 +- **中文在终端乱码**:与系统编码有关,可先全用 **英文/拼音** 当卡名测试,再让家长和终端设置一起调。 + +--- + +## 10. 下一课预告 + +第 8 课学 **函数**(`void`):把「抽一次」打成一包,用 **`draw_once()`** 多次调用,代码更整齐。 + +--- + +*学完请家长在 `学习进度与状态.md` 里更新第 7 课的状态与作业完成情况。* + +**下一课文档**:`第08课-函数与抽一次.md` diff --git a/第08课-函数与抽一次.md b/第08课-函数与抽一次.md new file mode 100644 index 0000000..cde360a --- /dev/null +++ b/第08课-函数与抽一次.md @@ -0,0 +1,136 @@ +# 第 8 课:函数与「抽一次」(`void`) + +**本课目标**:把「随机一次 + 判断稀有度并打印」收成 **一个函数**,需要抽卡时 **调用函数名加括号** 即可,让 `main` 更短、更好读。 + +**复习**:第 5~7 课已经会写随机数、`if`、打印结果;本课不学新概念语法难度,学 **怎么把代码打包复用**。 + +--- + +## 1. 这一课要搞懂什么 + +- **函数**:一块有名字的代码,写一次,到处可以 **调用**。 +- **`void`**:表示这个函数 **不返回数值给调用者**(先记住:打印抽卡结果就够了,不必 `return` 一个数)。 +- **函数名**:用小写字母和下划线也可以,本课用 **`draw_once`**(抽一次)。 +- **调用**:在 `main` 里写 **`draw_once();`** 就像按一下「抽一次」按钮。 + +### 顺序要注意 + +在 C++ 里,`main` 里如果出现 **`draw_once()`**,编译器要先 **认识** `draw_once` 是什么。有两种常见写法(二选一即可): + +1. **把整个函数写在 `main` 上面**(本课推荐,最简单)。 +2. 或者在 `main` **上面** 写一行 **`void draw_once();`**(声明),再把 `{ ... }` 写在 `main` **下面**(以后再熟练)。 + +--- + +## 2. 示例:`draw_once` + 在 `main` 里抽两次 + +保存为 `lession8.cpp`: + +```cpp +#include +#include +#include +#include + +void draw_once() { + int r = std::rand() % 100; + if (r < 70) { + std::cout << "普通卡\n"; + } else if (r < 95) { + std::cout << "稀有卡\n"; + } else { + std::cout << "超稀有卡\n"; + } +} + +int main() { + std::srand(std::time(nullptr)); + draw_once(); + draw_once(); + return 0; +} +``` + +运行应看到 **两行** 抽卡结果(各随机)。 + +--- + +## 3. 为什么要写成函数? + +| 好处 | 说明 | +|------|------| +| **少重复** | 不用把一大段 `rand` + `if` 复制很多遍 | +| **好改** | 改概率只改 `draw_once` 里面一处 | +| **接菜单** | 第 9 课菜单里「选抽卡」只要调用 `draw_once()` | + +--- + +## 4. 和第 6 课的 `for` 怎么配合? + +多抽不必手写多个 `draw_once();`,可以: + +```cpp +int n = 0; +std::cout << "抽几次?"; +std::cin >> n; +for (int i = 1; i <= n; i++) { + std::cout << "第" << i << "抽:"; + draw_once(); +} +``` + +(把 `srand` 留在 `main` 开头**一次**,不要放进 `draw_once` 里反复执行。) + +--- + +## 5. 能不能把卡名(数组)也放进函数? + +可以。当函数里要用 `cards` 时,要么: + +- 把数组写在 **`main` 外面**(全局,下一小阶段再细讲),要么 +- 以后学 **参数** 把数组传进函数。 + +本课 **最低目标**:先掌握 **`void draw_once()` 无参数版本**;卡名进阶可当练习。 + +--- + +## 6. 怎么编译和运行 + +```bash +clang++ -std=c++17 -o lession8 lession8.cpp +./lession8 +``` + +--- + +## 7. 本课课堂小练习 + +1. 把函数名改成你喜欢的英文(例如 `chou_yi_ci`),记得 **`void` 那一行** 和 **`main` 里的调用** 一起改。 +2. 用 **`for`** + **`cin >> n`**,循环里调用 **`draw_once()`**,实现和第 6 课类似的「连抽」,但 **`main` 里尽量不要重复写判稀有的大段 `if`**。 + +--- + +## 8. 本课课后作业(选做) + +- 在 `draw_once` 里增加打印本次 **`r`**(点数),方便对照区间。 +- 问家长:**「调用函数」和「复制粘贴同一段代码」相比,哪个更像现实中「按按钮」?** + +--- + +## 9. 常见小问题 + +- **`draw_once` 写在 `main` 下面且没有声明**:可能报错「找不到这个名字」,把它整块移到 `main` **上面**,或加前置声明。 +- **在 `draw_once` 里写 `srand`**:每抽一次都重置种子的话,随机性可能变差;种子只在程序开始时设一次更好。 +- **函数末尾忘了 `}`**:大括号要配对,和 `main` 一样。 + +--- + +## 10. 下一课预告 + +第 9 课做 **菜单**:用 **`while (true)`** 反复显示「抽卡 / 说明 / 退出」,选抽卡就调用 **`draw_once()`**,选退出用 **`break`** 结束循环。 + +--- + +*学完请家长在 `学习进度与状态.md` 里更新第 8 课的状态与作业完成情况。* + +**下一课文档**:`第09课-菜单与循环.md` diff --git a/第09课-菜单与循环.md b/第09课-菜单与循环.md new file mode 100644 index 0000000..cea5ab6 --- /dev/null +++ b/第09课-菜单与循环.md @@ -0,0 +1,139 @@ +# 第 9 课:菜单与循环(`while` + `break`) + +**本课目标**:让程序像小游戏一样 **反复显示菜单**,玩家输入数字选择:**抽一次卡 / 看说明 / 退出**。学会 **`while (true)`** 以及 **`break`** 跳出循环。 + +**复习**:第 8 课的 **`draw_once()`**;第 3 课的 **`cin`**。本课把「输入选项」包在一个 **一直转的大圈** 里。 + +--- + +## 1. 这一课要搞懂什么 + +- **`while (条件)`**:条件成立就反复执行 `{ ... }` 里的代码。 +- **`while (true)`**:`true` 永远成立 → **无限循环**,除非里面用 **`break`** 强行离开。 +- **`break`**:用在循环里,表示 **立刻结束这一层循环**,继续执行循环后面的代码(通常是 `return 0` 结束程序)。 +- **菜单**:每一圈先 **`cout` 打印选项**,再 **`cin >> choice`**,再用 **`if` / `else if` / `else`** 判断选了哪一项。 + +--- + +## 2. 推荐选项编号(示例) + +| 输入数字 | 动作 | +|----------|------| +| `1` | 调用 **`draw_once()`** 抽一次 | +| `2` | 打印几句游戏规则说明 | +| `0` | **`break`** 退出循环(说再见) | + +你也可以改成 `3` 退出,只要在文档里写清楚即可。 + +--- + +## 3. 完整示例程序 + +保存为 `lession9.cpp`: + +```cpp +#include +#include +#include +#include + +void draw_once() { + int r = std::rand() % 100; + if (r < 70) { + std::cout << "普通卡\n"; + } else if (r < 95) { + std::cout << "稀有卡\n"; + } else { + std::cout << "超稀有卡\n"; + } +} + +int main() { + std::srand(std::time(nullptr)); + + while (true) { + std::cout << "\n===== 抽卡小游戏 =====\n"; + std::cout << "1 抽一次\n"; + std::cout << "2 说明\n"; + std::cout << "0 退出\n"; + std::cout << "请选择:"; + + int choice = 0; + std::cin >> choice; + + if (choice == 1) { + draw_once(); + } else if (choice == 2) { + std::cout << "随机出普通/稀有/超稀有,选 1 抽一次,选 0 退出。\n"; + } else if (choice == 0) { + std::cout << "再见!\n"; + break; + } else { + std::cout << "没有这个选项,请重新输入。\n"; + } + } + + return 0; +} +``` + +### 程序是怎么跑的? + +1. 进入 **`while (true)`**,显示菜单。 +2. 等你输入 **`choice`**。 +3. 若选 **`0`**:打印再见 → **`break`** → 循环结束 → 执行 **`return 0`**。 +4. 否则再回到步骤 1(又是新的一圈菜单)。 + +--- + +## 4. 两个循环的区别(回忆) + +| 循环 | 适合干什么 | +|------|------------| +| **`for`** | 次数明确,例如「抽 `n` 次」 | +| **`while`** | 次数不固定,例如「一直显示菜单直到选退出」 | + +菜单用 **`while`** 很自然;菜单里选「抽十次」可以再写一个 **`for`** 调用 **`draw_once()`**。 + +--- + +## 5. 怎么编译和运行 + +```bash +clang++ -std=c++17 -o lession9 lession9.cpp +./lession9 +``` + +--- + +## 6. 本课课堂小练习 + +1. 增加菜单项 **`3`**:**先问「抽几次?」**,读入 **`n`**,用 **`for`** 调用 **`draw_once()`** `n` 次(把第 6、8 课合在一起)。 +2. 把菜单文字改成你喜欢的标题和选项说明。 + +--- + +## 7. 本课课后作业(选做) + +- 加一个 **`int coins`**:每抽一次扣 10 金币,金币不够时提示并禁止抽卡(需要 **`if (coins >= 10)`** 再抽)。 +- 问家长:**为什么退出要用 `break`,而不是直接写 `return 0` 在分支里?**(两种有时都能用;本课先理解 `break` 只跳出 **`while`**。) + +--- + +## 8. 常见小问题 + +- **退出不了**:检查退出分支里有没有 **`break`**;条件是不是写成了赋值 **`=`** 而不是比较 **`==`**。 +- **菜单刷屏**:每一圈开头加一点点分隔线(示例里用了 `\n` 和 `=====`)会好看一些。 +- **`cin` 输入错了类型**:输入字母可能导致菜单卡住,选做以后再学清理输入流;本课先用数字测试。 + +--- + +## 9. 下一课预告 + +第 10 课是 **综合小项目**:把欢迎语、菜单、金币或次数、统计超稀有等整理成你自己的「迷你抽卡游戏」版本。 + +--- + +*学完请家长在 `学习进度与状态.md` 里更新第 9 课的状态与作业完成情况。* + +**下一课文档**:`第10课-综合小项目.md`(创建后将放在工作区;也可先对照 `教程-抽卡游戏-C++-10课.md` 第 10 节)。