学习的第一个可以玩的小程序。虽然很简单,但是自己写了之后再运行的时候感觉还是不错的。 
- #include <stdio.h>
 
 - //把地图数组的行数和列数定义成宏。
 
 - #define COL 6
 
 - #define ROW 6
 
  
- /**
 
 -  *  打印地图
 
 -  *
 
 -  *  @param map1 地图的数组
 
 -  */
 
 - void print_map(char map1[COL][ROW]){
 
 -     for (int i =0; i<COL; i++) {
 
 -         for (int j =0; j<ROW; j++) {
 
 -             printf("%c",map1[i][j]);
 
 -         }
 
 -         printf("\n");
 
 -     }
 
 -     
 
 - }
 
 - /**
 
 -  *  判断小人是否移动
 
 -  *
 
 -  *  @param map   地图数组
 
 -  *  @param old_x 小人原来位置的X轴
 
 -  *  @param old_y 小人原来位置的Y轴
 
 -  *  @param new_x 小人要走位置的X轴
 
 -  *  @param new_y 小人要走位置的Y轴
 
 -  */
 
 - void personMove(char map[COL][ROW],int old_x,int old_y,int new_x,int new_y){
 
 -     char temp;
 
 -     temp=map[old_x][old_y];
 
 -     map[old_x][old_y]=map[new_x][new_y];
 
 -     map[new_x][new_y]=temp;
 
 - }
 
 - int main(int argc, const char * argv[]) {
 
 -     char map[COL][ROW]={
 
 -         {'#','#','#','#','#','#'},
 
 -         {'#','0','#',' ',' ',' '},
 
 -         {'#',' ','#','#',' ','#'},
 
 -         {'#',' ',' ','#',' ','#'},
 
 -         {'#','#',' ',' ',' ','#'},
 
 -         {'#','#','#','#','#','#'}};
 
 -     char dir;
 
 -     char ch;
 
 -     print_map(map);
 
 -     //x和y是小人位置的下标
 
 -     int x,y;
 
 -     x=y=1;
 
 -     printf("请输入一个方向:w或W表示上,s或S表示下,a或A表示左,d或D表示右,q或Q代表退出!\n");
 
 -     while (1) {
 
 -         scanf("%c",&dir);
 
 -         scanf("%c",&ch);
 
 -         switch (dir) {
 
 -             case 'w':
 
 -             case 'W':
 
 -                 if (map[x-1][y]==' ') {
 
 -                     personMove(map, x, y, x-1, y);
 
 -                     print_map(map);
 
 -                     x--;
 
 -                 }
 
 -                 break;
 
 -             case 's':
 
 -             case 'S':
 
 -                 if (map[x+1][y]==' ') {
 
 -                    personMove(map, x, y, x+1, y);
 
 -                     print_map(map);
 
 -                     x++;
 
 -                 }
 
 -                 break;
 
 -             case 'A':
 
 -             case 'a':
 
 -                 if (map[x][y-1]==' ') {
 
 -                     personMove(map, x, y, x, y-1);
 
 -                     print_map(map);
 
 -                     y--;
 
 -                 }
 
 -                 break;
 
 -             case 'd':
 
 -             case 'D':
 
 -                 if (map[x][y+1]==' ') {
 
 -                     personMove(map, x, y, x, y+1);
 
 -                     print_map(map);
 
 -                     y++;
 
 -                 }
 
 -                 break;
 
 -             case 'q':
 
 -             case 'Q':
 
 -                 return 0;
 
 -             default:
 
 -                 break;
 
 -         }
 
 -         if (y==5) {
 
 -             printf("恭喜你,你出来了!\n");
 
 -             return 0;
 
 -         }
 
 -     }
 
 -     return 0;
 
 - }
 
  复制代码 
 
 
 
 
 |   
        
 
    
    
    
     
 
 |