A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 你说呢 中级黑马   /  2015-7-15 20:11  /  770 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#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;
}

1 个回复

倒序浏览
围观学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马