C游戏 简单迷宫游戏开发

#include <stdio.h>

#define row 6
#define col 6

void printMap(char map[row][col]) {
    for (int i = 0; i < row; i ++) {
        for (int j = 0; j < col; j ++) {
            printf("%c ",map[i][j]);
        }
        printf("\n");
    }
}

void swith(char map[row][col],  int oldX, int oldY, int newX, int newY){
    char temp = map[oldX][oldY];
    map[oldX][oldY] = map[newX][newY];
    map[newX][newY] = temp;
}

void movePerson(char m , char n){
    char temp = m;
    m = n;
    n = temp;
}

int main(int argc, const char * argv[])
{

    // 1.定义变量:地图,方向,坐标,小人位置
    char map[row][col] ={
        {'#','#','#','#','#','#'},
        {'#','0','#','#',' ',' '},
        {'#',' ','#','#',' ','#'},
        {'#',' ',' ','#',' ','#'},
        {'#','#',' ',' ',' ','#'},
        {'#','#','#','#','#','#'}
    };
    // 路
    int road = ' ';
    // 方向
    char direct;
    // 小人当前的位置
    int currentx = 1;
    int currenty = 1;

    // 2.打印地图,
    printMap(map);

    // 3.告诉用户怎么玩
    printf("游戏玩法,w 向上 s 向左 x 向下 f向右,q 退出\n");
    char ch ;
    while(1){
        // 4.接受用户的方向
        scanf("%c",&direct);
        scanf("%c",&ch);//去除\n
        // 5.判断输入的方向
        switch (direct) {
            case 'W':
            case 'w':
                //6.判断小人是否移动,就是判断小人的位置是不是' '
                if (map[currentx -1][currenty] == road) {
                    //7.开始交换小人与路的位置
                    //switch(map[currentx][currenty],map[currentx-1][currenty]);
                    swith(map, currentx, currenty, currentx-1, currenty);
                    currentx --;
                }

                break;
            case 'X':
            case 'x':
                //6.判断小人是否移动,就是判断小人的位置是不是' '
                if (map[currentx + 1][currenty] == road) {
                    //7.开始交换小人与路的位置
                    //movePerson(map[currentx][currenty],map[currentx+1][currenty]);
                    swith(map, currentx, currenty, currentx+1, currenty);

                    currentx ++;
                }
                break;
            case 'S':
            case 's':
                //6.判断小人是否移动,就是判断小人的位置是不是' '
                if (map[currentx][currenty-1] == road) {
                    //7.开始交换小人与路的位置
                    //movePerson(map[currentx][currenty],map[currentx][currenty-1]);
                    swith(map, currentx, currenty, currentx, currenty-1);
                    currenty --;
                }

                break;
            case 'F':
            case 'f':
                //6.判断小人是否移动,就是判断小人的位置是不是' '
                if (map[currentx][currenty+1] == road) {
                    //7.开始交换小人与路的位置
                    //movePerson(map[currentx][currenty],map[currentx][currenty+1]);
                    swith(map, currentx, currenty, currentx, currenty+1);
                    currenty ++;
                }

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

            default:
                break;

        }
        // 6.打印完成的地图
        printMap(map);

        // 7.判断是否出来了
        if (currenty == 5) {
            printf("you win");
            break;
        }
    }

    printf("\n");
    return 0;
}

—————————————————–
(java 架构师全套教程,共760G, 让你从零到架构师,每月轻松拿3万)
请先拍 购买地址, 下载请用百度盘
目录如下:
01.高级架构师四十二个阶段高
02.Java高级系统培训架构课程148课时
03.Java高级互联网架构师课程
04.Java互联网架构Netty、Nio、Mina等-视频教程
05.Java高级架构设计2016整理-视频教程
06.架构师基础、高级片
07.Java架构师必修linux运维系列课程
08.Java高级系统培训架构课程116课时
(送:hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门)

01高级架构师四十二个阶段高内容:
这里写图片描述
这里写图片描述
—————————————————–

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lovoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值