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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

脑袋嗡嗡的,修的修的不知道修哪了,最后一跑,成立!


#include<stdio.h>
int main(){
    char map[6][6]={
        {'#','#','#','#','#','#'},
        {'D',' ','#','#',' ',' '},
        {'#',' ','#','#',' ','#'},
        {'#',' ','#',' ',' ','#'},
        {'#',' ',' ',' ','#','#'},
        {'#','#','#','#','#','#'}
    };
    for (int i = 0; i < 6; i++) {        //打印地图
        for (int j = 0; j < 6; j++) {
            printf("%c",map[i][j]);
        }
        printf("\n");
    }
    int currentX = 1;
    int currentY = 0;
    char ch;
   
    printf("请移动小人w:上\tx:下\ta:左\td:右\tq:退出\n");
    while (1) {
        if (currentY == 5) {
            printf("哇哦,你逃出去了\n");
            return 0;
        }
        scanf("%c",&ch);
        switch (ch) {
            case 'w' :
            case 'W' :
                if (map[currentX - 1][currentY] == ' ') {
                    int temp = map[currentX - 1][currentY];
                    map[currentX - 1][currentY]=map[currentX][currentY];
                    map[currentX][currentY]=temp;
                    currentX--;
                    for (int i = 0; i < 6; i++) {        //打印地图
                        for (int j = 0; j < 6; j++) {
                            printf("%c",map[i][j]);
                        }
                        printf("\n");
                    }
                }
                break;
            case 's' :
            case 'S' :
                if (map[currentX + 1][currentY] == ' ') {
                    int temp = map[currentX + 1][currentY];
                    map[currentX + 1][currentY]=map[currentX][currentY];
                    map[currentX][currentY]=temp;
                    currentX++;
                    for (int i = 0; i < 6; i++) {        //打印地图
                        for (int j = 0; j < 6; j++) {
                            printf("%c",map[i][j]);
                        }
                        printf("\n");
                    }

                }
                break;
            case 'a' :
            case 'A' :
                if (map[currentX][currentY - 1] == ' ') {
                    int temp = map[currentX][currentY - 1];
                    map[currentX ][currentY - 1]=map[currentX][currentY];
                    map[currentX][currentY]=temp;
                    currentY--;
                    for (int i = 0; i < 6; i++) {        //打印地图
                        for (int j = 0; j < 6; j++) {
                            printf("%c",map[i][j]);
                        }
                        printf("\n");
                    }

                }
                break;
            case 'd' :
            case 'D' :
                if (map[currentX][currentY + 1] == ' ') {
                    int temp = map[currentX][currentY + 1];
                    map[currentX][currentY + 1]=map[currentX][currentY];
                    map[currentX][currentY]=temp;
                    currentY++;
                    for (int i = 0; i < 6; i++) {        //打印地图
                        for (int j = 0; j < 6; j++) {
                            printf("%c",map[i][j]);
                        }
                        printf("\n");
                    }

                }
                break;
            case 'q' :
            case 'Q' :
                return 0;
        }
    }
}

评分

参与人数 3黑马币 +51 收起 理由
没有信号 + 11 很给力!
chunjiang + 20 刚学的?要是你们课程刚到这,只能说真不错.
wpf986530062 + 20 可以,打了多久哇,这个方式挺简化的,比我.

查看全部评分

8 个回复

倒序浏览
还是个新人帖子,我现在还有7天点招了 ,找点总结什么的,现在新人都这样,让我们这 情何以堪呐
回复 使用道具 举报
没有信号 发表于 2016-5-25 23:20
还是个新人帖子,我现在还有7天点招了 ,找点总结什么的,现在新人都这样,让我们这 情何以堪呐 ...

其实。。。
回复 使用道具 举报
写的什么东西啊  看不懂啊啊
回复 使用道具 举报
还不错!!
回复 使用道具 举报
本帖最后由 牛牛很牛 于 2016-5-26 16:19 编辑

好厉害!!!

挑个小错误。

printf("请移动小人w:上\tx:下\ta:左\td:右\tq:退出\n");

case 's' :

case 'S' :

提示用户输入和实际的case不一样。


回复 使用道具 举报
kfcmm 中级黑马 2016-5-26 17:55:29
7#
多加点注释更好
回复 使用道具 举报
kfcmm 发表于 2016-5-26 17:55
多加点注释更好

晓得啦,下次注意
回复 使用道具 举报
kfcmm 发表于 2016-5-26 17:55
多加点注释更好

我看看是不是我疏忽了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马