迷宫游戏纯c语言代码,C++ 迷宫游戏实现代码

这个博客介绍了如何使用C++实现一个迷宫游戏,包括创建迷宫类和游戏角色类,利用面向对象编程进行设计。游戏遵循右手规则,角色通过不断尝试四个方向走出迷宫,直至到达出口。代码详细展示了MazeMap和MazeMan类的实现,包括设置迷宫地图、打印地图、角色移动等关键功能。
摘要由CSDN通过智能技术生成

C++ 迷宫游戏实现代码

题目 通过让游戏角色自动寻找迷宫出口,走出迷宫,来练习C++面向对象之封装的基础知识。迷宫图如下所示,其中X表示墙。

d42845e9ed6eac872d6581f578836196.png

1、程序分析

走出去的原理:遵循右手规则或左手规则。右手扶墙走,就会走出迷宫,反之,亦然。

step1 创建迷宫类,打印出迷宫地图。

84455da796ae9f447eff35555a2bac95.png

step2 创建走迷宫的人的类。

ed3a30a7650a80603022371bd6de08f0.png

2、程序实现

MazeMap.h

#ifndef MAZEMAP_H

#define MAZEMAP_H

#include

#include //COORD

//在二维数组里,1代表墙,0代表路

#define WALL 1

#define ROAD 0

class MazeMap

{

public:

MazeMap(char wall = 'X');

~MazeMap();

/*设置迷宫地图*/

void setMazeMap(int *mazemap, int row, int col);

void pintMazeMap();

int** getMap(); //返回地图二维数组指针

const char m_cRoad; //常数据成员:路

void setExitPosition(int x,int y); //设置迷宫出口

COORD m_COORDExitPostion; //迷宫的出口

private:

const char m_cWall; //常数据成员:墙

int** m_pMap; //指向迷宫地图二维数组的二级指针

int m_iMapRow; //二维数组的行数

int m_iMapCol; //二维数组的列数

};

#endif

MazeMap.cpp

#include "MazeMap.h"

/**************************

*函数名称:MazeMap()

*函数功能:构造函数,初始化参数

*函数参数:wall 墙的表示符号

*修改时间:2016.7.18

***************************/

MazeMap::MazeMap(char wall):m_cWall(wall),m_cRoad(' ')

{

m_pMap = NULL;

}

/*************************

*函数名称:~MazeMap()

*函数功能:析构函数,释放动态申请的内存空间

*修改时间:2016.7.18

**************************/

MazeMap::~MazeMap()

{

if(m_pMap)

{

for(int i = 0; i < m_iMapRow; i++)

{

delete m_pMap[i];

m_pMap[i] = NULL;

}

delete m_pMap;

}

}

/********************************

*函数名称:setMazeMap()

*函数功能:设置迷宫地图,传递参数

*函数参数:*mazemap 存储地图数据的二维数组的指针

* row 二维数组的行数

* col 二维数组的列数

*修改时间:2016.7.18

**********************************/

void MazeMap::setMazeMap(int *mazemap,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值