猫捉老鼠小游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《猫捉老鼠小游戏》
程序设计基础课程设计报告
专业:计算机科学与技术
班级:09级2班
姓名:马建南
学号: 2009082230 2009082233
指导教师:郭攀
2010年9月18日
目录
1 课程设计目的 (2)
1.1课程设计目的 (2)
1.2课程设计题目 (2)
1.3题目要求 (2)
2 总体设计 (2)
(画出设计课题程序总体组成框图、流程图)
3详细设计 (3)
(各个模块功能说明(如函数功能、入口及出口参数说明,函数
调用关系描述等)及模块程序流程图)
4 课程设计的原程序代码 (4)
(程序代码清单中应有足够的注释)
5 运行结果............................................ .22
(截图及说明)
6 课程设计总结 (25)
7 参考书目 (26)
1 课程设计目的
1.1课程设计目的
设计一个猫和老鼠迷宫,显示猫和老鼠图像;设置游戏菜单、控制按钮、游戏时间、老鼠个数;进而实现游戏效果。
1.2课程设计题目
猫捉老鼠小游戏
1. 3 题目要求
1)设计一个猫捉老鼠迷宫。
2)要求猫的速度大于老鼠的速度。
3)计算最短路径,每走一步,猫按最短路径抓获老鼠;最短路径可运用数据结构中的队列实现。
附加功能:
1)迷宫随机生成。
2)增加老鼠个数。
2 总体设计框架图:
3.详细设计
1. OnDraw()函数显示迷宫及猫和老鼠。
2. OnTimer()函数判定结束标志,设置游戏时间。
3. OnKeyDown()函数实现猫的手动控制。
4. CDC *pDC 需要画位图的CDC指针
UINT IDImage 位图资源ID
Crect &rect 指定位图在pDC中的位置
COLORREF rgbMask 位图的透明色
atCatchRatView::CCatCatchRatView()
{
m_bmWall.LoadBitmap(IDB_Wall); //载入迷宫位图
}
6.void CCatCatchRatView::OnUpdateStop(CCmdUI* pCmdUI) {
pCmdUI->Enable(StartFlag==1); //游戏过程中可以选停止菜单}
通过不断改变猫鼠位图显示区域坐标,实现猫和老鼠的动态实现
4.课程设计的源程序代码(主要代码)
// CatCatchRatView.h : interface of the CCatCatchRatView class
#if !defined(AFX_CATCATCHRATVIEW_H__B4196808_4145_49DF_ 99D0_45F38E4512CB__INCLUDED_)
#define
AFX_CATCATCHRATVIEW_H__B4196808_4145_49DF_99D0_45F38 E4512CB__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "SelectDlg.h"
#define RATMAX 5 //宏定义,老鼠的最大个数
class CCatCatchRatView : public CView
{
public:
CBitmap m_bmCat[4],m_bmRat[4]; //猫和老鼠的位图CBitmap m_bmWall;
int StartFlag; //程序运行状态,-1:初始,0:暂停,1:开始,2:结束bool m_bRatLive[RATMAX]; //老鼠存活标志
int m_nWallw,m_nWallh;
int m_nWallx,m_nWally;
int m_nCatw,m_nCath; //猫位图的宽和高
int m_nCatx,m_nCaty; //猫位图的左上角坐标
//猫和老鼠的运动方向
int m_nRatDirection[RATMAX],m_nCatDirection;
int m_nRatw,m_nRath; //老鼠位图的宽和高//老鼠位图的左上角坐标
int m_nRatx[RATMAX],m_nRaty[RATMAX];
CRect m_rectClient; //场地矩形
CRect m_rectWall; //墙矩形
CRect m_rectRat[RATMAX],m_rectCat; //猫鼠位图的矩形
int m_nRat; //待抓老鼠数
int m_nRatSpeed,m_nCatSpeed; //运动速度
CTime m_timeStart,m_timeEnd; //游戏开始和结束时间CTimeSpan m_timeWork,m_timeSet; //游戏剩余时间和设定时间int m_nDifficulty; //难度0:低,1:中,2:高
int m_nWinFlag; //游戏获胜者,0:猫获胜,1:老鼠获胜protected: // create from serialization only
CCatCatchRatView();
DECLARE_DYNCREATE(CCatCatchRatView)
public:
CCatCatchRatDoc* GetDocument();
public:
protected:
这是一个用来画透明位图的函数
CDC *pDC 需要画位图的CDC指针