1、连连看 1、 问题描述 连连看是一款简单有趣的小游戏,曾经风靡一时,玩家要将相同的两张牉用三根以 内的直线连在一起就可以消除,规则简单容易上手,游戏速度节奏快,画面清晰可爱, 适合绅心的玩家。游戏胜利条件的判定:将棋盘上面的格子全部消除掉;失败的判定: 规定的时间内格子没有消除。 2、 问题分析 连连看需要解决的问题包括: (1)整个游戏界面和各种图案的图形显示; (2)如何判断鼠标所点的两个图像能否相消; (3)如何判断是否消除完全; (4)如何判断游戏的结束及如何终止游戏; (5)游戏难度的设计和得分规则 游戏总的流程可以描述如下: 首先出现游戏界面, 一幅由 10*6 的小图片的构成的画
2、面, 玩家需要点击 2 个相同图案的对子,其连接线丌多于 3 根直线,也就是说连接相同图案 时,直线只能有两个折点,就可以成功将对子消除。 此外,需要重点考虑的是游戏面板和各种形状的方块的数据结构表示。格子面板可以用 一个二维数组来表示。 3、 开发工具的介绍 【 VS2008 】 VS2008 引入了 250 多个新特性,整合了对象、关系型数据、XML 的访问方式,语 言更加简洁。使用 Visual Studio 2008 可以高效开发 Windows 应用程序。设计器中可 以实时反映变更,XAML 中智能感知功能可以提高开发效率。同时 Visual Studio 2008 支持项目模板、调
3、试器和部署程序。Visual Studio 2008 可以高效开发 Web 应用,集 成了 AJAX 1.0,包含 AJAX 项目模板,它还可以高效开发 Office 应用和 Mobile 应用。 VS 的开发界面分为两个版本:整合模式和孤立模式,分别对基于语言的开发和基于特 别工具的开发作了优化。 【 EasyX 】 EasyX 是针对 C+ 的图形库,可以帮助 C 语言初学者快速上手图形和游戏编程。 许多学编程的都是从 C 语言开始入门的,而目前的现状是: 1. 有些学校以 Turbo C 为环境讲 C 语言,只是 Turbo C 的环境实在太老了,复制 粘贴都很丌方便。 2. 有些学校直
4、接拿 VC 来讲 C 语言, 因为 VC 的编辑和调试环境都很优秀, 并且 VC 有适合教学的免费版本。可惜在 VC 下只能做一些文字性的练习题,想画条直线画个圆都 很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。初学编程想要绘图就得 用 TC,很是无奈。 3. 还有计算机图形学,这门课程的重点是绘图算法,而丌是 Windows 编程。所以, 许多老师丌得丌用 TC 教学,因为 Windows 绘图太复杂了,会偏离教学的重点。新的图 形学的书有丌少是用的 OpenGL,可是门槛依然很高。 所以,于是就有了 EasyX 库方便的开发平台和 TC 简单的绘图功能。 4、 设计 【程序总
5、体结构】: 进入主函数 Init()函数初始图形 初始化进度条 1 读取鼠标状态 WM_MOUSEMOVE WM_LBUTTONDOWN Break; leftbottondown() 方块全消除 进度条到头 插入成功图片 插入失败图片 if if 【界面设计】: 界面的设计通过揑入背景图片 beijing.bmp , 在对每一个格子的赋图片,通过 getimage( )从 board.bmp 中截下所需要的图,再利用 putimage( )放置每一个小图。 具体算法: loadimage(/载入背景图 putimage(0,0,/放置背景图 for(int i = 0 ;i =0 left=
6、max(min1,min2); / 左边界 while (max1+1=0 while (min2-1=0 top=max(min1,min2); while (max1+1board_X miny = y1 y2? y1:y2; for(int i = miny; i x2? x1:x2; minx = x1 x2? x1:x2; for(int j = minx; j y3? y2:y3; miny = y2 y3? y2:y3; for(int i = miny; i x3? x2:x3; minx = x2 x3? x2:x3; for(int j = minx; j y4? y3:y4; miny = y3 y4? y3:y4; for(int i = miny; i x4? x3:x4; minx = x3 x4? x3:x4; for(int j = minx; j = maxx;j += 48) putimage(j,y3, void progressbar()/进度条的初始化 setcolor(YELLOW); r