可能有亿些BUG,发现可以私信我@_@
C++ 迷宫游戏实现代码
题目 通过让游戏角色自动寻找迷宫出口,走出迷宫,来练习C++面向对象之封装的基础知识。迷宫图如下所示,其中X表示墙。
1、程序分析
走出去的原理:遵循右手规则或左手规则。右手扶墙走,就会走出迷宫,反之,亦然。
step1 创建迷宫类,打印出迷宫地图。
step2 创建走迷宫的人的类。
2、程序实现
MazeMap.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#ifndef MAZEMAP_H #define MAZEMAP_H #include <iostream> #include <Windows.h> //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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
#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; }
|