C语言实现猜数字游戏

猜数字游戏

大家小时候一定玩过猜数字游戏吧。猜数字游戏是令游戏随机产生一个100以内的正整数,然后玩家输入一个数对其进行猜测,接着需要你编写程序自动对其与随机产生的被猜数进行比较,如果你输入的数比随机产生的数太大,则会提示“太大了”;如果你输入的数比随机产生的数小了,则会提示“太小了”;如果输入的数与随机产生的数相等,则会提示“恭喜你,猜对了”。游戏的玩法大概就是这样,简单却有意思,悄悄告诉你:(最快的方法就是二分查找法)。

首先,我们可以打印一个简易的游戏菜单。输入1则表示开始玩游戏,输入0则表示退出程序,不玩游戏。

void menu()//打印菜单
{
    printf("******  1.play  0.exit  ******\n");
}

接下来我们可以输入主函数,确定游戏选项。此处用srand和time函数来生成时间戳产生一个随机值(0-32767)。然后进入循环体,请选择游戏选项,输入0则退出游戏;输入1则进入游戏;输入其它的则会提示输入错误,请重新输入。

int main()
{
    int input=0;
    srand((unsigned int)time(NULL));
    //拿时间戳来设置随机数的生成起始点
    //time_t time(time_t*timer)
    //time_t本质上是个长整型(即long型)
    //使用time记得头文件#include <time.h>
    //NULL是空指针,不想让它产生什么实际效果

   do//do while至少能够进行一次游戏
    {
        menu();
        printf("请选择>:\n");
        scanf("%d",&input);
        switch(input)
        {
        case 0:
            printf("退出游戏\n");
            break;
        case 1:
            game();//进入游戏
            break;
        default:
            printf("选择错误\n");
            break;
        }
     }while(input);
    return 0;
}

然后我们就要开始编写游戏玩法啦。首先得生成一个1-100的随机数,上一步我们通过时间戳生成了一个0-32767的随机数,此时我们将其模上一个100再加1,即可产生1-100的随机数。此时我们再输入一个数与其进行比较,如果输入的数较大,则提示“猜大了”;如果输入的数较小,则提示“猜小了”;如果刚好等于,就提示“恭喜你,猜对了”。

void game()
{

    //生成一个随机数
    int ret=0;
    //srand(1);
    int guess;//接收猜的数字
    ret=rand()%100+1;//生成1-100之间的随机数
    //rand会在0-RAND_MAX(32767)中产生一个随机整数
    //RAND_MAX需要头文件#include <stdlib.h>
    while(1)
    {
        printf("请猜数字:>\n");
        scanf("%d",&guess);
        if(guess>ret)
        {
            printf("猜大了\n");
        }
        else if(guess<ret)
        {
            printf("猜小了\n");
        }
        else
        {
            printf("恭喜你,猜对了");
            break;
        }
    }
}

对了,还有引用rand和time函数需要用到的头文件

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

如此简单且好玩的游戏就这样简单的三步就完成了,是不是非常的有趣,大家快去做完玩玩吧。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tyro达令

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值