【C语言】猜数字游戏
解题思路:
1、菜单函数:
用户选择是否开始游戏;
2、游戏函数:
(1)系统产生一个随机数,作为要去猜的数。
(2)rand()函数用来产生随机数,返回一随机数值,范围在0至RAND_MAX (2147483647)间。
为了产生的随机数范围为1-100,result=rand()%100+1。
在调用此函数产生随机数前,必须先利用srand()设好随机数种子,
(3)如果未设随机数种子,rand()在调用时会自动设随机数种子为1。所生成的随机数都只能是一次性的,第二次运行的时候输出结果仍和第一次一样。
若要不同, 以不同的值来初始化它.初始化的函数就是srand(seed)。
通常可以利用geypid()或time(0)的返回值来当做seed。
如果用time(0)的话,要加入头文件#include<time.h>。
3、主函数:
(1)设置随机种子;
(2)进入菜单选择是否开始游戏,是则显示开始游戏并进入游戏函数,否则显示结束游戏。
具体代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int Menu();
void Game();
int main(){
srand(time(0));
while (1){
int choice = Menu();
if (choice == 1){
printf("游戏开始\n");
Game();
}
else if (choice == 2){
printf("游戏结束\n");
}
else{
printf("非法输入,请重新输入。\n");
}
}
system("pause");
return 0;
}
void Game(){
int result = rand() % 100 + 1;
int number = 0;
int count = 10;
for (count = 10; count >0; count--){
printf("你还有%d次猜数机会\n", count);
printf("请输入1-100之间任意一个数字\n");
printf("\n");
scanf_s("%d", &number);
if (number == result){
printf("厉害,猜对啦!\n");
printf("\n");
break;
}
else if (number > result){
printf("猜大啦!\n");
printf("\n");
}
else{
printf("猜小啦!\n");
printf("\n");
}
}
if (count == 0){
printf("真菜!十次都猜错了!\n");
printf("\n");
printf("===================================================================");
printf("\n");
}
printf("游戏结束!\n");
printf("\n");
}
int Menu(){
int choice = 0;
printf("游戏规则:\n每局将有十次猜数机会,十次都猜错则游戏失败!\n \n");
printf("是否开始游戏?是请输入 1 ,否请输入 2 \n");
printf("\n");
scanf_s("%d", &choice);
return choice;
}
运行结果: