前言
以下是显示效果
B站视频讲解:【小游戏】用 Dev-C++ 编写简单的控制台走迷宫小游戏
【小游戏】用 Dev-C++ 编写简单的控制台走迷宫小游戏
基础版
用 #
代表墙
用 空格 代表空地
用 O
代表玩家
地图存储:a[x][y]
以下是代码:
#include <cstdio>
#include <windows.h>
#include <conio.h>
//8*12
char a[50][50]={"############",
"#O# # #",
"# ## # # #",
"##### # #",
"# #### #",
"# ##### # #",
"# ## ",
"############"};
int main()
{
int x=1,y=1;
char ch;
for(int i=0;i<=7;i++)
puts(a[i]);
while(1)
{
ch=getch();
if(ch=='s')//下
{
if(a[x+1][y]==' ')
{
a[x][y]=' ';
x++;
a[x][y]='O';
}
}
else if(ch=='w')//上
{
if(a[x-1][y]==' ')
{
a[x][y]=' ';
x--;
a[x][y]='O';
}
}
else if(ch=='a')//左
{
if(a[x][y-1]==' ')
{
a[x][y]=' ';
y--;
a[x][y]='O';
}
}
else if(ch=='d')//右
{
if(a[x][y+1]==' ')
{
a[x][y]=' ';
y++;
a[x][y]='O';
}
}
system("cls");
for(int i=0;i<=7;i++)
puts(a[i]);
if(x==6 && y==11)
break;
}
printf("你赢了!");
Sleep(10000);
return 0;
}
优化版
以下有些函数的使用方法可以看看其他人的博客
#include <cstdio>
#include <windows.h>
#include <conio.h>
//8*12
char a[50][50]={"############",
"#O# # #",
"# ## # # #",
"##### # #",
"# #### #",
"# ##### # #",
"# ## ",
"############"};
void Hide()//用于隐藏控制台光标
{
HANDLE hOut;
CONSOLE_CURSOR_INFO curInfo;
hOut=GetStdHandle(STD_OUTPUT_HANDLE);
curInfo.dwSize=1;
curInfo.bVisible=0;
SetConsoleCursorInfo(hOut,&curInfo);
}
void Welcome()//欢迎界面
{
printf("\n\n 走 迷 宫");
printf("\n\n 请按任意键开始");
getch();
system("cls");
}
void Set()//设置光标到初始位置
{
HANDLE hOut;
COORD pos={0,0};
hOut=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut,pos);
}
int main()
{
Hide();
Welcome();
int x=1,y=1;
char ch;
for(int i=0;i<=7;i++)
puts(a[i]);
while(1)
{
ch=getch();
if(ch=='s')//下
{
if(a[x+1][y]==' ')
{
a[x][y]=' ';
x++;
a[x][y]='O';
}
}
else if(ch=='w')//上
{
if(a[x-1][y]==' ')
{
a[x][y]=' ';
x--;
a[x][y]='O';
}
}
else if(ch=='a')//左
{
if(a[x][y-1]==' ')
{
a[x][y]=' ';
y--;
a[x][y]='O';
}
}
else if(ch=='d')//右
{
if(a[x][y+1]==' ')
{
a[x][y]=' ';
y++;
a[x][y]='O';
}
}
Set();
for(int i=0;i<=7;i++)
puts(a[i]);
if(x==6 && y==11)
break;
}
printf("你赢了!");
Sleep(10000);
return 0;
}