❤️推箱子游戏❤️(C语言版)

Posted Linux猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了❤️推箱子游戏❤️(C语言版)相关的知识,希望对你有一定的参考价值。


🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏:C/C++课程设计(优质好文持续更新中……)🚀


目录

一、界面设计

1.1 主界面

1.2 游戏界面

二、设计思路

三、总结


推箱子游戏大家应该非常熟悉,非常经典的一款游戏,本文来详细讲解下推箱子游戏的制作过程,赶紧来看下吧!

首先,看下效果图:

图1 游戏过程

一、界面设计

1.1 主界面

主界面如下所示:

 主界面主要包括开始游戏和退出游戏。

1.2 游戏界面

游戏界面是通过读取文件中的数据,然后显示到终端界面,如下所示:

二、设计思路

包括的各个函数有:

void showMap();         //输出地图
void move(char ch);     //移动
void hideCursor();      //隐藏光标
void getCoord(int x, int y);//光标定位
void menu();            //选择界面
void readGameData();    //读取游戏数据
void sokoban();         //游戏主要流程

包含的数据结构有:

struct Location {
    int x, y;
}target[NUM*NUM];
char map[NUM][NUM];

其中,target[NUM*NUM] 用于存储目标位置的坐标,map[NUM][NUM]用于存储地图。

主流程如下所示:

//游戏主流程
void sokoban()
{
    showMap(); //展示地图
    hideCursor(); //隐藏光标
    while (true) {
        if(_kbhit()) {
            char ch = _getch();    //获取用户输入
            switch (ch) {
            case 'w':      //上
                move(ch); break;
            case 's':      //下
                move(ch); break;
            case 'a':     //左
                move(ch); break;
            case 'd':     //右
                move(ch); break;
            }
        }
        Sleep(10);
    }
}

设计思路如下:

1. 读取游戏地图数据;

2. 等待用户输入;

3. 根据用户输入移动人;

4. 判断是否移动成功;

5. 循环 2 ~ 4,一直到游戏成功;

三、总结

推箱子游戏的重点在于人的移动,人可以向上下左右四个方向移动,需要判断人的前面的物体。游戏界面设计主要是根据用户的输入移动人,每次移动后判断是否成功。

源码下载(CSDN资源)


🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬


以上是关于❤️推箱子游戏❤️(C语言版)的主要内容,如果未能解决你的问题,请参考以下文章

❤️俄罗斯方块游戏❤️,重温经典(C++详解版)

C语言项目扫雷-鼠标版

LeetCode刷题292-简单-Nim游戏

LeetCode刷题292-简单-Nim游戏

❤️C语言文件的操作与处理❤️----1.6W字详解,带你搞懂文件操作!!!

☀️Unity ❀ 小游戏 ☀️| 带你重回童年的经典系列——坦克大战3D版!