编写一个简单的游戏来练习用 C++ 编程 -Linux 中国(用c语言编写一个简单游戏)

编写一个简单的游戏来练习用 C++ 编程 -Linux 中国(用c语言编写一个简单游戏)

C 语言很复杂,但它可以教会你很多关于数据类型、内存管理和代码链接的知识。

• 来源:linux.cn • 作者:Seth Kenlon • 译者:Xingyu.Wang •

(本文字数:3473,阅读时长大约:4 分钟)

C 语言很复杂,但它可以教会你很多关于数据类型、内存管理和代码链接的知识。

学习一门编程语言有几种方法。如果你是编码新手,你通常会学习一些基本的计算机编码概念,并尝试应用它们。如果你已经知道如何用另一种语言进行编码,你可以重新学习编码概念在新语言中是如何表达的。

不管是哪种情况,学习这些新原理的便捷方法是创建一个简单的猜谜游戏。这会迫使你了解一门语言如何接收输入和发送输出,如何比较数据,如何控制程序的流程,以及如何利用条件来影响结果。它还确保你知道一门语言是如何组织其代码的;例如,Lua 或 Bash 可以很容易地作为脚本运行,而 Java 则需要你创建一个类。

在本文中,我将演示如何用 C 在终端上实现猜谜游戏。

安装依赖关系

要跟上本文的步伐,你需要 C 和一个编译器。

在 Linux 上,你可以通过从你的发行版软件仓库中安装 Qt Creator IDE 来获得你所需要的一切。

Fedora、CentOS 或 RHEL 上:

$ sudo dnf install qt-creator

在 Debian、Ubuntu、Chromebook 或类似的系统上:

$ sudo apt install qtcreator

本文并没有使用 Qt Creator IDE,但它是一个安装你所需要的一切的简单方法,对于复杂的 C 项目(包括那些带有 GUI 的项目),它是一个必不可少的工具。在 macOS 或 Windows 上,按照 Qt 网站上的 安装说明 进行安装。

设置包含和命名空间

C 的核心语言是精简的。即使是一个简单的应用程序也需要使用额外的库。这个应用程序使用 iostream 来获得对 cout 和 cin 关键字的访问。

另外,确保程序使用 std 命名空间:

#include <iostream>using namespace std;

这并不是绝对必要,但如果不将命名空间设置为 std,所有来自 iostream 库的关键字都需要一个命名空间前缀。例如,我不能写作 cout,而是要写作 std::cout。

C 中的语句以分号结束。

创建一个函数

每个 C 应用程序至少需要一个函数。一个 C 应用程序的主函数必须称为 main,它必须返回一个整数(int),这符合 POSIX 的期望,即一个进程在成功时返回 0,而在失败时返回其他值。你可以通过为它提供返回类型和名称来创建一个新函数。

