/*
char map[ROW][COL]={ {'#','#','#','#','#','#'}, //'#'代表墙 '0'代表人 ' '代表路 {' ','O','#','#',' ',' '}, {'#',' ','#','#',' ','#'}, {'#',' ',' ','#',' ','#'}, {'#','#',' ',' ',' ','#'}, {'#','#','#','#','#','#'} };
*/
#include <stdio.h> #define ROW 6 #define COL 6
int main(){
char map[ROW][COL]={ {'#','#','#','#','#','#'}, {'0',' ','#','#',' ',' '}, {'#',' ','#','#',' ','#'}, {'#',' ',' ','#',' ','#'}, {'#','#',' ',' ',' ','#'}, {'#','#','#','#','#','#'} };
//打印地图 for (int i=0; i<ROW;i++ ) { for (int j=0; j<COL;j++) { printf("%c",map[j]); } printf("\n"); } //定义变量 char direction;
char street=' '; int x=1,y=0;//向下代表x的正方向,向右代表y轴的正方向 //提示用户输入向上w 向下s 向左a 向右d printf("请用户输入方向键,向上 w,向下 s 向左a 向右d 退出 q"); char ch; //*******循环控制******** while(1){ scanf("%c",&direction); scanf("%c",&ch);
char temp; switch(direction){ case 'w': case 'W': //判断小人移动是否等于路 if (map[x-1][y]==street) { temp=map[x][y]; map[x][y]=map[x-1][y]; map[x-1][y]=temp; //重新记录小人的位置 x--; break; } case 's': case 'S': //判断小人移动是否等于路 if (map[x+1][y]==street) { temp=map[x][y]; map[x][y]=map[x+1][y]; map[x+1][y]=temp; //重新记录小人的位置 x++; break; }
case 'a': case 'A': //判断小人移动是否等于路 if (map[x][y-1]==street) { temp=map[x][y]; map[x][y]=map[x][y-1]; map[x][y-1]=temp; //重新记录小人的位置y y--; break; }
case 'd': case 'D': //判断小人移动是否等于路 if (map[x][y+1]==street) { temp=map[x][y]; map[x][y]=map[x][y+1]; map[x][y+1]=temp; //重新记录小人的位置 y++; break; }
case 'q': return 0; break;
} for (int i=0; i<ROW; i++) { for (int j=0; j<COL; j++) { printf("%c",map[j]); } printf("\n"); } if (y==5) { printf("哇哦,你出来了!\n");
} }
return 0;
}
|