//走动函数
void z(){
char c=getch();
//下
if(c=='s')
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
//找到人物所在的位置
if(map[i][j]==3&&map[i+1][j]!=1)
{
map[i+1][j]=3;//下面的位置变成人物所在的位置
map[i][j]=0;//走过的地方变成0
break;
}
}
}
}
//上
if(c=='w')
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(map[i][j]==3&&map[i-1][j]!=1)
{
map[i-1][j]=3;
map[i][j]=0;
break;
}
}
}
}
//左
if(c=='a')
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(map[i][j]==3&&map[i][j-1]!=1)
{
map[i][j-1]=3;
map[i][j]=0;
break;
}
}
}
}
//右
if(c=='d')
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(map[i][j]==3&&map[i][j+1]!=1)
{
map[i][j+1]=3;
map[i][j]=0;
break;
}
}
}
}
}
wsad分别对应上下左右
#include
#include
#include
int map[10][10]={{1,1,1,1,3,1,1,1,1,1},
{1,0,0,0,0,0,0,1,1,1},
{1,0,0,1,0,1,0,0,1,1},
{1,1,0,1,1,0,0,1,1,1},
{1,0,0,0,1,0,0,0,0,1},
{1,1,0,0,1,1,0,1,0,1},
{1,1,0,1,0,1,1,0,0,1},
{1,0,0,0,1,1,1,1,0,1},
{1,1,1,1,1,1,1,1,2,1}};
int pos_y=0;//人物的y坐标
int pos_x=4;//人物的x坐标
//打印地图
void jzmap()
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(map[i][j]==0)
printf(" ");//可走的地方
if(map[i][j]==1)
printf("■");//障碍
if(map[i][j]==2)
printf("!!");//出口
if(map[i][j]==3)
printf("* ");//人物所在的位置
}
printf("\n");
}
}
//走动函数2
void z2(){
char c=getch();
//下
if(c=='s')
{
//找到人物所在的位置
if(map[pos_y][pos_x]==3&&map[pos_y+1][pos_x]!=1)
{
map[pos_y+1][pos_x]=3;//下面的位置变成人物所在的位置
map[pos_y][pos_x]=0;//走过的地方变成0
pos_y++;
}
}
//上
if(c=='w')
{
if(map[pos_y][pos_x]==3&&map[pos_y-1][pos_x]!=1)
{
map[pos_y-1][pos_x]=3;
map[pos_y][pos_x]=0;
pos_y--;
}
}
//左
if(c=='a')
{
if(map[pos_y][pos_x]==3&&map[pos_y][pos_x-1]!=1)
{
map[pos_y][pos_x-1]=3;
map[pos_y][pos_x]=0;
pos_x--;
}
}
//右
if(c=='d')
{
if(map[pos_y][pos_x]==3&&map[pos_y][pos_x+1]!=1)
{
map[pos_y][pos_x+1]=3;
map[pos_y][pos_x]=0;
pos_x++;
}
}
}
//走动函数
void z(){
char c=getch();
int has_zou=0;
//下
if(c=='s')
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
//找到人物所在的位置
if(map[i][j]==3&&map[i+1][j]!=1&&!has_zou)
{
has_zou=1;
map[i+1][j]=3;//下面的位置变成人物所在的位置
map[i][j]=0;//走过的地方变成0
break;
}
}
}
}
//上
if(c=='w')
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(map[i][j]==3&&map[i-1][j]!=1&&!has_zou)
{
has_zou=1;
map[i-1][j]=3;
map[i][j]=0;
break;
}
}
}
}
//左
if(c=='a')
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(map[i][j]==3&&map[i][j-1]!=1&&!has_zou)
{
has_zou=1;
map[i][j-1]=3;
map[i][j]=0;
break;
}
}
}
}
//右
if(c=='d')
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(map[i][j]==3&&map[i][j+1]!=1&&!has_zou)
{
has_zou=1;
map[i][j+1]=3;
map[i][j]=0;
break;
}
}
}
}
}
void yx()
{
jzmap();//重绘地图
//z();
z2();//走操作
}
//结束
bool js()
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
if(map[i][j]==map[9][8])
{
return 1;
}
else{
return 0;
}
}
}
}
int main()
{
for(int i=0;i<100;i++)
{
system("cls");
yx();
if(js())
{
system("cls");
printf("game over!");
return 0;
}
}
return 0;
}