int main() { // code goes here}

实现程序逻辑

游戏代码必须首先产生一个随机数供玩家猜测。在 C 中,你可以通过建立一个用于生成伪随机数种子来实现。一个简单的种子就是当前的时间。一旦有了种子,你就可以得到一个在 1 和 100 之间的数字。通过调用 rand 函数,并设置上限值 100 来产生一个从 0 到 99 的随机数,所以无论选择了什么数字都要加 1,并将结果分配给一个名为 number 的变量。你还必须声明一个变量来保存玩家的猜测值。为了清楚起见,我称这个变量为 guess。

这个示例代码还包括一个调试语句,告诉你随机数到底是什么。这对于猜测游戏来说不是很好,但它使测试速度快了很多。以后,你可以删除这一行,或者直接在行前面用 // 注释出来:

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 函数将输出打印到 stdout 上。因为 cout 语句没有连着 endl(endline)函数,所以没有换行。紧接着这个 cout 语句,通过使用 cin 函数告诉 C 等待输入。正如你所猜测的那样,cin 等待来自 stdin 的输入。

接下来,程序进入 if 控制语句。如果玩家的猜测大于 number 变量中包含的伪随机数,那么程序就会打印出一个提示,后面是一个换行符。这就中断了 if 语句,但 C 仍然被困在 do-while 循环中,因为它的条件(number 变量等于 guess)还没有满足。

如果玩家的猜测小于 number 变量中包含的伪随机数,那么程序就会打印出一个提示,后面是一个换行符。这再次中断了 if 语句,但程序仍然被困在 do-while 循环中。

当 guess 等于 number 时,最终满足关键条件,触发 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.bin74Guess a number between 1 and 100: 76Too high.Guess a number between 1 and 100: 1Too low.Guess a number between 1 and 100: 74That's right!

成功了!

试试 C 吧

C 语言很复杂。为终端编写 C 应用程序可以让你学到很多关于数据类型、内存管理和代码链接的知识。试着用 C 编写一个有用的实用程序,看看你能发现什么!


via: opensource.com

作者: Seth Kenlon 选题: lujun9972 译者: wxy 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点击“了解更多”可访问文内链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月3日 上午8:42
下一篇 2024年5月3日 上午8:54

相关推荐

  • 财务采购制度及流程

    财务采购制度及流程是企业管理中非常重要的一环,它关系到企业的成本控制,采购效率,产品质量等方面。本文将介绍财务采购制度及流程的基本知识,以及如何制定和执行合适的财务采购制度。 一、…

    科研百科 2024年12月3日
    2
  • 国网四川省电力公司电力科学技术研究院领导班子

    国网四川省电力公司电力科学技术研究院领导班子 国网四川省电力公司电力科学技术研究院是国家电网公司旗下的一家电力科研机构,成立于2001年,总部位于四川省成都市。研究院是国家电网公司…

    科研百科 2024年11月8日
    46
  • 为什么我劝你别轻易上ERP?(为什么上erp是找死,不上erp是等死)

    关 注 好事多磨,但一定不是好事多错。 —— 胜途跨境电商ERP 品牌总监 Logan。 上周在广州参加一场沙龙,晚宴上结识了几位卖家朋友。相谈甚欢,其中相关ERP方面的故事与体验…

    科研百科 2024年5月6日
    96
  • 13名党员活动经费多少

    党员活动经费多少是一个值得探讨的问题。作为中国共产党的一名成员,党员的活动经费应该是公开透明的,并且应该符合相关的财务规定。那么,13名党员活动经费多少?我们可以从以下几个方面进行…

    科研百科 2024年10月14日
    7
  • 中铁四局南京分公司一周要闻(2024.6.10-2024.6.16)(中铁四局南京分公司官网)

    ★ ★ ★ 要闻 丰县书院南街项目承办丰县住建领域“安全生产月”主题活动暨应急救援演练观摩会 6月14日,2024年丰县住建领域“安全生产月”主题活动暨应急救援演练观摩会在丰县书院…

    科研百科 2024年6月25日
    80
  • 风帆办公系统

    风帆办公系统: 实现高效办公的利器 随着现代办公环境的不断发展,风帆办公系统成为了现代企业提高办公效率、优化工作流程的得力助手。作为一种新型的办公自动化系统,风帆办公系统可以帮助企…

    科研百科 2024年9月28日
    24
  • 丰顺县开展镇级便民服务中心“大综窗”设置暨一体化政务协同办公平台业务培训

    11月16日上午,丰顺县政务服务数据管理局召集各镇(场)分管领导及相关工作人员开展镇级便民服务中心“大综窗”设置暨一体化政务协同办公平台业务培训,着力推动优化营商环境、服务“百千万…

    科研百科 2023年12月30日
    129
  • 科研项目管理流程(科研项目管理模板)

    科研项目管理模板科研项目管理模板项目项目专项规划培养科研创新能力对科研的重要性和能力要求学校把培养目标定位为培养科研能力,培养研究创新能力,培养研究创新能力,以促使学生能够掌握科研…

    科研百科 2024年7月30日
    64
  • 尽职免责,最重要的是什么?(痕迹管理技巧)

    作者 | 知识爱人,体制内知识,就那么多! 1.痕迹资料太重要 几年前,有个中学食堂发生食物中毒,被央视媒体报道出来,全国人民都盯着这个学校,食品监管部门被推到风口浪尖上,很有可能…

    科研百科 2023年9月29日
    182
  • 协同办公 排名

    协同办公排名:企业成功的关键因素 随着数字化时代的到来,企业面临着越来越多的挑战。其中,协同办公是企业成功的关键因素之一。在这篇文章中,我们将探讨协同办公排名的重要性,以及如何优化…

    科研百科 2025年1月4日
    0