C++ 语言很复杂,但它可以教你很多关于数据类型、内存管理和代码链接的知识。
有几种方法可以学习编程语言。如果您是编码新手,您通常会学习一些基本的计算机编码概念并尝试应用它们。如果您已经知道如何用另一种语言编码简单游戏代码天外神坛,则可以重新学习如何用新语言表达编码概念。
无论哪种情况,学习这些新原理的便捷方法是创建一个简单的猜谜游戏。这迫使您了解语言如何接收输入和发送输出,如何比较数据,如何控制程序流程以及如何使用条件来影响结果。它还确保您了解一种语言如何组织其代码;例如,Lua 或 Bash 可以作为脚本轻松运行,而 Java 需要您创建一个类。
在本文中,我将演示如何用 C++ 在终端上实现猜谜游戏。
安装依赖
为了跟上本文的进度,您需要 C++ 和编译器。
在 Linux 上,您可以通过从发行版的存储库中安装 Qt IDE 来获得所需的一切。
在 或 RHEL 上:
$ sudo dnf install qt-creator
在 、 、 或类似系统上:
$ sudo apt install qtcreator
本文不使用 Qt IDE,但它是一种安装所需一切的简单方法,它是复杂 C++ 项目(包括带有 GUI 的项目)的必备工具。在 macOS 或 上,按照 Qt 网站上的安装说明进行安装。
设置包含和命名空间
C++ 的核心语言是紧凑的。即使是一个简单的应用程序也需要使用额外的库。此应用程序用于访问 cout 和 cin 关键字。
另外,确保程序使用 std 命名空间:
#include
using namespace std;
这不是绝对必要的,但如果不将命名空间设置为 std,则库中的所有关键字都需要命名空间前缀。例如,我必须写 std::cout,而不是写 cout。
C++ 中的语句以分号结束。
创建一个函数
每个 C++ 应用程序都需要至少一个函数。C++ 应用程序的 main 函数必须调用 main,并且它必须返回一个整数 (int),这符合 POSIX 期望简单游戏代码,即进程在成功时返回 0,在失败时返回一些其他值。您可以通过给它一个返回类型和一个名称来创建一个新函数。
int main() {
// code goes here
}
实现程序逻辑
游戏代码必须首先生成一个随机数供玩家猜测。在 C++ 中,您可以通过建立用于生成伪随机数的种子来做到这一点。一个简单的种子是当前时间。一旦你有了种子,你可以得到一个介于 1 和 100 之间的数字。通过调用 rand 函数生成一个从 0 到 99 的随机数,上限为 100,所以无论选择什么数字都会增加 1,结果是分配给一个名为的变量。您还必须声明一个变量来保存玩家的猜测。为了清楚起见,我将此变量称为猜测。
此示例代码还包含一个调试语句,它告诉您随机数实际上是什么。这对于猜谜游戏来说不是很好,但它使测试速度更快。稍后,您可以删除此行,或者在行前使用 // 将其注释掉:
srand (time(NULL));
int number = rand() % 100+1;
int guess = 0;
cout << number << endl; //debug
添加 do-while 和 if 语句
C++ 中的 do-while 语句以关键字 do 开头,并将您希望 C++ 执行的所有操作括在括号中。以 while 关键字结束语句,后跟必须满足的条件(在括号中):
do {
// code here
} while ( number != guess );
游戏代码出现在 if、else if 和 else 语句之间,为玩家提供提示。
首先,使用 cout 语句提示玩家猜测。cout 函数将输出打印到 . 因为 cout 语句没有附加到 endl() 函数,所以没有换行符。在这个 cout 语句之后,立即使用 cin 函数告诉 C++ 等待输入。你可以猜到,cin 等待来自标准输入的输入。
接下来,程序进入 if 控制语句。如果玩家的猜测大于变量中包含的伪随机数,则程序会打印一个提示,后跟一个换行符。这打破了 if 语句,但是 C++ 仍然停留在 do-while 循环中,因为它的条件(变量等于猜测)尚未得到满足。
如果玩家的猜测小于包含在变量中的伪随机数,那么程序会打印一个提示,后跟一个换行符。这再次中断了 if 语句,但程序仍然停留在 do-while 循环中。
当guess等于时,key条件终于满足,else语句被触发,do-while循环结束,程序结束:
do {
cout << "Guess a number between 1 and 100: ";
cin >> guess;
if ( guess > number) { cout << "Too high.\n" << endl; }
else if ( guess < number ) { cout << "Too low.\n" << endl; }
else {
cout << "That's right!\n" << endl;
exit(0);
} // fi
} while ( number != guess );
return 0;
} // main
构建代码和玩游戏
您可以使用 GCC 构建您的应用程序:
$ g++ -o guess.bin guess.cpp
尝试运行二进制文件:
$ ./guess.bin
74
Guess a number between 1 and 100: 76
Too high.
Guess a number between 1 and 100: 1
Too low.
Guess a number between 1 and 100: 74
That's right!
有效!
试试 C++
C++ 语言很复杂。为终端编写 C++ 应用程序可以教会你很多关于数据类型、内存管理和代码链接的知识。尝试用 C++ 编写一个有用的实用程序,看看你能找到什么!
通过:
作者:赛斯 题目:译者:wxy 校对:wxy
本文由LCTT原创编译,Linux中国光荣推出 |