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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include <stdio.h>
#define ROW 6
#define COL 8  //有个问题,这个是7就不行,

void print_map(char map[ROW][COL]){

    for (int i=0; i<ROW; i++) {
        printf("%s\n",map[i]);
    }
}
void personMove(char map[ROW][COL],int oldX,int oldY,int newX,int newY){

    int temp = map[oldX][oldY];
    map[oldX][oldY] = map[newX][newY];
    map[newX][newY] = temp;
}
int main(int argc, const char * argv[]) {
   
    char map[ROW][COL]={
        "#######",
        "#O##   ",
        "# ## ##",
        "#  # ##",
        "##   ##",
        "#######"};
    print_map(map);
    int playerX = 1,playerY = 1;
    char  direction;
    char ch;
    printf("请输入小人移动方向:w.上 s.下 a.左 d.右\n");
    while (1) {
        scanf("%c",&direction);
        scanf("%c",&ch);
        switch (direction) {
            case 'w':
            case 'W':
                if(map[playerX-1][playerY] == ' '){
                personMove(map, playerX, playerY, playerX-1, playerY);
                    playerX--;
                }
                break;
            case 's':
            case 'S':
                if(map[playerX+1][playerY] == ' '){
                personMove(map, playerX, playerY, playerX+1, playerY);
                playerX++;
                }
                break;
            case 'a':
            case 'A':
                if(map[playerX][playerY-1] == ' '){
                personMove(map, playerX, playerY, playerX, playerY-1);
                playerY--;
                }
                break;
            case 'd':
            case 'D':
                if(map[playerX][playerY+1] == ' '){
                personMove(map, playerX, playerY, playerX, playerY+1);
                playerY++;
                }
                break;
            case 'q':
                return 0;
                default:
                break;
        }
        print_map(map);
        if (playerY == 6) {
            printf("恭喜,您赢了!!!\n");
            break;
        }
    }
    return 0;
}

评分

参与人数 4黑马币 +15 收起 理由
15095185209 + 7
卐黑马卐 + 2 淡定,加油
bling的女汉子 + 1
GodLovenan + 5

查看全部评分

5 个回复

倒序浏览
哇塞 ,好长的代码,挺好的
回复 使用道具 举报
bling的女汉子 发表于 2015-9-5 23:05
哇塞 ,好长的代码,挺好的

嘿嘿  谢谢
回复 使用道具 举报
二维数组存的是字符串,col是列数,不要忘记字符串末尾有一个’\0’所以一定是多一个!另外优化的话可以参考这个帖子
迷宫改进代码_函数精简版(自己打)
http://bbs.itheima.com/thread-233649-1-1.html
回复 使用道具 举报
1wang2huan 发表于 2015-9-5 23:06
二维数组存的是字符串,col是列数,不要忘记字符串末尾有一个’\0’所以一定是多一个!另外优化的话可以参考这 ...

谢谢啊......
回复 使用道具 举报
好的好的 我知道了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马