📜  C中的随机数记忆游戏(1)

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

C中的随机数记忆游戏

简介

本游戏是一款基于 C 语言的记忆游戏,通过随机生成数字来进行游戏。

玩家需要在有限的时间内记住随机生成的数字序列,再在一定时间内输入正确的数字序列。该游戏的难度可以根据随机数的生成位数调整。

实现思路

本游戏涉及到随机数的生成、计时器的运行、以及用户输入和比较等操作。

随机数的生成

C 语言中的 rand() 函数可以用于生成伪随机数。通常情况下,我们需要使用 srand(time(0)) 函数来初始化随机数种子,以保证每次运行程序时生成的随机数是不同的。

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

int main() {
    srand(time(0)); // 初始化随机数种子
    int r = rand(); // 生成一个伪随机数
    printf("%d\n", r);
    return 0;
}
计时器的运行

为了实现游戏时间的限制,我们需要借助 C 语言的时间库 time.h。可以通过获取系统当前时间并与开始时间进行比较,以判断游戏时间是否已过期。

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

int main() {
    time_t start_time = time(0); // 获取系统当前时间
    int seconds = 5; // 设定游戏时间为 5 秒
    while (1) {
        time_t current_time = time(0);
        if (current_time - start_time >= seconds) {
            printf("游戏结束");
            break;
        }
    }
    return 0;
}
用户输入和比较

为了让玩家输入数字序列,我们可以使用 scanf() 函数读取用户输入的值,并将其保存在一个数组中。在用户输入完成后,我们可以使用 strcmp() 函数将用户输入的数字序列与随机数序列进行对比,来判断用户是否输入正确。

#include <stdio.h>
#include <string.h>

int main() {
    char input[100];
    printf("请输入数字序列:");
    scanf("%s", input); // 读取用户输入的值
    char random[] = "1234";
    int result = strcmp(input, random); // 比较用户输入值和随机数序列
    if (result == 0) {
        printf("输入正确");
    } else {
        printf("输入错误");
    }
    return 0;
}
完整代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

int main() {
    srand(time(0)); // 初始化随机数种子
    int len = 4; // 定义随机数位数
    char random[len + 1];
    for (int i = 0; i < len; i++) {
        random[i] = rand() % 10 + '0'; // 生成数字序列
    }
    random[len] = '\0'; // 末尾添加 '\0'
    printf("数字序列已生成,请记住: %s\n", random);

    time_t start_time = time(0); // 获取系统当前时间
    int seconds = 5; // 设定游戏时间为 5 秒
    char input[100];
    printf("请输入数字序列:");
    scanf("%s", input); // 读取用户输入的值
    time_t current_time = time(0); // 获取当前时间
    if (current_time - start_time >= seconds) {
        printf("时间已过,请重试");
    } else {
        int result = strcmp(input, random); // 比较用户输入值和随机数序列
        if (result == 0) {
            printf("输入正确");
        } else {
            printf("输入错误");
        }
    }
    return 0;
}
总结

通过本游戏的实现,我们可以了解到 C 语言中如何生成随机数、计时器的实现、以及用户输入和比较的操作。此外,还可以为 C 语言初学者提供一些基础知识的练习,如字符串的处理、时间库的使用等。