linux游戏(linux游戏系统)

linux游戏(linux游戏系统)

通过编写一个简单的游戏学习 C 语言 | Linux 中国

当你学习一门新的编程语言时,这个“猜数字”游戏是一个很好的入门程序。下面是如何用 C 语言来编写它。

? 来源:linux.cn ? 作者:Jim Hall ? 译者:qfzy1233 ?

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

当你学习一门新的编程语言时,这个“猜数字”游戏是一个很好的入门程序。下面是如何用 C 语言来编写它。

我在小学时就开始 自学编程 。我的第一个程序是在 Apple II 上编写的,但最终,我还是通过看书和编程练习学会了 C 语言。练习编程的最佳方法是编写示例程序,它能帮助你练习新知识。

在我学习一种新的编程语言时,我喜欢编写一个简单的“猜数字”游戏来练习。电脑从 1 到 100 中随机挑选一个数字,你必须通过猜测来算出来。在另一篇文章中,我展示了如何用 Bash 语言编写这个 “猜数字”游戏 ,我的同事也写了一些文章,介绍如何用 Java 、 Julia 和其他计算机语言编写它。

“猜数字”游戏的伟大之处在于它践行了几个编程概念:如何使用变量、如何比较值、如何打印输出以及如何读取输入。

整个夏天,我录制了 一个系列视频 ,教人们如何用 C 语言 编写程序。从那以后,我听到了很多人都在跟着它学习 C 语言编程的消息。所以,我想接着用 C 语言写一个“猜数字”的游戏。

去取一个随机数

从写一个函数来选择一个随机数字来开始“猜数字”游戏。在编写函数时,优秀的程序员会尽量使它们具有灵活性,这样他们就可以重用它们来解决略有不同的问题。因此,与其硬编码函数来选择 1 到 100 之间的一个随机数,不如编写函数来选择 1 到某个整数 maxval 之间的一个随机数:

#include <stdio.h>#include <sys/random.h>intrandnum(int maxval){  /* pick a random number from 1 to maxval */  int randval;  getrandom(&randval, sizeof(int), GRND_NONBLOCK);  /* could be negative, so ensure it's positive */  if (randval < 0) {    return (-1 * randval % maxval + 1);  }  else {    return (randval % maxval + 1);  }}

该函数使用 Linux 的系统调用 getrandom 来生成一系列随机数。你可以在手册页中了解关于这个系统调用的更多信息,但请注意,getrandom 将用随机的 0 和 1 填充变量。这意味着最终值可以是正的,也可以是负的,因此你需要在之后进行测试,以确保 randnum 函数的结果是正值。

编写程序

你可以用这个函数来写你的“猜数字”程序:

#include <stdio.h>#include <sys/random.h> intrandnum(int maxval){  …}intmain(void){  int number;  int guess;  number = randnum(100);  puts("Guess a number between 1 and 100");  do {    scanf("%d", &guess);    if (guess < number) {      puts("Too low");    }    else if (guess > number) {      puts("Too high");    }  } while (guess != number);  puts("That's right!");  return 0;}

程序首先使用 randnum 函数从 1 到 100 之间选择一个随机数。在向用户输出一个提示后,程序进入一个 do-while 循环,以便用户可以猜测数字。

在循环的每次迭代中,程序测试用户的猜测的数值。如果用户的猜测小于随机数,程序将输出“Too low”,如果猜测大于随机数,程序将输出“Too high”。循环继续,直到用户的猜测与随机数相同。

当循环退出时,程序输出 “That's right!”,然后立即结束:

$ gcc -o guess -Wall guess.c$ ./guessGuess a number between 1 and 10050Too high30Too low40Too low45Too high42Too low43Too low44That's right!尝试动手

在学习一门新的编程语言时,这个“猜数字”游戏是一个很好的入门程序,因为它以一种非常直接的方式练习了几个常见的编程概念。通过用不同的编程语言实现这个简单的游戏,你可以演示一些核心概念,并比较每种语言的细节。

你有最喜欢的编程语言吗?你会如何用它来编写“猜数字”游戏呢?关注本系列文章,查看你可能感兴趣的其他编程语言的示例。

via: opensource.com

作者: Jim Hall 选题: lujun9972 译者: qfzy1233 校对: wxy

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

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

分享到 :
相关推荐

hplc原理及操作(Hplc原理)

文/利刃君全文共3470字,建议阅读时间13分钟。高效液相色谱法(High[&hel...

假牙膏用了会怎么样,牙膏能致癌吗

牙膏是我们早上起床后、晚上睡觉前都会用到的清洁牙齿、口腔的日用品。然而,你知道吗?牙...

十大就业前景好的专业排名,女孩适合什么专业好就业

大学里有“四个专业”处于成长期,需要各层次人才,É...

无推广中单元是什么意思(单元中没有推广中的创意)

一、更换创意图  京东快车的创意图片不能直接修改,只能通过添加新的SKU来添加新[&...

手势密码图案大全,爱心手势密码图案

声明:本站部分文章来自用户投稿,如无特殊说明或标注,均为本站原创发布。本站旨在共享仅...

精彩仙侠小说推荐,几本超精彩仙侠小说

几本超精彩仙侠小说,从迷茫开始,越看越爽,完本还不过瘾 1,烂柯棋缘。[&...

好感度满了可以插npc的游戏(《赛博朋克2077》可与NPC发生亲密关系)

外媒GameSpot于今日(11月27日)公开了一段《赛博朋克2077》的实机演示视...

豪华灯具店门头,灯具店一月能挣多少钱,一年利润

在县城开一家灯具店一年能挣多少钱。首先咱们先说一下灯具的利润,利润最大的灯就是客厅里...