📜  在 C 中使用 rand() 和 srand() 猜游戏(1)

📅  最后修改于: 2023-12-03 15:07:37.419000             🧑  作者: Mango

在 C 中使用 rand() 和 srand() 猜游戏

简介

rand()srand() 是 C 语言标准库中的随机数生成函数,它们可以帮助我们在程序中生成随机数。本文将介绍如何使用这两个函数来实现一个猜数字游戏。

需求分析

我们需要实现一个猜数字游戏,游戏规则如下:

  1. 程序会随机生成一个范围在 0-99 之间的整数作为答案;
  2. 玩家需要在控制台输入一个整数猜测答案;
  3. 程序会根据玩家的猜测情况给予提示,具体规则如下:
    • 如果玩家猜的数字比答案大,程序会提示“你猜的数字太大了”,并让玩家再次尝试;
    • 如果玩家猜的数字比答案小,程序会提示“你猜的数字太小了”,并让玩家再次尝试;
    • 如果玩家猜对了数字,程序会提示“恭喜你,你赢了!”并结束游戏。
实现步骤
1. 导入头文件

我们需要导入 stdlib.h 头文件以使用 rand()srand() 等随机数生成函数。此外,我们还需要导入 stdio.h 头文件以使用控制台输入输出函数。

#include <stdio.h>
#include <stdlib.h>
2. 程序初始化

在程序启动时,我们需要调用 srand() 函数初始化随机数发生器。由于 srand() 函数需要一个整数参数作为种子,我们可以使用 time() 函数获取当前时间作为种子。

srand(time(NULL)); // 初始化随机数发生器
3. 生成随机数

我们可以使用 rand() 函数生成一个范围在 0-99 之间的整数作为答案。

int answer = rand() % 100;
4. 开始游戏

while 循环中,我们需要调用 scanf() 函数接收玩家的猜测,并根据猜测情况给予提示。当玩家猜对答案时,循环结束。

int guess;
while (1) {
    printf("请输入一个0-99之间的整数猜测答案:");
    scanf("%d", &guess);
    if (guess < answer) {
        printf("你猜的数字太小了。\n");
    } else if (guess > answer) {
        printf("你猜的数字太大了。\n");
    } else {
        printf("恭喜你,你赢了!\n");
        break;
    }
}
5. 完整代码

下面是完整的代码实现:

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

int main()
{
    srand(time(NULL)); // 初始化随机数发生器
    
    int answer = rand() % 100; // 生成随机数
    int guess;
    
    while (1) {
        printf("请输入一个0-99之间的整数猜测答案:");
        scanf("%d", &guess);
        if (guess < answer) {
            printf("你猜的数字太小了。\n");
        } else if (guess > answer) {
            printf("你猜的数字太大了。\n");
        } else {
            printf("恭喜你,你赢了!\n");
            break;
        }
    }
    
    return 0;
}
总结

本文介绍了如何使用 rand()srand() 函数在 C 语言中实现一个简单的猜数字游戏。实际上,这只是对随机数生成的简单应用,我们可以将其应用到更加丰富的场景中。