连连看游戏设计文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统课程设计连连看游戏设计与分析
作者姓名:
专业、班级:
学号:
指导教师:
完成日期:
目录
引言……………………………………………………………………………………..
1. 系统分析与总体设计 (1)
1.1 项目概述……………………………………………………………………….
1.1.1 项目概要…………………………………………………………………..
1.1.2项目的意义………………………………………………………………...
1.2.3主要问题…………………………………………………………………...
1.2 总体设计……………………………………………………………………….
1.2.1总体结构图………………………………………………………………...
1.2.2系统功能…………………………………………………………………...
1.2.3系统结构及相关模块……………………………………………………..
2. 系统的详细设计………………………………………………………………….
2.1初始化游戏界面…………………………………………………………….
2.2 图片的选择…………………………………………………………………….
2.3 图片的判断与消除…………………………………………………………….
2.4 游戏的结果…………………………………………………………………….
3.系统的实现与调试………………………………………………………………….
3.1 调试过程……………………………………………………………………….
3.2运行结果………………………………………………………………………..
1、系统分析与总体设计
1.1项目概述
1.1.1 项目概要
"连连看"是近几年流行于网络的一种益智类休闲小游戏。它主要通过在游戏界面内连接相同图案来进行消除,以最终完全消除游戏界面内的图案为游戏完成的标准。这项小游戏操作简单,只需用鼠标进行点击操作即可,并且对玩家观察力、判断力、反应能力起到很好的煅炼作用,故一经推出就受到了广大玩家的喜爱。
1.1.2 项目的意义
随着社会节奏的加快,平常工作的竞争强度也加大,生活的压力也跟着加重。所以休息时或下班后大家都需要个休闲的娱乐工具,来放松自己,缓解自己的压力,消除紧张的疲劳状态。连连看游戏是一种意趣休闲的小游戏,不仅能调节精神,还能在游戏中锻炼我们的眼力视野,注意力的专心的程度,开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们面对困难时自己所具有攻克困难的信心。
当今基于EVC4.0编程技术的游戏开发十分流行,被游戏开发者所普遍应用。而“连连看”是近来网络上非常流行的一种休闲游戏,它对电脑配置要求不高,娱乐性强,简单易玩。目前大学生课程涉及基于EVC编程技术游戏开发方向的相对较少,这次通过连连看游戏的设计开发将对理解EVC技术以及EVC技术在游戏方面的应用起到很大的帮助作用,同时为EVC++编程技术及游戏设计打下坚实的基础。
1.1.3 主要问题
开始制作游戏时,主要要解决的问题有以下几个方面:如何设置整个游戏的界面;如何控制连连看游戏中随机图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断.
1.2 总体设计
1.2.1 总体结构图
图1.1
1.2.2 系统功能
(1) 初始化游戏界面
该部分主要由执行窗口创建函数及位图加载函数来实现。通过数据的初始化及位图资源的加载为用户呈现一个游戏初始的界面。
(2) 图片的选择
该功能主要由鼠标来完成。在OnLButtonDown()事件函数中通过鼠标的点击事件选取所要消除的两个相同图片。
(3) 图形的判断与消除
对于第(2)步所选的两个图片,对其连通性进行判断:如果两图片直线连通,则相互消去;如果两图片连接为一个拐点且相通,则相互消去;如果两图片连接为两个拐点且相通,则相互消去;否则,不能消去。
(4) 判断游戏是否死锁或结束
如果所有的图片全部消去,则提示“游戏结束!”的信息。当游戏玩家
不可能在消去任意两个图片时,游戏进入死锁状态。此时提示相关信息。
1.2.3 系统的结构及相关模块
图1.2
2、系统的详细设计
2.1初始化游戏页面
首先调用C e n t e r W i n d o w()函数创建一个居中的窗口,再执行m_bitmap.LoadBitmap()函数来加载指定的位图资源,然后通过调用m_MemDC.CreateCompatibleDC()创建一个与指定设备兼容的内存设备上下文环境(DC),再调用CreateCompatibleBitmap()函数创建与指定的设备环境相关的设备兼容的位图;最后调用FillMemDC()函数填充所创建的窗口。该部分的实现代码下:
BOOL CPocketLianDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
//创建一个居中的窗口
CenterWindow(GetDesktopWindow());
//加载指定的位图资源
m_bitmap.LoadBitmap(IDB_BITMAP_129);
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(int i=0;i<(m_nCol*m_nRow)/4;i++)
for(int j=0;j<4;j++)
arPlayer.Add(i);
for(i=0;i { int nIndex=(int(rand()*0.1+rand()*0.01+rand()))%arPlayer.GetSize(); m_Player[i]=arPlayer.GetAt(nIndex); arPlayer.RemoveAt(nIndex);