猜数字游戏的实现

文章目录

  • 随机数的生成
  • rand函数
  • srand函数
  • time函数
  • 设置随机数的范围
  • 猜数字游戏的实现
  • 小结


前言

游戏要求:
1. 电脑⾃动⽣成1~100的随机数
2. 玩家猜数字,猜数字的过程中,根据猜测数据的⼤⼩给出⼤了或⼩了的反馈,直到猜对,游戏结束

提示:以下是本篇文章正文内容,下面案例可供参考

一、随机数的生成

要想完成猜数字游戏,⾸先得产⽣随机数,那怎么产⽣随机数呢?

1.1 int rand (void);

从语言提供了一个函数叫rand,这个函数可以生成随机数。

二、rand函数

rand函数会返回⼀个伪随机数,这个随机数的范围是在0~ RAND_MAX 之间,这个RAND_MAX的⼤⼩是
依赖编译器上实现的,但是⼤部分编译器上是32767。
如果再深⼊了解⼀下,我们就不难发现,其实rand函数⽣成的随机数是伪随机的,伪随机数不是真正
的随机数,是通过某种算法⽣成的随机数。真正的随机数的是⽆法预测下⼀个值是多少的。⽽rand函
数是对⼀个叫“种⼦”的基准值进⾏运算⽣成的随机数。

三、srand函数

C语⾔中⼜提供了⼀个函数叫 srand ,⽤来初始化随机数的⽣成器的,srand的原型如下:
1 void srand ( unsigned int seed);
程序中在调⽤ rand 函数之前先调⽤ srand 函数,通过 srand 函数的参数seed来设置rand函数⽣成随
机数的时候的种⼦,只要种⼦在变化,每次⽣成的随机数序列也就变化起来了。

四、time函数

在程序中我们⼀般是使⽤程序运⾏的时间作为种⼦的,因为时间时刻在发⽣变化的。
在C语⾔中有⼀个函数叫 time ,就可以获得这个时间,time函数原型如下:
time_t time ( time_t * timer);
time 函数会返回当前的⽇历时间,其实返回的是1970年1⽉1⽇0时0分0秒到现在程序运⾏时间之间的 差值,单位是秒。返回的类型是time_t类型的,time_t 类型本质上其实就是32位或者64位的整型类型。

五、设置随机数的范围

rand() % 100  // 余数的范围是 0~99
如果要⽣成1~100之间的随机数,⽅法如下:
rand()% 100 + 1 ; //%100 的余数是 0~99,0~99 的数字 +1, 范围是 1~100

六、猜数字游戏的实现

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

void game()
{
    int r = rand() % 100 + 1;
    int guess = 0;
    while (1)
    {
        printf("请猜数字:>");
        scanf("%d", &guess);
        if (guess < r)
        {
            printf("猜小了\n");
        }
        else if (guess > r)
        {
            printf("猜大了\n");
        }
        else
        {
            printf("恭喜你,答案正确\n");
            break;
        }


    }
}

void menu()
{
    printf("**************\n");
    printf("**************\n");
    printf("*** 1.play ***\n");
    printf("*** 0.exit ***\n");
    printf("**************\n");
    printf("**************\n");
}

int main()
{
    int input = 0;
    srand((unsigned int)time(NULL));
    do
    {
        menu();
        printf("请输入>:");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();
            break;
        case 0:
            printf("游戏结束\n");
            break;
        default:
            printf("输入错误,请重新输入\n");
            break;
        }

    } while (input);
    return 0;
}


七、总结

以上就是今天要讲的内容,本文仅仅简单介绍了猜数字游戏的方法,而C语言提供了大量能使我们快速便捷地处理数据的函数和方法。如果我们可以很好地运用就可以实现程序的运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值