1 项目需求
实现一款推箱子游戏,效果如下图所示,具体规则:
- 箱子只能推动而不能拉动;
- 如果箱子前一格是地板或箱子目的地,则可以推动一个箱子往前走一格,如果箱子已经在箱子目的地则不能再推动;
- 推箱子的小人不能从箱子目的地上直接穿过;
- 注意不要把箱子推到死角上,不然就无法再推动它了;
- 所有箱子都成功推到箱子目的地,游戏结束,过关成功!
2 模块划分
作用:
- 化繁为简 。
- 适合团队协作。
- 高质量代码。
3 项目实现
3.1 地图初始化
搭台唱戏: 戏台坐标系(650 x 650)。
地图表示: 使用二维数组 。
- 游戏道具显示(墙、箱子、箱子目的地、小人、地板)。
- 便于程序在游戏过程中进行逻辑判断和控制小人向前一步的动作控制。
- 判断游戏结果。
道具表示:
- 墙:0
- 地板:1
- 箱子目的地:2
- 小人:3
- 箱子:4
- 箱子命中目标:5
#include <graphics.h>
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
#define RATIO 61
#define SCREEN_WIDTH 960
#define SCREEN_HEIGHT 768
#define LINE 9
#define COLUMN 12
#define START_X 100
#define START_Y 150
IMAGE images[6];
/*游戏地图*/
int map[LINE][COLUMN] = {
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{
0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
{
0, 1, 4, 1, 0, 2, 1, 0, 2, 1, 0, 0 },
{
0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0 },
{
0, 1, 0, 2, 0, 1