猜数字游戏是一款非常好玩又十分简单的游戏,那C语言怎么实现猜数字游戏呢?
一、猜数字游戏的实现过程:
1、电脑生成一个1-100之间随机数字。
2、进行猜数字,如果猜大了就提示“猜大了”;猜小了就提示“猜小了”;如果猜对了就提示“恭喜你猜对了!”。
3、实现猜多次,利用循环。
二、猜数字游戏的实现:
啥也不说了,直接上代码。
heard_files.h文件:
#include<stdio.h>
#include<stdlib.h>//使用rand函数和srand函数需要引用这个头文件
#include<time.h>//time函数需要引用这个头文件
game.c文件:
//猜数字游戏
#include "header_files.h"//引用自己的头文件用双引号
int main()
{
int input = 0;//用户选择的数字(1或0)
//设置随机数生成器
//利用time函数获得时间戳
srand((unsigned int)time(NULL));
//因为至少要玩一次游戏,所以使用do while循环
do
{
//打印菜单
menu();
printf("请选择:");
scanf("%d", &input);//通过用户选择的数字,决定游戏是否进行
switch (input)
{
case 1:
//开始游戏
printf("开始猜数字游戏\n");
game();//调用函数实现玩游戏
break;
case 0:
//退出游戏
printf("退出游戏\n");
break;
default:
//选择错误,提示重新输入
printf("选择错误,请重新输入\n");
break;
}
} while (input);
return 0;
}
menu.文件:
//菜单函数
void menu()
{
printf("|-***********************-|\n");
printf("|****** 1. play ******|\n");
printf("|****** 0. exit ******|\n");
printf("|-***********************-|\n");
}
play_game.c文件:
//猜数字的实现
//首先是生成随机数字
//接下来是猜数字
#include "header_files.h"//引用自己的头文件用双引号
int game()
{
//生成随机数字
int ret = rand() % 100 + 1;//%100+1是生成1-100之间的随机数字
//猜数字
int guess = 0;//用户猜的数字
while (1)
{
printf("请猜数字:");
scanf("%d", &guess);
//判断数字猜的情况
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你猜对了!\n");
break;//跳出循环
}
}
return 0;
}
rand函数的功能是随机生成一个1-RAND_MAX(大小为32767)之间的数字,但是想要使生成的数字是随机的(不是每次都生成一样的数字),需要使用函数srand。
srand函数是一个随机数生成器,它的参数如果是每时每刻在变化的,生成的随机数就是不一样的,所以需要用一个随机值来做它的参数。而计算机中每时每刻都在变化的时间戳(从1970年1月1日起所经过的秒数),时间戳需要使用到time函数。
time函数是时间戳,参数是一个指针,返回值类型是time_t(实际上是unsigned int类型的值),而srand函数的返回值类型是unsigned int,所以将其返回值类型强转为unsigned int。
另外需要注意的是,srand函数只需调用一次即可,如果多次重复调用,生成的随机数之间的大小很接近,不符合游戏玩法。所以不能将该函数的调用放在循环中。
rand和srand函数使用的头文件都是<stdlib.h>。
time函数使用的头文件是<time.h>。
以上就是我这次分享的内容啦!写的不好,请多担待!