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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© guozihui876 中级黑马   /  2015-10-7 22:17  /  659 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//
//  main.c
//  迷宫游戏
//
//  Created by niaoren on 15/10/2.
//  Copyright (c) 2015年 niaoren. All rights reserved.
//

#include <stdio.h>
#define ROW 7
#define COL 6

void print_mg(char mg[ROW][COL]){
    for (int i=0; i<6; i++) {
        for (int j=0; j<6; j++) {
            printf("%c",mg[i][j]);
        }
        printf("\n");
    }

}
int main(int argc, const char * argv[]) {
    // insert code here...
    printf("请输入wsad 分别表示上下左右\n");
    char mg [ROW][COL] = {'#','#','#','#','#','#',
                          '#','0','#','#','#','#',
                          '#',' ','#',' ',' ',' ',
                          '#',' ','#',' ','#','#',
                          '#',' ',' ',' ','#','#',
                          '#','#','#','#','#','#',
    };
    print_mg(mg);
    int y=1;
    int x=1;
    char road = ' ';
    char temp;
    char key;
    char a[] = "sdsds";
    while (1) {
        
        scanf("%c",&key);
//        getchar();  吸收字符
        switch (key) {
            case 'W':
            case 'w':
                if(mg[y-1][x]==road){
                    temp = mg[y-1][x];
                    mg[y-1][x] = mg[y][x];
                    mg[y][x] = temp;
//                    print_mg(mg);
                    y--;
                }
               
                break;
            
            case 'S':
            case 's':
                if(mg[y+1][x]==road){
                    temp = mg[y+1][x];
                    mg[y+1][x] = mg[y][x];
                    mg[y][x] = temp;
//                    print_mg(mg);
                    y++;
                }
                break;
               
            case 'A':
            case 'a':
                if(mg[y][x-1]==road){
                    temp = mg[y][x-1];
                    mg[y][x-1] = mg[y][x];
                    mg[y][x] = temp;
//                    print_mg(mg);
                    x--;
                }
                break;
               
            case 'D':
            case 'd':
                if(mg[y][x+1]==road){
                    temp = mg[y][x+1];
                    mg[y][x+1] = mg[y][x];
                    mg[y][x] = temp;
//                    print_mg(mg);
                    x++;
                }
                break;
             default:
                print_mg(mg);
                if(x==ROW-2){
                    printf("成功过关_________");
                    return 0;
                }
                break;
            case 'Q':
            case 'q':
                printf("_________");
                return 0;
                break;
        }
    }
    return 0;
}

5 个回复

倒序浏览
楼主写的不错,加油
回复 使用道具 举报
楼主写的很好,不过下次可以加注释,赞一个!
回复 使用道具 举报
Eric_h 发表于 2015-10-7 22:29
楼主写的不错,加油

谢谢 会努力的
回复 使用道具 举报
Eric_h 发表于 2015-10-7 22:29
楼主写的不错,加油

会的 会加油的  哈哈
回复 使用道具 举报
wxd123 发表于 2015-10-7 22:30
楼主写的很好,不过下次可以加注释,赞一个!

嗯  多谢 提醒
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马