自己写了一个猜数游戏改善版,把老师讲的猜数游戏改善了一下,设置了一个游戏菜单,赢了或输了都会提醒你再玩一次,十次猜不到就输了,同时呢增加了程序的健壮性,就是提示太大太小的界面不太满意,等会更高级的再修改吧,游戏挺简单的,菜单也过于简陋了,等有思路了可以让他更有趣些,感兴趣的朋友可以随便玩玩。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int Random();//随机数
void Game();//猜数游戏
void AgainGame();//再次玩游戏
void Over();//结束游戏
int main()//主函数菜单
{
char start;
int d;
do{system("CLS");
d=0;
printf("***************************\n\n 猜数字小游戏\n \n***************************\n提示:请在10次内猜到这个数");
printf("\n\n\n A.开始游戏\n B.退出游戏\n");
scanf("%c",&start);
getchar();
switch (start)
{
case 'a':
case 'A': { system("CLS");Game(); } break;
case 'b':
case 'B': { system("CLS");Over(); } break;
default:d=1;
}
}while (d==1);
return 0;
}
int Random()//随机数
{
int magic;
srand(time(NULL));
magic=rand() % 100 + 1;
return magic;
}
void Game()//猜数游戏
{
double guess;
int counter,magic,ret;
magic =Random() ;
counter = 0;
ret=0;
do{
do{
printf("请你输入猜的数字(1~100):");
ret=scanf("%lf", &guess);
fflush(stdin);
} while(ret==0||(guess>100||guess<1)||(guess!=(int)guess));
counter++;
if (guess > magic) {system("CLS");printf("****************太大了!****************\n\n\n"); }
else if (guess < magic) { system("CLS");printf("****************太小了!****************\n\n\n");}
else {system("CLS");printf("***************************\n 恭喜你!猜对了! \n***************************");}
} while (guess != magic && counter < 10);
if(counter==10) {system("CLS"); printf("***************************\n 猜数达到十次!本次猜数失败! \n***************************");}
AgainGame();
return;
}
void AgainGame()//再次玩游戏的菜单
{
char reply,c;
printf("\n\n\n 是否继续游戏?\n A.继续游戏\n B.退出游戏\n");
scanf(" %c", &reply);
getchar();
switch (reply)
{
case 'a':
case 'A': { system("CLS");Game(); } break;
case 'b':
case 'B': { system("CLS");Over(); } break;
default: {putchar('\a');system("CLS");AgainGame();}
}
return;
}
void Over()//结束游戏
{
printf("***************************\n 感谢你玩这个游戏! \n***************************\n\n\n");
}