#include <stdio.h>
//使用time函数
#include <time.h>
//使用system函数,rand函数,srand函数
#include <stdlib.h>
//清屏操作
void clear_screen(){
//判断是否为Windows系统
#ifdef _WIN32
system("cls");
//其他系统
#else
system("clear");
#endif
}
//初始页面
void page0(){
printf("****************************************\n");
printf("********1.开始游戏 2.退出游戏********\n");
printf("********3.游戏难度 4.神秘力量********\n");
printf("****************************************\n");
}
//模块一
int page1(int *a_0,int *a_1){
int random=0;
//初始化种子,防止随机数重复
srand((unsigned int)time(NULL));
switch (*a_0)
{
case 1:
//初始化种子,防止随机数重复
srand((unsigned int)time(NULL));
//定义随机数
random=rand()%5+1;
printf("小宝宝你好~(随机数范围1-5)\n");
break;
case 2:
//初始化种子,防止随机数重复
srand((unsigned int)time(NULL));
//定义随机数
random=rand()%20+1;
printf("当前难度:简单(随机数范围1-20)\n");
break;
case 3:
//初始化种子,防止随机数重复
srand((unsigned int)time(NULL));
//定义随机数
random=rand()%50+1;
printf("当前难度:普通(随机数范围1-50)\n");
break;
case 4:
//初始化种子,防止随机数重复
srand((unsigned int)time(NULL));
//定义随机数
random=rand()%100+1;
printf("当前难度:困难(随机数范围1-100)\n");
break;
case 5:
//初始化种子,防止随机数重复
srand((unsigned int)time(NULL));
//定义随机数
random=rand()%150+1;
printf("当前难度:地狱(随机数范围1-150)\n");
break;
case 6:
//初始化种子,防止随机数重复
srand((unsigned int)time(NULL));
//定义随机数
random=rand()%500+1;
printf("666,这个人是挂(随机数范围1-500)");
break;
}
//开启作弊后才能执行
if(*a_1==100){
printf("(作弊提醒!!!)本次要猜的数是%d\n",random);
}
printf("请输入你的数字\n");
int b=0;
int c=0;
//do while条件循环,在用户猜对之前一直循环
do{
int a=0;
if (scanf("%d",&a)!=1){
printf("不是有效数字!!\n");
return 1;
}
if(a==random){
printf("恭喜你猜对了!!!");
b=1;
}else if(a>random){
clear_screen();
printf("猜大了,小一点试试捏~请重新输入\n");
}else {
clear_screen();
printf("猜小了,大一点试试捏~请重新输入\n");
}
c++;
}while(b!=1);
printf("该随机数是%d,一共猜了%d次呦~\n",random,c);
return 0;
}
//模块三
int page3(int *a_0){
int a=0;
s1:
//打印初始菜单
printf("当前模式为:选项%d(选项对应难度)\n",*a_0);
printf(" ********1.宝宝模式********\n");
printf(" ********2.简单模式********\n");
printf(" ********3.普通模式********\n");
printf(" ********4.困难模式********\n");
printf(" ********5.地狱模式********\n");
printf("********6.折磨自己模式********\n");
printf("请选择模式1 2 3 4 5 6:\n");
if (scanf("%d",&*a_0)!=1 && *a_0<1 &&*a_0>6){
printf("不是有效数字!!\n");
return 1;
}
//模式切换
switch (*a_0)
{
case 1:
clear_screen();
printf("不是~哥们~,这宝宝模式,你也选?????(按1继续,按0退出)\n");
if (scanf("%d",&a)!=1 && a<1 &&a>2){
printf("不是有效数字!!\n");
return 1;
}if(a==1){
printf("好吧,给你选就是了\n");
break;
}if(a==0){
clear_screen();
goto s1;
}
case 2:
clear_screen();
printf("切换成功,当前为简单模式\n");
break;
case 3:
clear_screen();
printf("切换成功,当前为普通模式\n");
break;
case 4:
clear_screen();
printf("切换成功,当前为困难模式\n");
break;
case 5:
clear_screen();
printf("切换成功,当前为地狱模式\n");
break;
case 6:
clear_screen();
printf("我嘞个豆,哥们真是吃饱了撑得,满足你!!!(按1继续,按0退出)\n");
if (scanf("%d",&a)!=1 && a<1 &&a>2){
printf("不是有效数字!!\n");
return 1;
}if(a==1){
printf("行,你是个人物!\n");
break;
}if(a==0){
clear_screen();
goto s1;
}
default:
clear_screen();
printf("输入有误!请选择模式1 2 3 4 5 6\n");
break;
}
//全局变量
return *a_0;
}
//模块四
int page4(){
printf("这是来自东方的神秘力量(按1继续)\n");
//定义初始化判断条件
int a=0;
if (scanf("%d",&a)!=1 && a<1 &&a>2){
printf("不是有效数字!!\n");
return 1;
}
//开始判断用户输入的是0,还是1
if(a==1){
a=0;
clear_screen();
printf("好吧,不装了,就是作弊模式(按1继续,按0退出)\n");
if (scanf("%d",&a)!=1 && a<1 &&a>2){
printf("不是有效数字!!\n");
return 1;
}
if(a==1){
a=0;
clear_screen();
printf("你确定要开作弊模式吗?(按1继续,按0退出)\n");
if (scanf("%d",&a)!=1 && a<1 &&a>2){
printf("不是有效数字!!\n");
return 1;
}
if(a==1){
a=0;
clear_screen();
printf("行,给你开就是了\n");
return 2;
}else{
clear_screen();
printf("嘿嘿,不作弊才是好孩子\n");
return 0;
}
}else{
clear_screen();
printf("嘿嘿,不作弊才是好孩子\n");
return 0;
}
}else{
clear_screen();
printf("嘿嘿,不作弊才是好孩子\n");
return 0;
}
return 0;
}
//主函数
int main(){
//定义全局变量a_0(游戏难度调整条件)
int a_0=3;
//定义全局变量a_1(作弊模式判断条件)
int a_1=200;
start:
page0();
printf("请选择模式1 2 3 4:\n");
int a=0;
if (scanf("%d",&a)!=1 && a<1 &&a>4){
printf("不是有效数字!!\n");
return 1;
}
//switch条件选择模块
switch(a){
//模块一
case 1:{
clear_screen();
int x=page1(&a_0,&a_1);
if(x==0){
printf("游戏结束!欢迎下次再玩~");
return 0;
}else{
printf("输入错误!");
return 1;
}
break;
}
//模块二
case 2:
printf("拜拜~,下次见喽~\n");
break;
//模块三
case 3:{
clear_screen();
page3(&a_0);
int x=page1(&a_0,&a_1);
if(x==0){
printf("游戏结束!欢迎下次再玩~");
return 0;
}else{
printf("输入错误!");
return 1;
}
break;
}
//模块四
case 4:{
clear_screen();
int y=page4();
//判断是否开启作弊模式
if(y==2){
printf("作弊模式已开启,游戏开始时会显示要猜的数\n");
a_1=100;
goto start;
}
if(y==0){
goto start;
}
break;
}
default:
printf("输入有误!请选择模式1 2 3 4\n");
break;
}
}
咱们的小项目终于是写完了,因为个人原因,更新比较慢忘谅解!!!!!
下面介绍一下,本次更新内容:
更新模块四,支持开启作弊模式
优化完善部分代码,实行4个模块的联动(模块二:真的吗?我们四个真厉害!!)
新增全局变量a_1实现是否为作弊模式的检测
新增goto函数(正常情况下不推荐使用)实现代码再运用
优化视觉效果,实现用户自己选择继续还是退出(怎么有种RPG游戏的感觉)
下面是部分运行结果:
切换成功,当前为地狱模式
当前难度:地狱(随机数范围1-150)
(作弊提醒!!!)本次要猜的数是124
请输入你的数字
124
恭喜你猜对了!!!该随机数是124,一共猜了1次呦~
游戏结束!欢迎下次再玩~
请按任意键继续. . .
不是~哥们~,这宝宝模式,你也选?????(按1继续,按0退出)
1
好吧,给你选就是了
小宝宝你好~(随机数范围1-5)
请输入你的数字
行,给你开就是了
作弊模式已开启,游戏开始时会显示要猜的数
****************************************
********1.开始游戏 2.退出游戏********
********3.游戏难度 4.神秘力量********
****************************************
请选择模式1 2 3 4:
注:该代码是本人自己所写,可能不够好,不够简便,欢迎大家指出我的不足之处。如果遇见看不懂的地方,可以在评论区打出来,进行讨论,或者联系我。如果可以,可以点一个免费的赞支持一下吗?谢谢各位彦祖亦菲!!!!!