无聊时写了一个迷宫游戏。
开发工具:Dev-c++
注意:碰到墙会死亡。自己设置地图,人物位置。
设置顺序:地图? 起始? 结束
位置设置:标记? x坐标? y坐标
实例:+ 1 1
一.函数块
消除光标:
void Hide()//用于隐藏控制台光标
{
HANDLE hOut;
CONSOLE_CURSOR_INFO curInfo;
hOut=GetStdHandle(STD_OUTPUT_HANDLE);
curInfo.dwSize=1;
curInfo.bVisible=0;
SetConsoleCursorInfo(hOut,&curInfo);
}
两个欢迎函数: ?
//地图/人物设置提示
void Welcome1()
{
printf("\n\n 设 置 地 图(人 物)");
printf("\n\n 请按任意键开始");
getch();
system("cls");
}
//开始闯关提示
void Welcome2()
{
printf("\n\n 闯 关");
printf("\n\n 请按任意键开始");
getch();
system("cls");
}
二.数据块
char a[1000][1000],a1,a2;
int n1,n2,m1,m2;
三.主函数块
Relife: //重玩处
system("color fD");
Hide();
Welcome1();
//设置地图
int n,m;
cin>>n>>m;
system("cls");
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
system("cls");
cin>>a1>>n1>>n2;
system("cls");
cin>>a2>>m1>>m2;
system("cls");
a[n1-1][n2-1]=a1;
a[m1-1][m2-1]=a2;
Welcome2();
while(1){
//画地图
cout<<"\n\n\n\n\n\n ";
cout<<" ";
for(int i=1;i<=m+2;i++)
cout<<"■";
cout<<endl;
for(int i=0;i<n;i++){
cout<<" ■";
for(int j=0;j<m;j++){
cout<<a[i][j]<<' ';
}
cout<<"■\n";
}
cout<<" ";
for(int i=1;i<=m+2;i++)
cout<<"■";
cout<<"\n 上下左右键控制,移到终点.\n";
cout<<"\n 作者:you are sb.";
cout<<endl;
//判断按键
int key=_getch();
key=_getch();
int k1=n1,k2=n2;
switch(key) {
case 72 : n1--;break; //上
case 80 : n1++;break; //下
case 75 : n2--;break; //左
case 77 : n2++;break; //右
}
a[k1-1][k2-1]='.';
//死亡
if(a[n1-1][n2-1]=='#'||n1<1||n1>n||n2<1||n2>m){
system("cls");
cout<<"game over!\n";
break;
}
//成功
if(a[n1-1][n2-1]==a2){
system("cls");
cout<<"Good!\n";
break;
}
//移动
a[n1-1][n2-1]=a1;
system("cls");
}
Sleep(1000);
//重玩
cout<<"====重玩====\nyes or no\n";
string yes;
cin>>yes;
if(yes=="yes"){
system("cls");
goto Relife;
}
return 0;
}
比较简单,想玩可以玩玩。
|