chore: add 3.4.3

chore: add 3.4.4
chore: add 3.4.5
chore: add 3.4.5.1
chore: add 3.4.6.1
chore: add 3.4.6.2
chore: add 3.4.6.3
chore: add 3.4.6.4
chore: add 3.4.6.5
This commit is contained in:
FallenYing
2023-07-26 02:49:38 +08:00
parent 7a29488280
commit 2373723d17
9 changed files with 91 additions and 97 deletions

View File

@@ -2,25 +2,25 @@
::: tip 提醒
# <strong> 驾驭项目, 而不是被项目驾驭</strong>
## <strong> 驾驭项目而不是被项目驾驭</strong>
你和一个项目的关系会经历 4 个阶段:
你和一个项目的关系会经历 4 个阶段
1. 被驾驭: 你对它一无所知
2. 一知半解: 你对其中的主要模块和功能有了基本的了解
3. 驾轻就熟: 你对整个项目的细节都了如指掌
4. 为你所用: 你可以随心所欲地在项目中添加你认为有用的功能
1. 被驾驭你对它一无所知
2. 一知半解你对其中的主要模块和功能有了基本的了解
3. 驾轻就熟你对整个项目的细节都了如指掌
4. 为你所用你可以随心所欲地在项目中添加你认为有用的功能
如果你想要达成第二个阶段,你需要仔细学习不断探索更新的内容, 达到第三个阶段的主要手段是独立完成实验内容和独立调试. 至于要达到第四个阶段, 就要靠你的主观能动性了: 代码还有哪里做得不够好? 怎么样才算是够好? 应该怎么做才能达到这个目标?
如果你想要达成第二个阶段,你需要仔细学习不断探索更新的内容达到第三个阶段的主要手段是独立完成实验内容和独立调试至于要达到第四个阶段就要靠你的主观能动性了代码还有哪里做得不够好怎么样才算是够好应该怎么做才能达到这个目标
你毕业后到了工业界或学术界, 就会发现真实的项目也都是这样:
你毕业后到了工业界或学术界就会发现真实的项目也都是这样
1. 刚接触一个新项目, 不知道如何下手
1. 刚接触一个新项目不知道如何下手
2. RTFM, RTFSC, 大致明白项目组织结构和基本的工作流程
3. 运行项目的时候发现有非预期行为(可能是配置错误或环境错误, 可能是和已有项目对接出错, 也可能是项目自身的 bug), 然后调试. 在调试过程中, 对这些模块的理解会逐渐变得清晰.
4. 哪天需要你在项目中添加一个新功能, 你会发现自己其实可以胜任.
3. 运行项目的时候发现有非预期行为 (可能是配置错误或环境错误可能是和已有项目对接出错也可能是项目自身的 bug), 然后调试在调试过程中对这些模块的理解会逐渐变得清晰
4. 哪天需要你在项目中添加一个新功能你会发现自己其实可以胜任
这说明了: 如果你一遇到 bug 就找大神帮你调试, 你失去的机会和能力会比你想象的多得多
这说明了如果你一遇到 bug 就找大神帮你调试你失去的机会和能力会比你想象的多得多
:::
文字冒险游戏的基本交互很简单
@@ -41,7 +41,7 @@
2. 函数<em>parseAndExecute</em>。
3. 函数<em>main</em>,负责重复调用其他两个函数。
# main.c
## main.c
```c
#include <stdbool.h>
@@ -55,7 +55,7 @@ static bool getInput(void)
printf("\n--> ");
//你可以将他改成你喜欢的内容
return fgets(input, sizeof input, stdin) != NULL;
//fgets用于收集键盘的输入
//fgets 用于收集键盘的输入
}
int main()
@@ -71,7 +71,7 @@ int main()
思考题static 是什么意思?我为什么要用他?
# <strong>parsexec.h</strong>
## <strong>parsexec.h</strong>
```c
extern bool parseAndExecute(char *input);
@@ -85,7 +85,7 @@ extern bool parseAndExecute(char *input);
在这里用指针是为了传参的时候可以传字符串哦
# <strong>parsexec.c</strong>
## <strong>parsexec.c</strong>
```c
#include <stdbool.h>
@@ -97,11 +97,11 @@ bool parseAndExecute(char *input)
{
char *verb = strtok(input, " \n");
char *noun = strtok(NULL, " \n");
//strtokstring库下的一个函数
//strtokstring 库下的一个函数
if (verb != NULL)
{
if (strcmp(verb, "quit") == 0)
//strcmp也是
//strcmp 也是
{
return false;
}
@@ -116,14 +116,14 @@ bool parseAndExecute(char *input)
else
{
printf("I don't know how to '%s'.\n", verb);
//%s是verb附加参数的占位符
//%s是 verb 附加参数的占位符
}
}
return true;
}
```
你的编译器可能会给出警告 the unused variable noun这些不用担心将会在下一章解决。
你的编译器可能会给出警告 the unused variablenoun这些不用担心将会在下一章解决。
返回<em>false</em>将导致主循环结束。