因为课程设计写了勇者走迷宫小游戏,写了雏形,后续应该会改进更多
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#pragma comment(lib,"Winmm.lib")
int cot=0,flag1=0,flag2;//cot是计步器 flag1指示是否拿到钥匙 flag2指示是否在到达出口时拿到钥匙
int x,y,i,p,q;
char a[50][50]= { "########## HP:100",
"#o ## key:0",
"# # # # $#",
"# # # #",
"# ### # ##",
"# ## # *",
"# # # #",
"# # #### #",
"# # #",
"## #######",
};
void end()//过关图形函数
{
if(cot==30)
{
printf("什么?! 你竟然这么快就走出了迷宫!\n");
printf(" * \n");
printf(" *** \n");
printf(" *** \n");
printf(" *** \n");
printf(" *** 那么,圣剑属于你了!QAQ\n");
printf(" *** \n");
printf("*******\n");
printf(" *** \n");
printf(" *** \n");
system("color 4");
}
else
{
printf("庆贺吧!你走出了迷宫!\n");
system("color 2");
}
}
void status()//状态函数
{
if(x==2&&y==8)
{
flag1=1;//flag1变为1 拿到钥匙
}
}
//void PlayMusic(const char*FileName)//音乐控制函数
//{
// char cmdString[50]="open";
// strcat_s(cmdString,FileName);
// strcat_s(cmdString,"alias bkmusic");
//
// mciSendString("close bkmusic",NULL,0,NUll);
// mciSendString(cmdString,NULL,0,NULL);
// mciSendString("play bkmusic",NULL,0,NULL);
//}
int main()
{
i=1,x=1,y=1,p=5,q=9;
char ch;
printf("在你面前的,是一座迷宫\n#表示墙 o表示你 $表示钥匙 *表示出口\n");
printf("\n");
for(i=0; i<=9; i++)
{
puts(a[i]);
}
printf("当前步数: %d\n状态: \n",cot);
system("color 2");
while(x!=p||y!=q||!flag1)//只有在flag1==1(拿到钥匙)并且到达出口时跳出循环
{
flag2=0;
ch=getch();
if(ch=='s')
{
if(a[x+1][y]!='#')
{
if(a[x+1][y]=='*'&&!flag1)//判断进入出口前是否拿到钥匙
{
flag2=1;
goto out;
}
a[x][y]=' ';
x++;
a[x][y]='o';
status();
cot++;
}
}
if(ch=='w')
{
if(a[x-1][y]!='#')
{
if(a[x-1][y]=='*'&&!flag1)//判断进入出口前是否拿到钥匙
{
flag2=1;
goto out;
}
a[x][y]=' ';
x--;
a[x][y]='o';
status();
cot++;
}
}
if(ch=='a')
{
if(a[x][y-1]!='#')
{
if(a[x][y-1]=='*'&&!flag1)//判断进入出口前是否拿到钥匙
{
flag2=1;
goto out;
}
a[x][y]=' ';
y--;
a[x][y]='o';
status();
cot++;
}
}
if(ch=='d')
{
if(a[x][y+1]!='#')
{
if(a[x][y+1]=='*'&&!flag1)//判断进入出口前是否拿到钥匙
{
flag2=1;
goto out;
}
a[x][y]=' ';
y++;
a[x][y]='o';
status();
cot++;
}
}
out://跳出if语句
{
system("cls");//清屏
printf("在你面前的,是一座迷宫\n#表示墙 o表示你 $表示钥匙 *表示出口\n");
printf("\n");
for(i=0; i<=9; i++)
{
puts(a[i]);
};
printf("当前步数: %d\n",cot);
printf("状态:\n");
if(flag2)
printf("勇者啊,在拿到钥匙前,你还无法打开它!\n");
if(flag1)
{
printf("勇者,恭喜你!得到了遗失在迷宫中的钥匙!\n");
a[1][18]='1';
}
system("color 9");
}
}
system("CLS");//清屏
end();
Sleep(10000);//通关后挂机10秒
return 0;
}