#include<stdio.h>
#define COL 6
#define ROW 6
int main(){
void printfMap(char arr[][COL]);
void move( char arr[ROW][COL],int oldX,int oldY,int newX,int newY);
char arr[ROW][COL]={{'#','#','#','#','#','#'},
{'#','0','#','#',' ',' '},
{'#',' ','#',' ',' ','#'},
{'#',' ',' ',' ','#','#'},
{'#','#',' ',' ','#','#'},
{'#','#','#','#','#','#'}} ;
int currentX=1,currentY=1;
printfMap(arr);//打印地图
printf("请输入控制方向:w.上 s.下 a.左 d.右 q.退出\n");
char direction;
char ch;
char street=' ';
while(1){
scanf("%c",&direction); scanf("%c",&ch);
switch(direction){
case 'w':
case 'W':
if(arr[currentX-1][currentY]==street){
move(arr,currentX,currentY,currentX-1,currentY);currentX--;
}break;
case 'd':
case 'D':
if(arr[currentX][currentY+1]==street){
move(arr,currentX,currentY,currentX,currentY+1);currentY++;
}break;
case 's':
case 'S':
if(arr[currentX+1][currentY]==street){
move(arr,currentX,currentY,currentX+1,currentY);currentX++;
}break;
case 'a':
case 'A':
if(arr[currentX][currentY-1]==street){
move(arr,currentX,currentY,currentX,currentY-1);currentY--;
}break;
case 'q':
case 'Q': return 0;break;
default:break;
}
printfMap(arr);//打印地图
if(currentY==5){
printf("哦哦你竟然出来了!");return 0;
}
}
}
//打印地图
void printfMap ( char arr[][COL]){
for(int i=0;i<ROW;i++) {
for(int j=0;j<COL;j++){
printf("%c",arr[i][j]);
}
printf("\n");
}
}
//小球移动
void move( char arr[ROW][COL],int oldX,int oldY,int newX,int newY) {
char temp;
temp=arr[oldX][oldY];
arr[oldX][oldY]=arr[newX][newY];
arr[newX][newY]=temp;
} |
|