哇,激动,初学C语言一个月左右,做了第一个简单小游戏——数字炸弹
还融合了登录系统,密码:85915206
#include<string.h> #include<stdio.h> #include<Windows.h> #include<stdlib.h> #include<time.h>
void menu()//建立菜单样板 { ?? ?printf("###### ? ? ? 数字炸弹 ? ? #########\n"); ?? ?printf("### ? 1.开始游戏 ? ?0.退出 ? ? ####\n"); ?? ?printf("###################################\n");
} void game() { ?? ?int a=0;//用于接收随机数的变量 ?? ?int b=0; ?? ?a=rand()%100+1;//%100+1后,生成的数字为1到100之间的数 ?? ?while(1) ?? ?{ ?? ?printf("请输入1到100之间的数字:"); ?? ?scanf("%d",&b); ?? ?if(b>a) ?? ?{ ? ?printf("猜大啦\n"); ? ?} ?? ?else if(b<a) ?? ?{ ? ?printf("猜小啦\n"); ? ?} ?? ?else if(b=a) ?? ?{ ? ?printf("bong~炸弹爆炸,游戏结束\n"); ? break;} ?? ?}
}
int main() { ?? ?int a=0; ?? ?int i=0; ?? ?char password[20]={0}; ?? ?int input=0;
?? ?while(strcmp(password,"85915206")!=0) ?? ?{ ?? ?a=3; ?? ?for(i=0;i<3;i++) ?? ?{?? ? ?? ?a--; ?? ?printf("请输入密码:"); ?? ?scanf("%s",password); ?? ?if(strcmp(password,"85915206")==0) ?? ?{ ? ? ? printf("登入成功,系统正在载入...\n") ; ? ? ? ? break; ? ? ?} ?? ?else ?? ?{ ? ? ? printf("密码错误(还剩下:%d次机会)\n",a) ; ? ? ? ? ? ? ? } ?? ?}
?? ?if(i==3) ?? ?{ ? ? ?? ?? ??? ?printf("密码错误超过三次,已锁机,等待10秒后可重新输入\n") ;? ?? ??? ?Sleep(10000); ?? ??? ?i=0; ?? ??? ?continue; ?? ?} ?? ?} ?? ? ?? ?Sleep(3000); ?? ? ?? ?srand((unsigned int)time(NULL));//这个不能放在循环里面 ?? ?do//由于我们需要先进入菜单并执行一次游戏,再进入循环,所以我们选择do...while ?? ?{ ?? ??? ?menu();//菜单 ?? ??? ?printf("请选择:"); ?? ??? ?scanf("%d",&input); ?? ??? ?switch(input)//分支,玩/不玩/乱选都会跳出来判断是否循环,这里只有让不玩也就是input为0时跳出循环 ?? ??? ?{ ?? ??? ??? ?case 1: ?? ??? ??? ??? ?game();//game就是游戏内容,另写游戏内容用void game(){...} ?? ??? ??? ??? ?break; ?? ??? ??? ?case 0: ?? ??? ??? ??? ?printf("正在退出游戏,请稍等..."); ?? ??? ??? ??? ?Sleep(1500); ?? ??? ??? ??? ?break; ?? ??? ??? ?default: ?? ??? ??? ??? ?printf("输入错误,请重新选择\n"); ?? ??? ??? ??? ?Sleep(1500); ?? ??? ??? ??? ?break; ?? ??? ?}
?? ?}while(input);//所以这里直接把条件设置为input,如果不玩,input就为0,则退出游戏 ?? ?return 0; }
|