C语言实现猜数字游戏

猜数字游戏是一款非常好玩又十分简单的游戏,那C语言怎么实现猜数字游戏呢?

一、猜数字游戏的实现过程:

1、电脑生成一个1-100之间随机数字。

2、进行猜数字,如果猜大了就提示“猜大了”;猜小了就提示“猜小了”;如果猜对了就提示“恭喜你猜对了!”。

3、实现猜多次,利用循环。

二、猜数字游戏的实现:

啥也不说了,直接上代码。

heard_files.h文件:

#include
#include//使用rand函数和srand函数需要引用这个头文件
#include//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函数使用的头文件都是

time函数使用的头文件是

以上就是我这次分享的内容啦!写的不好,请多担待!

你可能感兴趣的:(C语言,c语言,学习,游戏)