C我语言编程老鼠寻路,数据结构课设-走迷宫游戏.doc

数据结构课设-走迷宫游戏

一、需求分析

1.问题描述:

2.基本功能

(1)开始游戏(2)重新开始(3)保存图片(4)载入图片(5)自会地图(6)自动寻路(7)设置时间()游戏帮助 3.输入输出

数据类型:结构体,整形数据

输入:按照窗口、菜单提示按鼠标左键

移动老鼠位置,按键盘的上、下、左、右键

输出:可视化迷宫二、 概要设计

1.设计思路:

1).利用mfc可以把迷宫地图以及老鼠形象可变的导出来。

2).需要有墙有路,通过把迷宫地图划分成一个一个小方块,通过一个数组的值来判断是墙是路。(1表示墙0表示路)

3).利用栈,来存入当前位置,然后判断下一位置,存入栈中 (4).把每个数组元素对应一个按钮根据点击按钮,改变数组的值从而改变墙和路的转化。 2.数据结构设计:

本程序运用的逻辑结构是线性和存储结构为顺序。之所以采用本结构是因为,迷宫主要用到栈来储存当前位置,和判断下一位置,来入栈。

抽象数据类型线性表的定义如下:

ADT Stack{ 数据对象:D={ai| ai ∈ElemSet,i=1,2,3……,n,n≥0}

数据关系:R1={| ai-1,ai ∈D,i=1,2,3,……,n}

基本操作:

Initstack(&s)

操作结果:构造一个空栈s。

Stackempty(s)

初始条件:栈s已经存在。

操作结果:将s清为空栈。

Push(&s,e)

初始条件:栈s已经存在。

操作结果:插入元素e为新的栈顶元素。

Pop(&s,&e)

初始条件:栈s已经存在,且非空。

操作结果:删除s的栈顶元素,并用e返回其值。

} ADT Stack

3.软件结构设计:

开始游戏void CMainFrame::OnStart():开始游戏。void CLabyrinthView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags):小老鼠键盘操。第一个参数表示哪个按键,接受上、下、左、右字符,判断调用哪个小老鼠图片,最后用脚印图片覆盖老鼠图片,达到朝前走,留下脚印的效果。(2)重新开始void CMainFrame::OnSysmap():系统地图。

void CLabyrinthView::OnSelfmap()、void CLabyrinthView::OnLButtonDown(UINT nFlags, CPoint point):绘制地图函数。达到墙变路、路变墙的目的。(3)保存图片void CMainFrame::OnSave():保存地图。(4)载入图片void CMainFrame::OnOpen():载入地图。BOOL CLabyrinthView::OnEraseBkgnd(CDC* pDC):设置欢迎画面,载入图片。(5)自地图void CLabyrinthView::OnLButtonDown(UINT nFlags, CPoint point): 墙变路,路变墙

(6)自动寻路void CLabyrinthView::OnAuto():为自动寻路函数。其重要调用Seqstack * CSkfction::init_Seqstack()、int CSkfction::Empty_Seqstack(Seqstack *s)、int CSkfction::Push_Seqstack(Seqstack *s,DataType x)、int CSkfction::Pop_Seqstack(Seqstack *s,DataType *x)函数。(7)设置时间int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct):到达在在状态栏中显示时间,调用了系统的函数SetTimer(1,1000,NULL); 第一个参数为对应时器的代 。在一个程序中,可能有多个SetTimer,在Ontime响应时,可以根据第一个参数来确定是哪一个记时器所引起的事件。第二个参数用于设置时间。 第三个参数为一个回调函数的指针,用NULL的话,系统会把

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览35079 人正在系统学习中 相关资源:电脑鼠仿真软件_电脑鼠-Web开发代码类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月15日
下一篇 2021年4月15日

相关推荐