📅  最后修改于: 2023-12-03 15:30:14.779000             🧑  作者: Mango
本游戏是一款基于 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 语言初学者提供一些基础知识的练习,如字符串的处理、时间库的使用等。