C语言实现推箱子游戏!(超简单详细)代码思路+源码分享

您所在的位置:网站首页 推箱子游戏编程教程 C语言实现推箱子游戏!(超简单详细)代码思路+源码分享

C语言实现推箱子游戏!(超简单详细)代码思路+源码分享

2024-07-05 05:05| 来源: 网络整理| 查看: 265

经典的推箱子是一个很古老的游戏了,相信大家都不陌生。其目的是在训练我们的逻辑思考能力。在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务。

我们将编写推箱子游戏,玩家键盘控制游戏角色将所有黄色箱子推到白色方块处,效果如图所示:

操作方法:方向键↑↓←→控制移动推箱子,将箱子推到对应位置。

首先学习字符串与字符数组的概念,并应用字符数组初始化关卡数据;然后利用键盘控制游戏角色移动,实现地图元素更新和游戏胜利的判断;接着利用三维字符数组,实现多关卡的游戏;最后学习基于文件的关卡数据读取,利用枚举类型改进游戏代码。

源码:

#include #include #include #define B_SIZE 60 // 方块大小 #define B_NUM 8 // 方块个数,一共8*8个方块 struct Player // 结构体,用于记录玩家位置 { int i; int j; }; Player player; // 玩家全局变量 enum Element // 定义枚举类型,小方块所有的可能的种类 { wall,target,box,empty,achieved,role }; // 用于存储地图数据,用枚举类型实现 Element level[B_NUM][B_NUM] = {{wall,wall,wall,wall,wall,wall,wall,wall}, {wall,wall,wall,target,box,empty,empty,wall}, {wall,empty,empty,empty,empty,empty,empty,wall}, {wall,empty,empty,empty,empty,empty,empty,wall}, {wall,empty,empty,empty,empty,empty,empty,wall}, {wall,role,empty,box,target,wall,wall,wall}, {wall,empty,empty,empty,empty,wall,wall,wall}, {wall,wall,wall,wall,wall,wall,wall,wall}}; int targetNum,achievedNum; // 目标位置个数、完成目标个数 void startup() // 初始化函数 { initgraph(B_NUM*B_SIZE,B_NUM*B_SIZE); // 新开一个画面 setbkcolor(RGB(150,150,150)); // 灰色背景 BeginBatchDraw(); // 开始批量绘图 int i,j; targetNum = 0; // 目标个数,初始为0 // 对二维数组遍历 for (i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3