黑马程序员技术交流社区

标题: 宫锁连城! 你懂得. [打印本页]

作者: 海风眷恋的沙    时间: 2015-11-13 22:32
标题: 宫锁连城! 你懂得.
学了这么时间的C语言 是不是觉得有点无聊,送一个福利,宫锁连城!

#include<stdio.h>
#define ROW 13
#define COL 13

int main () {
    //定义一个地图
    char map[ROW][COL]={
        '#','#','#','#','#','#','#','#','#','#','#','#','#',
        '#','o',' ',' ',' ','#','#','#',' ',' ',' ','#','#',
        '#',' ','#',' ',' ',' ',' ','#',' ','#',' ',' ','#',
        '#',' ','#',' ','#','#',' ','#',' ','#','#',' ','#',
        '#',' ','#',' ',' ','#',' ','#',' ',' ','#',' ','#',
        '#',' ','#','#',' ','#',' ','#','#',' ','#',' ','#',
        '#',' ','#','#',' ','#',' ','#',' ',' ','#',' ','#',
        '#',' ',' ','#',' ','#',' ','#',' ','#','#',' ',' ',
        '#','#',' ','#',' ','#',' ','#',' ',' ',' ','#','#',
        '#','#',' ','#',' ','#',' ','#','#','#',' ','#','#',
        '#','#',' ','#',' ','#',' ',' ',' ','#',' ','#','#',
        '#','#',' ',' ',' ','#','#','#',' ',' ',' ','#','#',
        '#','#','#','#','#','#','#','#','#','#','#','#','#',
    };
    //定义小人的位子
    int xiaoRenX = 1;
    int xiaoRenY = 1;
    //定义路
    char lu = ' ';
    //保存小人的移动
    char yiDong;
    //打印地图
    for (int i = 0; i < COL ; i++) {
        for (int j = 0; j<ROW ; j++) {
            printf("%c", map[i][j]);
        }
        printf("\n");
    }
   
    while (1) {
        //提示玩法
        printf("请控制小人移动:W是上,S是下,A是左,D是右!");
        //接受用户输入的字符
        scanf("%c", &yiDong);
        getchar();
        switch (yiDong) {
            case 'w':
            case 'W':
                //判断小人的下一个位子是否是路
                if (map[xiaoRenX-1][xiaoRenY]==lu) {
                    char temp;
                    temp = map[xiaoRenX][xiaoRenY];
                    map[xiaoRenX][xiaoRenY] = map[xiaoRenX-1][xiaoRenY];
                    map[xiaoRenX-1][xiaoRenY]= temp;
                    xiaoRenX--;
                }
                break;
            case 's':
            case 'S':
                //判断小人的下一个位子是否是路
                if (map[xiaoRenX+1][xiaoRenY]==lu) {
                    char temp;
                    temp = map[xiaoRenX][xiaoRenY];
                    map[xiaoRenX][xiaoRenY] = map[xiaoRenX+1][xiaoRenY];
                    map[xiaoRenX+1][xiaoRenY]= temp;
                    xiaoRenX++;
                }
                break;
            case 'a':
            case 'A':
                //判断小人的下一个位子是否是路
                if (map[xiaoRenX][xiaoRenY-1]==lu) {
                    char temp;
                    temp = map[xiaoRenX][xiaoRenY];
                    map[xiaoRenX][xiaoRenY] = map[xiaoRenX][xiaoRenY-1];
                    map[xiaoRenX][xiaoRenY-1]= temp;
                    xiaoRenY--;
                }
                break;
            case 'D':
            case 'd':
                //判断小人的下一个位子是否是路
                if (map[xiaoRenX][xiaoRenY+1]==lu) {
                    char temp;
                    temp = map[xiaoRenX][xiaoRenY];
                    map[xiaoRenX][xiaoRenY] = map[xiaoRenX][xiaoRenY+1];
                    map[xiaoRenX][xiaoRenY+1]= temp;
                    xiaoRenY++;
                }
                break;
            case 'q':
            case 'Q':
                return 0;
                break;
               
            default:
                break;
        }
            //  打印地图
        for (int i = 0; i<COL; i++) {
            for (int j = 0; j<ROW ; j++) {
                printf("%c", map[i][j]);
            }
            printf("\n");
        }
        //判断小人是否出来了!
        if (xiaoRenY == COL -1) {
            printf("恭喜你出来了");
            return 1;
        }
        
    }
    return 0;
}
作者: 这个冬天有点冷    时间: 2015-11-13 22:37
拷贝中,表示有点意思
作者: 沐小妖mavs    时间: 2015-11-13 22:53
谢谢分享 虽然暂时还看不大懂 不过我会努力
作者: qiluzhixing    时间: 2015-11-13 22:55
赞一下,研究研究
作者: 红龙果    时间: 2015-11-13 23:00
好牛叉,拿回去好好分析
作者: huihui1030    时间: 2015-11-14 00:19
目前看着有点似懂非懂,,,,,,待我研究研究。
作者: lujia1010    时间: 2015-11-14 12:46
有意思,代码保存了,,
作者: yufang1993    时间: 2015-11-14 23:59
默默点赞!!!!!!!!!!!!!!!!!!!!!
作者: 约吗^_^    时间: 2015-11-15 21:37
之前老师讲的会有这个内容,不过现在已经被禁了。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2