##关卡要求:
##思路:
#数据分析:
1、使用数字画地图,确定数值与字符的对应关系
0 ’ ’ 空地
1 ‘@’ 人物
2 ‘#’ 墙壁
3 '$ ’ 箱子
4 ‘o’ 目标点
5 ‘@’ 人物位于目标点
7 '$ ’ 箱子位于目标点
2、定义88整数地图并初始化
3、定义记录角色位置的变量 x y
4、定义记录步数的变量
逻辑分析:
进入死循环
1、清理屏幕、显示地图
如:if(0 == map[i][j]) printf(" ");
2、判断是否游戏胜利
3、获取方向键并处理
1、前方是路/目标点
前方 +1
原位置 -1
更新坐标
2、前方是箱子
箱子的前方是路目标点
人前方的前方 +3
人前方 -3+1
人原位置 -1
更新坐标
代码:
#include
#include
#include
#include
int main(int argc,const char
{
time_t t=time(NULL);
int map[8][8]={
{0,0,2,2,2,2,0,0},
{0,0,2,4,4,2,0,0},
{0,2,2,0,4,2,2,0},
{0,2,0,0,3,4,2,0},
{2,2,0,3,0,0,2,2},
{2,0,0,2,3,3,0,2},
{2,0,0,1,0,0,0,2},
{2,2,2,2,2,2,2,2},
};
int count=0,x=6,y=3;
for( ; ; )
{
system(“clear”);
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
if(map[i][j]==0)printf(" “);
if(map[i][j]==1 || map[i][j]==5)printf(”@ “);
if(map[i][j]==2)printf(”# “);
if(map[i][j]==3 || map[i][j]==7)printf(”$ ");
if(map[i][j]==4)printf(“o “);
}
printf(”n”);
}
if(map[1][3]==7&&map[1][4]==7&&map[2][4]==7&&map[3][5]==7)
{
printf(“通关!用时%ld秒,走了%d步n”,time(NULL)-t,count);
return 0;
}
switch(getch())
{
case 183:
if(map[x-1][y]==0||map[x-1][y]==4)
{
map[x][y]-=1;
map[x-1][y]+=1;
x-=1;
count++;
}
else if(map[x-1][y]==3&&(map[x-2][y]==0||map[x-2][y]==4))
{
map[x][y]-=1;
map[x-1][y]-=2;
map[x-2][y]+=3;
x-=1;
count++;
}
else if(map[x-1][y]==7&&map[x-2][y]==4)
{
map[x][y]-=1;
map[x-1][y]-=2;
map[x-2][y]+=3;
x-=1;
count++;
}
break;
case 184:
if(map[x+1][y]==0||map[x+1][y]==4)
{
map[x][y]-=1;
map[x+1][y]+=1;
x+=1;
count++;
}
else if(map[x+1][y]==3&&(map[x+2][y]==0||map[x+2][y]==4))
{
map[x][y]-=1;
map[x+1][y]-=2;
map[x+2][y]+=3;
x+=1;
count++;
}
break;
case 186:
if(map[x][y-1]==0||map[x][y-1]==4)
{
map[x][y]-=1;
map[x][y-1]+=1;
y-=1;
count++;
}
else if(map[x][y-1]==3&&(map[x][y-2]==0||map[x][y-2]==4))
{
map[x][y]-=1;
map[x][y-1]-=2;
map[x][y-2]+=3;
y-=1;
count++;
}
break;
case 185:
if(map[x][y+1]==0||map[x][y+1]==4)
{
map[x][y]-=1;
map[x][y+1]+=1;
y+=1;
count++;
}
else if(map[x][y+1]==3&&(map[x][y+2]==0||map[x][y+2]==4))
{
map[x][y]-=1;
map[x][y+1]-=2;
map[x][y+2]+=3;
y+=1;
count++;
}
break;
} }
}
有一说一,csdn的编辑器太难用了!



