怎么样才能绕过墙啊 为什么移动到边框不能继续移动呢? #include <stdio.h> #include <bios.h> #include <conio.h> #define UP 0x4800 #define DOWN 0x5000 #define LEFT 0x4b00 #define RIGHT 0x4d00 void drawMap() { int i,j; char a[21][21]; for(i=0;i<21;i++) { for(j=0;j<21;j++) { if(i==j) a[i][j]='#'; else a[i][j]=' '; printf("%c",a[i][j]); } printf("\n"); } } struct move_point { int x, y;/*该点的位置,包括x坐标和y坐标*/ }man; main() {
int key=0; man.x=12; man.y=24;
do { clrscr(); /*输出一个空格,把先前的字符擦去*/ drawMap(); gotoxy(man.x, man.y);
printf("%c\b", 2); /*输出ASCII码值为2的"笑脸”字符*/
while (bioskey(1) == 0);/*等待按键*/
key = bioskey(0);/*把接收的按键的键盘码赋给变量key*/ switch (key) /*对变量key的值进行判断*/ { case UP: /*如果按的是向上键*/ man.y=man.y-1; break; /*让物体向上运动,并退出switch*/
case DOWN: /*如果按的是向下键*/ man.y=man.y+1; break; /*让物体向下运动,并退出switch*/
case LEFT: /*向左键*/ man.x=man.x-1; break;/*向左运动*/
case RIGHT: /*向右键*/ man.x=man.x+1; break;/*向右运动*/ default: break;/*其他按键则忽略处理*/
} }while(man.x!=man.y); clrscr(); printf("you lost !"); getch(); }