写一个功能丰富的c语言小游戏程序
时间: 2023-11-19 16:05:59 浏览: 37
好的,以下是一个功能丰富的猜数字游戏的C语言程序,它包括了难度设置、计时、最高分记录等功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int guess, number, attempts = 0, best_score = 0;
int level, time_limit = 0, time_used = 0, time_left = 0;
char name[20];
printf("欢迎来到猜数字游戏!\n");
printf("请输入您的姓名:\n");
scanf("%s", name);
printf("请选择游戏难度:\n");
printf("1. 简单(10秒内猜对即可)\n");
printf("2. 普通(20秒内猜对即可)\n");
printf("3. 困难(30秒内猜对即可)\n");
scanf("%d", &level);
srand(time(NULL)); // 初始化随机数种子,以当前时间作为随机数生成的依据
switch (level) {
case 1: time_limit = 10; printf("您选择了简单难度,您有%d秒的时间猜出数字。\n", time_limit); break;
case 2: time_limit = 20; printf("您选择了普通难度,您有%d秒的时间猜出数字。\n", time_limit); break;
case 3: time_limit = 30; printf("您选择了困难难度,您有%d秒的时间猜出数字。\n", time_limit); break;
default: printf("无效的选择,游戏结束。\n"); return 0;
}
printf("游戏开始!\n");
do {
number = rand() % 100 + 1; // 生成1~100之间的随机数
time_used = 0;
attempts = 0;
printf("请猜一个1~100之间的整数:\n");
time_t start = time(NULL); // 记录游戏开始时间
do {
scanf("%d", &guess);
attempts++;
time_used = time(NULL) - start; // 计算游戏已用时间
time_left = time_limit - time_used; // 计算游戏剩余时间
if (guess > number) {
printf("猜大了,请再猜一次:\n");
} else if (guess < number) {
printf("猜小了,请再猜一次:\n");
} else {
printf("恭喜你,猜对了!你一共猜了%d次,用时%d秒。\n", attempts, time_used);
if (time_used < time_limit) {
printf("您在规定时间内猜对了,得分为%d分!\n", time_limit - time_used);
if (time_limit - time_used > best_score) {
best_score = time_limit - time_used;
printf("您创造了新的最高分纪录!\n");
}
} else {
printf("很遗憾,您没有在规定时间内猜对,游戏结束。\n");
return 0;
}
}
printf("距离游戏结束还有%d秒。\n", time_left);
} while (guess != number && time_left > 0);
if (time_left <= 0) {
printf("很遗憾,游戏时间已用完,游戏结束。\n");
return 0;
}
printf("是否继续游戏?(y/n)\n");
char choice;
scanf(" %c", &choice);
if (choice == 'n') {
printf("游戏结束,%s,您的最高分是%d分。\n", name, best_score);
return 0;
}
} while (1);
}
```
这个程序在原有的猜数字游戏基础上,增加了难度选择、计时、最高分记录等功能。用户可以选择游戏难度,每次游戏都有规定的时间限制,如果在规定时间内猜对数字,则可以获得相应的分数,并且如果获得了新的最高分,则会有提示。在每次游戏结束后,用户可以选择是否继续游戏,如果选择退出,则会输出最高分纪录。