我们需要先输入头文件以及标准名字空间。
#include<bits\stdc++.h>
#include <windows.h>//用于调用getch()
#include <conio.h>//用于调用隐藏光标,Sleep()
using namespace std;
接着我们要定义一个二维的字符数组当做地图。
char a[50][50]={"O#########",
" #",
"# # ######",
"# # ####",
"# # # ####",
"# # ###",
"# #### ###",
"# #### ###",
"# ### ",
"##########"};
/*
char a是字符数组,由于比较大,因而在主函数外注明
*/
然后我们要编写初始界面(隐藏光标的函数我也先打出来了,光标若未隐藏会比较别扭)。
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
cout<<"w表示上,s表示下,a表示左,d表示右(注意小写)"<<endl;
cout<<"#表示墙壁,O表示玩家,$表示宝藏"<<endl;
Sleep(5000);//用于延时
system("cls");//用于清屏
/*
初始界面
*/
这段是隐藏光标的函数。
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
我们要定义初始位置及输出地图。
int x=0,y=0;//初始位置定义
char ch;
for(int i=0;i<=9;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<=9;i++)
puts(a[i]);
if(x==8 && y==9)
break;
}
cout<<"你赢了"<<endl;
Sleep(10000);
以下是全部的源代码
#include<bits\stdc++.h>
#include <windows.h>//用于调用getch()
#include <conio.h>//用于调用隐藏光标,Sleep()
using namespace std;
char a[50][50]={"O#########",
" #",
"# # ######",
"# # ####",
"# # # ####",
"# # ###",
"# #### ###",
"# #### ###",
"# ### ",
"##########"};
/*
char a是字符数组,由于比较大,因而在主函数外注明
*/
int main()
{
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
cout<<"w表示上,s表示下,a表示左,d表示右(注意小写)"<<endl;
cout<<"#表示墙壁,O表示玩家,$表示宝藏"<<endl;
Sleep(5000);//用于延时
system("cls");//用于清屏
/*
初始界面
*/
int x=0,y=0;//初始位置定义
char ch;
for(int i=0;i<=9;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<=9;i++)
puts(a[i]);
if(x==8 && y==9)
break;
}
cout<<"你赢了"<<endl;
Sleep(10000);
return 0;
}
谢谢大家,这是我发的第一篇博文,望支持。
|