猫捉老鼠小游戏

  • 格式:doc
  • 大小:1016.00 KB
  • 文档页数:26

下载文档原格式

  / 26
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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指针