ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:803.94KB ,
资源ID:19859756      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19859756.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式大作业连连看文档Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式大作业连连看文档Word文档下载推荐.docx

1、如何设置整个游戏的界面;如何控制连连看游戏中随机图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断1.1.4、 需求分析 整个游戏程序通过在处理鼠标响应事件中伴随着绘图。程序通过调试运行,实现了设计目标,能够满足连连看游戏玩家的需要,关于连连看的功能描述如下:运行游戏并进行初始化工作,将整个游戏区域分成纵向和横向扩展的若干个小方块,并且这些小方块是由多种动物图案成对地分布于游戏区域的不同位置。玩家可以通过选取相同的两个物件来对它们进行消除的操作,直到将游戏区域中的所有方块对都被消除后为胜利1.2、 总体设计1.2.1、 系统的开发环

2、境 Intel(R) Core(TM) i5-2430M 4G内存 500G硬盘 Microsoft Windows 7 Microsoft eMbedded visual C+ 4.0 New Emulator_SDK1.2.2、 系统的总体功能1.2.3、 系统的结构及模块1.2.4、 功能说明1)游戏地图设计对于整个游戏区域,可以把它看作一个是由若干个小方块构成的地图,而且每一个小方块放置着不同的动物图案,可将其称之为图案小方块。这些图案小方块零散地分布在地图的不同位置区域,并且每一个图案小方块都有与其对应的完全一样的另外一个小方块,整个游戏游戏区域被抽象成一个有坐标位置属性的平面,平面

3、上零散地分布着若干个小方块,并且这些小方块的物种起码是成对出现的。经过前面的描述和分析后,可以把游戏区域地图用一个数组m_Player;来表示。m_Player;是把地图设计成一个动态分配的int整形一维数组,对地图中的行列数的表达,用一个转换法则即可。可以在PocketLianDlg类对象定义中添加地图核心数据的成员变量,具体如下: /地图位置相关属性组 int* m_Player; /动态地图数据头指针(一维数组) int m_nRow; /地图的行数(虚拟) int m_nCol; /地图的列数(虚拟) 2) 初始化游戏界面 该部分主要由执行窗口创建函数及位图加载函数来实现。通过数据的初

4、始化及位图资源的加载为用户呈现一个游戏初始的界面。 3) 图片的选择该功能主要由鼠标来完成。在OnLButtonDown()事件函数中通过鼠标的点击事件选取所要消除的两个相同图片。4) 图形的判断与消除对于第(2)步所选的两个图片,对其连通性进行判断:如果两图片直线连通,则相互消去;如果两图片连接为一个拐点且相通,则相互消去;如果两图片连接为两个拐点且相通,则相互消去;否则,不能消去。 5) 判断游戏是否死锁或结束如果所有的图片全部消去,则提示“游戏结束!”的信息。当游戏玩家不可能在消去任意两个图片时,游戏进入死锁状态。此时提示相关信息二、 系统的详细设计2.1、 游戏地图设计经过前面的描述和

5、分析后,可以把游戏区域地图用一个数组m_Player来表示。m_Player是把地图设计成一个动态分配的int整形一维数组,对地图中的行列数的表达,用一个转换法则即可。上面的成员变量中定义了一个整形指针标量m_Player,用于记录动态分配出来的一维数组地图空间的首地址。对于地图区域中的某个小方块的类型,可以用一个整形的ID来进行识别。这里为标识地图的行列位置分别添加m_nRow和m_nCol变量,到此,地图的数据结构已经设计好。 在PocketLianDlg类的构造函数对地图数据进行相关的初始化:#define ROWCOUNT 7 /7 /8 /9 #define COLCOUNT 12

6、/12 /14 /16CPocketLianDlg:CPocketLianDlg(CWnd* pParent /*=NULL*/) : CDialog(CPocketLianDlg:IDD, pParent) m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME); m_nY1=-1; m_nX1=-1; m_nRow=ROWCOUNT; m_nCol=COLCOUNT; m_Player=new intm_nRow*m_nCol;CPocketLianDlg() delete m_Player;PocketLianDlg类对象的实现中,定义了一些关于地图行

7、列数的宏,如ROWCOUNT和COLCOUNT,并且在PocketLianDlg类对象的构造函数中,进行了行列的真实确认赋值,并根据当前行列数的大小对地图数据空间进行动态创建。因为地图数据是用new在堆栈动态创建的,所以在销毁该对象时要将这些内存空间释放,见代码所示在PocketLianDlg类对象的析构函数中调用delete将m_Player指向的所有空间都释放掉。2.2、 初始化界面首先调用CenterWindow()函数创建一个居中的窗口,再执行m_bitmap.LoadBitmap()函数来加载指定的位图资源,然后通过调用m_MemDC.CreateCompatibleDC() 创建一

8、个与指定设备兼容的内存设备上下文环境(DC),再调用CreateCompatibleBitmap()函数创建与指定的设备环境相关的设备兼容的位图;最后调用FillMemDC()函数填充所创建的窗口。该部分的实现代码下:BOOL CPocketLianDlg:OnInitDialog() CDialog:OnInitDialog(); SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE); CenterWindow(GetDesktopWindow(); /创建一个居中的窗口 m_bitmap.LoadBitmap(IDB_BITMAP_129); /加

9、载指定的位图资源 CClientDC dc(this);/创建一个与指定设备兼容的内存设备上下文环境 m_MemDC.CreateCompatibleDC(&dc); CBitmap bitmap; bitmap.CreateCompatibleBitmap(&dc,m_nCol*FRONTWIDTH+5,m_nRow*FRONTHEIGHT+5); /创建与指定的设备环境相关的设备兼容的位图 m_MemDC.SelectObject(&bitmap); int n=GetTickCount(); srand(n);/time(NULL); CDWordArray arPlayer; for(

10、int i=0;i(m_nCol*m_nRow)/4;i+) for(int j=0;j=0) return false; return true;三、 系统实现与调试3.1、 调试过程刚开始调试程序时出现错误如图:解决方法:当安装的文件目录查找文件,然后拷贝文件地址Microsoft eMbedded visual C+ 4.0 下的菜单栏 toolOptionsDirectories如图调试程序时再次出现错误如图:当安装的文件目录查找文件,找到文件然后把查找的文件名分别修改为mfcee400d.libmfcce500d.lib olecc500d.lib olecc500d.lib3.2、

11、 系统运行的结果1)、初始界面截图2)、相邻图像的消除和边界双折线图像的消除3)、图像选定的标志4)、单折线图像的消除5)、游戏结束四、 附有程序代码打印 PocketLianDlg.cpp程序代码: / PocketLianDlg.cpp : implementation file#include stdafx.hPocketLian.hPocketLianDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif#define BKCOLOR RGB(128,128

12、,128)#define FRONTWIDTH (39+2)#define FRONTHEIGHT (39+12)#define BKWIDTH 46#define BKHEIGHT 56#define ROWCOUNT 7 /7 /8 /9/ CPocketLianDlg dialog /AFX_DATA_INIT(CPocketLianDlg) / NOTE: the ClassWizard will add member initialization here /AFX_DATA_INIT / Note that LoadIcon does not require a subsequen

13、t DestroyIcon in Win32void CPocketLianDlg:DoDataExchange(CDataExchange* pDX)DoDataExchange(pDX); /AFX_DATA_MAP(CPocketLianDlg) the ClassWizard will add DDX and DDV calls here /AFX_DATA_MAPBEGIN_MESSAGE_MAP(CPocketLianDlg, CDialog) /AFX_MSG_MAP(CPocketLianDlg) ON_WM_LBUTTONDOWN() ON_WM_PAINT() /AFX_M

14、SG_MAPEND_MESSAGE_MAP()/ CPocketLianDlg message handlers / Set the icon for this dialog. The framework does this automatically / when the applications main window is not a dialog / Set big icon / Set small icon / center to the hpc screen / TODO: Add extra initialization here /ZeroMemory(m_Player,sizeof(m_Player);FillMemDC() CDC MemDC; MemDC.CreateCompatibleDC(& CBitmap bitmap1; bitmap1.LoadBitmap(IDB_BITMAP_129); MemDC.SelectObject(&bitmap1); m_MemDC.Fill

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1