- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC实现迷宫自寻路径讲述
数据结构与VC编程实习?日实习题目 迷宫 一、任务描述及要求
任意确定一个迷宫的规模和形态,用非递归的方法走出迷宫,并输出至少一条通路的路径。
基本要求:(75分)
20分)
templateclass T //栈节点定义
struct stackNode
{
T data;
stackNodeT *link;
stackNode(stackNodeT *ptr = NULL){link = ptr;} //仅初始化指针成员的初始函数.
stackNode(const T d,stackNodeT *ptr=NULL){data=d;link=ptr;}; //初始化数据与指针成员的构造函数.
~stackNode(){};
};
templateclass T //栈类定义
class stack
{
private:
stackNodeT *top; //栈顶元素
public:
stack():top(NULL){};
void makeempty(); //置栈空
virtual ~stack(){stackT::makeempty();}; //析构函数
void push(T x); //入栈
bool pop(T x); //出栈
int getSize()const; //获得栈元素个数
bool gettop(T x) const; //获得栈顶元素
bool Isempty() const {return top==NULL?true:false;} //判栈空
};MistyRainMaze(烟雨迷宫)。
四、调试分析
1.程序在过程中出现的问题及解决方法MistyRainMaze,在第四步中注意View类的基类选择CScrollView,然后在MistyRainMazeView.h的CMistyRainMazeView类前面加入宏定义及线程回调声明。
#include stack.h
#if _MSC_VER 1000
#pragma once
#endif // _MSC_VER 1000
struct AutoPlayPARAM
{
int **m_nMaze;//迷宫数组
UINT m_nMazeRowSize;//迷宫行规模
UINT m_nMazeColSize;//迷宫列规模
int m_nRowStart;//起点位置
int m_nColStart;//
int m_nRowEnd;//终点位置
int m_nColEnd;//
CPoint m_ptStart;//图像左上角坐标
int m_ntimedelay;//演示延迟时间
CDC *pDC;
UINT m_nRowSpace;//迷宫行距
UINT m_nColSpace;//迷宫列距
};
typedef enum tagCurrorState
{
CURROR_STAND,//标准光标
CURROR_BLOCK,//画墙时的光标
CURROR_START,//画起点光标
CURROR_END,//画终点光标
CURROR_EREASE//擦出光标
}CurrorState;
typedef struct tagitems
{
int row;
int col;
int dir;
}items;//定义位置偏移
typedef struct tagoffset
{
int row;
int col;
}offset;//偏移数组
static DWORD WINAPI AutoPlayProc(
LPVOID lpParameter // thread data
);// 自动演示线程回调函数
添加图像资源及光标资源,标好ID号。
为CMistyRainMazeView类添加成员变量及函数
private:
int **m_nMaze;//迷宫数组
UINT m_nMazeRowSize;//迷宫行规模
UINT m_nMazeColSize;//迷宫列规模
UINT m_nRowSpace;//迷宫行距
UINT m_nColSpace;//迷宫列距
CPoint m_ptStart;//图像左上角坐标
BOOL m_bStop;//初始停止标志为FALSE
CBitmap m_bitmap[4];//加载图像
HCURSOR m_hcursor[5];//加载光标
int m_ntimedel
文档评论(0)