今天,我们来探讨怎样用C语言编写一个简单的猜数字小游戏,这里用到的开发工具是VS2022。当然开始之前首先要构思,理清大概思路能让我们做起来有条不絮。
1.先搭建一个游戏界面
2.编写游戏
(1)产生一个随机数
(2)猜一个数,进行判断
(3)猜中退出
3.测试
1.搭建一个简单的游戏界面
我们首先来搭建一个简易游戏界面,这里选用输入1或0来表示我们选择开始游戏或退出游戏。
这里我们将游戏界面作为一个函数在主函数中进行调用,因为不需要返回值,所以用void来定义函数。
在这里我们可以先梳理一下思路,看看有没有不妥的地方。首先进入主函数,打印出简易游戏界面,我们输入1或0来选择开始游戏或者退出游戏。输入1,则开始猜数字游戏;输入0,则退出游戏;输入其他值,则提示重新选择。
这里我们用到了do...while语句,do...while语句会先执行循环体中的代码,然后再检查条件。如果条件为真,则继续执行循环体中的代码,直到条件为假。与while语句不同的是,do...while语句保证循环体至少会执行一次,即使条件一开始就为假。它的基本语法格式如下:
do {
// 循环体代码
} while (条件);
在do...while语句中,我们还嵌套了一个switch语句,switch语句是一种条件语句,用于根据表达式的值选择不同的代码块进行执行。它通常用于替代多个if-else语句的情况,可以使代码更加简洁和易读。
switch语句的基本结构如下:
switch (表达式){
case 值1:
// 代码块1
break;
case 值2:
// 代码块2
break;
...
default:
// 默认代码块
}
当表达式的值等于某个case后面的值时,对应的代码块将被执行。如果没有匹配的值,则执行default代码块(可选)。每个case后面通常会有一个break语句,用于跳出switch语句,防止继续执行其他case的代码块。
2.编写游戏
我们写一个game函数,在主函数中调用,这里同样不需要返回值,因此也用void定义。
先来梳理一个游戏思路:
这里我们要认真地想一下,猜数字游戏要怎么实现呢?首先要电脑先产生一个随机数,然后我们来猜,当然产生的这个随机数要有一个范围,不然我们猜起来实在太难了,不妨我们就限定它的范围为1~100。那电脑要怎样产生一个1~100的随机数呢?
我们这里先简单的提及一些函数、感念,就不细细介绍了。有函数rand(头文件为#include <stdlib.h>),调用rand函数之前需要先调用srand()函数来设置这个随机数的时针器,括号里需要一个随机的无符号整形,但是我们开始就是想要一个随机数,显然行不通。所以需要我们另想办法,我们可以在这里放一个时时刻刻都在变化的值,那什么是时时刻刻都在变化的呢?当然是时间了!这里就又引出了时间戳的感念,有time函数(头文件为#include <time.h>)(unsigned int)time(NULL)可以给srand函数返回一个无符号整形值,srand((unsigned int)time(NULL))可以设置一个随机的起点,rand函数可以生成一个0到RAND_MAX(32767)之间的随机整数。可是这个函数还不能实现生成指定的1~100这个范围,我们需要想想办法,这里我们思考一下,如果给rand取100的模,不是就实现了生成0~99随机数的需要吗,然后只需要再+1,就实现了生成1~100随机数的这个需要。代码如下:
3.测试
到这里这个简单的游戏已经基本完成了,我们测试后没有什么问题。在编写C语言的过程中,我们最好每完成一部分就测试一下,来确保整体的正确性,如果一股脑的一直编写,很容易产生错误,而且很难找出错误在哪里。
最后,让我们来完整地看一下自己编写的猜数字小游戏代码。
测试结果如下: