这段代码是一个推箱子游戏的实现。游戏中有一个地图,地图上有墙壁、人、箱子和目标位置。玩家通过键盘输入WASD或方向键来控制人物的移动,目标是将所有的箱子推到相应的目标位置上。
代码中的dt数组表示地图,每个位置上的字符表示对应的元素,如#表示墙壁,r表示人,O表示箱子,*表示目标位置。函数shuoming用来输出游戏说明,xianshi用来输出地图,find用来找到人物的位置,yidong用来处理人物移动的逻辑。
在主函数中,通过一个循环不断接受玩家的输入并更新地图。每次更新后,清空屏幕并输出游戏说明和地图。这样就实现了一个简单的推箱子游戏。
#include<bits/stdc++.h>
#include<conio.h>
using namespace std;
int x,y;
char dt[20][20]={
"##### ",
"#r # ",
"# OO# ### ",
"# O # #*# ",
"### ###*# ",
"# *# ",
"# ## # ",
"# #### ",
"######"
};
void shuoming(){
cout<<"---------推箱子游戏欢迎你---------"<<endl;
cout<<"| 通过WASD或方向键移动 |"<<endl;
cout<<"| r:人的位置 |"<<endl;
cout<<"| O:箱子的位置 |"<<endl;
cout<<"| *:箱子的目标位置 |"<<endl;
cout<<"----------------------------------"<<endl;
}
void xianshi(){
int i,j;
for(i=0;i<9;i++){
for(j=0;j<9;j++){
cout<<dt[i][j];
}
cout<<endl;
}
}
void find(){
for(x=0;x<9;x++){
for(y=0;y<9;y++){
if(dt[x][y]=='r'||dt[x][y]=='