搜档网
当前位置:搜档网 › 连连看游戏设计

连连看游戏设计

连连看游戏设计
连连看游戏设计

中南林业科技大学

《数据结构课程设计》报告必做题:连连看游戏

选做题:

姓名:

学号:

专业班级:软件工程1班

学院:计算机与信息工程学院

指导老师:

2017年1 月10 日

目录

一、连连看问题

问题描述

该游戏对一堆图案中相同的图案进行配对,点击开始按钮后,要求在一定的时间内完成对所有的图片配对,玩家每次选择两个图形,如果两图形相同,且这两个图形之间存在少于2个拐角的连通路径,则可以消除这两个图形。成功消除一对图片则计分板会增加10分,对应的时间增加3秒。要求各类类型的图片个数为偶数个,途中若有玩家找不到可以匹配的图片时可以点击提示按钮,由系统提示出一对可以消除的图片,通过玩家的点击可以消除。当所有的图片消除时,系统提示消息为“恭喜你,通关了”,如果没有在规定时间完成所有图片的配对,则系统提示为“游戏结束”。

基本要求

(1)生成游戏初始局面;

(2) 每次用户选择两个图形,如果图形能满足一定条件(如果两个图形一样,且这个两个图形直接存在少于 2个弯的拐角),则两个图形都能消掉。给定具有相同图形的任意两个格子,我们需要寻找这两个格子之间在转弯少的情况下,经过格子数目少的路径。如果这个优路径的转弯数目少于 2,则这个两个格子可以消去;(3)判断游戏是否结束。如果所有图形全部消去,游戏结束;

(4) 判断死锁,当游戏玩家不可能消去任意两个图像的时候,游戏进入“死锁”状态。

设计思想

判断两个图形可以消除的条件是:两个图形必须相同,它们之间存在着0个拐角,或1个拐角,亦或是2个拐角可以互相连通消除,否则,消除不了。

广度优先搜索的具体实现:如果两个图形可以通过0个拐角连通,则从第一个选中的图片一次向右,向下,向左,向上搜索可以和当前选中图片消除的另一图片,当搜索到与之相同的图片时,则与之消去;图片布局刷新;

如果两个图片之间存在1个拐角可以消去,则广度搜索从当前图片出发,向左,右上下一次寻找一个路径节点(没有图片的点),使得寻找到的路径节点可以与选中的图片一线连通,并且可以与第二次选中的图片一线连通,则可以判断为可消除图片;图片布局重新刷新;

如果连个图片之间存在两个拐角可以连通,则分为两种情况:一种是两个图片在矩形区域的最外沿,则通过判断是否存在一条线使得在两待消除的图片周围一个单位,若存在则消去。二是两图片在矩形区域内部,则在两待消除的图片水平方向和垂直方向上寻找另外两个中间点能使两中间点之间连通,并且其中一个中间点能和待消图片1一线连通,另一中间点能和待消图片2一线连通,如若找到这样的点,则判断两图片能消去,找不到则不能消去。

需求分析

(1) 初始化游戏界面

该部分主要由执行窗口创建函数及游戏地图加载函数来实现。通过数据的初始化及游戏地图资源的加载为用户呈现一个游戏初始的界面。

(2) 图片的选择

该功能主要由鼠标来完成。在OnLButtonDown()事件函数中通过鼠标的点击事件选取所要消除的两个相同图片。

(3) 图形的判断与消除

对于第(2)步所选的两个图片,对其连通性进行判断:如果两图片直线连通,则相互消去;如果两图片连接为一个拐点且相通,则相互消去;如果两图片连接为两个拐点且相通,则相互消去;否则,不能消去。

(4) 判断游戏是否死锁或结束

如果所有的图片全部消去,则提示“游戏结束!”的信息。当游戏玩家不可能在消去任意两个图片时,游戏进入死锁状态。此时提示相关信息。

(5)游戏的提示

当玩家找不到两个可以消去的函数时,可以通过点击提示按钮获取系统帮助,继续游戏。

无具体要求,当玩家第一次点击图片时,对应图片响应点击消息,图片变成红色底片,若第二次点击的图片能和第一次的图片连通,则同时消失,否则选中的图

片为红色的底。系统设计

a.主要组成类:

图1

b.

调试测试

图3 图4 图5

(1)在设计时没有要求去设计提示次数,所以在设计时没有设计点击提示次数的限制条件,玩家可以一直点击提示。

(2)还有分数是固定的,玩家完成所有图片的连接消除,所得的分数是一致的。

(3)为了提高算法的执行效率,鼠标点击图片的次序不同,可能导致出现本可以消除的一对图片不能消去,但解决方案很简单,就是颠倒鼠标点击的次序。

(4)待消除的两图片在矩形区域内部并且有两个拐角时,为了提高执行效率,附加了一些判断条件,导致代码量增多。

(1)根据实际玩家需求,对系统提示次数加以限制,比如最多可以提示5次之类的具体方案,或者没使用一次提示,则所得分为5分而不是10分。

(2)找一个良好的分数与时间的函数,使得玩家用时少的时候,所得分数相对要高一些。

程序界面

图6

核心程序清单

(1)中

//在重画函数中添加时间信息,关卡信息和路径线条,通过窗口重绘,来画路径和改变时间

void CLLKDlg::OnPaint()

{

CPaintDC dc3(this);

CWindowDC dc(this);

CPen lPen(PS_SOLID, 2, RGB(222,211,140));//画笔的样式,宽度,颜色

//设置字体颜色

(&lPen);

//选择画笔

CFont font; //字体类

CString str;

(_T("剩余时间: %3d 秒"),m_time);

//m_time 中存储剩余时间信息

(100,_T("宋体")); //请求的的大小,取其1/10为其字体大小,这个函数提供了一种简单的方法来创建指定字体类型和字体大小

//设置字体

(&font);

(RGB(222,211,140));

(TRANSPARENT);

(10,40,str); //显示时间

//显示分数

();

(100,_T("宋体"));

(&font);

(RGB(201,186,131));

/*m_score= m_time-30;*/

(_T("分数:%d"),m_score);

(RGB(255,255,255));

(610,35,str);

CWindowDC dc2(this);

CPen pen(PS_SOLID, 3, RGB(161,23,21));

(pen);

//画出路径

if (LLKButton::ms_firstBtn != NULL && LLKButton::ms_secondBtn != NULL) {

//设置计时器,秒后擦除路径线条

SetTimer(2,100,NULL);

= LLKButton::ms_firstBtn-> * 50 + 45; = LLKButton::ms_firstBtn-> * 50 + 70; = LLKButton::ms_secondBtn-> * 50 + 45; = LLKButton::ms_secondBtn-> * 50 + 70; = LLKButton:: * 50 + 45;

= LLKButton:: * 50 + 70;

= LLKButton:: * 50 + 45;

= LLKButton:: * 50 + 70;

//无拐点

if (LLKButton:: == -1)

{

(pt1);

(pt2);

}

//一个拐点

else if (LLKButton:: == -1) {

(pt1);

(pt3);

(pt3);

(pt2);

}

//两个拐点

else

{

(pt1);

(pt3);

(pt3);

(pt4);

(pt4);

(pt2);

}

}

}

//初始化地图

void CLLKDlg::InitMap(int map[][MAXY])

{

int i,j;

int x,y;

int type;

//随机数种子

srand((unsigned int)time(NULL));//srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed);为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型再传给srand函数,

//map值表示图片类型,0表示没有图片

for(i=0;i

{

for(j=0;j

{

map[i][j]=0;

}

}

//map的最外层空出来,不放置图片for(i=1;i

{

for(j=1;j

{

if(map[i][j] != 0)

continue;

else

{

//保证了图片成对出现

type=rand() % m_typeNum;//图片种类

map[i][j]=type+1;

do

{

x = rand()%(MAXX-2)+1;

y = rand()%(MAXY-2)+1;

}

while(map[x][y]);

map[x][y]=type+1;

}

}

}

}

//根据map构造按钮

void CLLKDlg::ShowMap(int map[][MAXY])

{

int i, j;

CPoint p;

CString str = _T("");

//清除原有按钮

for(i=0; i<(); i++)

delete (LLKButton *)(i);

();//删除所有btn组

//添加新按钮

for(i=1; i<=MAXX-2; i++)

for(j=1; j<=MAXY-2; j++)

{

= i;

= j;

//将按钮放入m_btnGroup指针数组中

(new LLKButton(map[i][j], p));

}

//显示按钮

for(i=0; i<(MAXX-2)*(MAXY-2); i++)

{

LLKButton *btn = (LLKButton *)(i);

//构造按钮的大小和位置

btn->Create(str, WS_CHILD|BS_BITMAP|WS_VISIBLE,

CRect(70+(i%(MAXY-2))*50, 70+(i/(MAXY-2))*50,

120 +(i%(MAXY -2))*50, 120 +(i/(MAXY -2))*50), this,

IDC_BLOCK+i);

if(btn->m_ID)//如果为0则不显示

{

//尽量用绝对路径

(_T("res\\%"), btn->m_ID);

HBITMAP m_fkBmp = (HBITMAP)::LoadImage//VC中显示bmp要用到CBitmap类

(AfxGetInstanceHandle(),

str, IMAGE_BITMAP, 0, 0,

LR_CREATEDIBSECTION|LR_LOADFROMFILE);

//加载图片

if(m_fkBmp == NULL)

if (MessageBox (_T(" 缺少图片资源! "), _T(" 错误"), MB_ICONERROR|MB_OK) == IDOK)

{

CDialog::OnCancel();

return;

}

btn->SetBitmap(m_fkBmp);

btn->ShowWindow(SW_SHOW);

}

else

btn->ShowWindow(SW_HIDE);

}

}

//是否通关了

BOOL CLLKDlg::IsWin(void)

{

//时间结束,没有过关

if (m_time == 0)

{

KillTimer(1);

MessageBox(_T("Game Over !"),_T("时间结束"));

m_time = 30;

//清除桌面的按钮

for(int i=0; i<(); i++)

delete (LLKButton *)(i);

();

return FALSE;

}

for (int i = 0; i < MAXX; i++)

for (int j = 0; j < MAXY; j++)

{

if(map[i][j] != 0)

return FALSE;

}

//过关后停止计时

KillTimer(1);

MessageBox(_T("恭喜你,已经通关"),_T("胜利"));

m_score =m_time-30;

return TRUE;

}

//两按钮在同一条直线上

BOOL LLKButton::FindLine(CPoint p1, CPoint p2)

{

连连看游戏毕业设计

连连看游戏毕业设计 【篇一:连连看游戏的设计与实现本科生毕业论文】 毕业论文(设计) 论文(设计)题目 院系名称 专业(班级) 姓名(学号) 指导教师 系负责人 完成时间连连看游戏的设计与实现 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下 进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方 外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过 贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期:

使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定, 即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学 校有权保存 毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以 采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为 目的前提下, 学校可以公布论文的部分或全部内容。 作者签名:日期: 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究 所取得的研究成果。除了文中特别加以标注引用的内容外,本论文 不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的 研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同 意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或 部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等 复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日

连连看游戏设计

中南林业科技大学 《数据结构课程设计》报告必做题:连连看游戏 选做题: 姓名: 学号: 专业班级:软件工程1班 学院:计算机与信息工程学院 指导老师:

签名: 2017年1 月10 日 目录 一、连连看问题.............................. 错误!未定义书签。 1.1需求分析.................................... 错误!未定义书签。 ............................................. 错误!未定义书签。 ............................................. 错误!未定义书签。 1.2系统设计.................................... 错误!未定义书签。 1.2.1 程序流程图 ............................. 错误!未定义书签。 1.2.2 程序组成 ............................... 错误!未定义书签。 1.3调试测试.................................... 错误!未定义书签。 1.3.1测试用例................................ 错误!未定义书签。 1.3.2测试结果................................ 错误!未定义书签。 1.3.3存在问题................................ 错误!未定义书签。 1.3.4改进设想................................ 错误!未定义书签。

连连看游戏--详细设计说明书

基于FLEX开发的连连看游戏详细设计说明书 [V1.1.0] 学院名称:湖南软件职业学院 专业名称:软件技术专业 组员:虢威、孙庆龙、段志辉、罗奇 指导老师:危孟君

1引言 (3) 1.1编写目的 (3) 1.2背景 (3) 1.3定义 (3) 1.4参考资料 (3) 2程序系统的结构 (3) 3程序(标识符)设计说明 (4) 3.1程序描述 (4) 3.2功能 (4) 3.3性能 (5) 3.3.1精度 (5) 3.3.2时间特性要求 (5) 3.3.3灵活性 (5) 3.4算法 (5) 3.4.1地图的生成 (5) 3.4.1寻路算法 (7) 3.5流程逻辑 (12) 3.6接口 (13) 3.7注释设计 (14) 3.9限制条件 (14) 3.10尚未解决的问题 (14)

详细设计说明书 1引言 1.1编写目的 详细设计说明书对连连看游戏的总体设计和各个模块的功能、性能、输入输出、算法、接口、程序逻辑、存储分配及其它给出了详细的设计方案,为软件开发制定详细的计划,同时也提交系统分析员,由其提出意见。这是程序员开发及未来测试烦人重要文档资料。 1.2背景 a.开发软件名称:基于FLEX开发的连连看 b.项目开发小组成员:虢威、孙庆龙、段志辉、罗奇 c.用户:所有喜欢玩这个游戏的玩家 d.项目开发环境:Windows XP + Flash Builder4 + ActionScript 3.0。 1.3定义 连连看项目详细设计方案。 1.4参考资料 (1)《软件工程案列开发与实践》,刘竹林等,清华大学出版社 (2)《IT项目管理》,曾鸿、毛志雄等,中国铁道出版社 (3)《ActionScript 3.0编程精髓》,Colinn Moock(美),机械工业出版社 (4)《Flex 3 Cookbook》,(美)诺布尔(美)安德森,电子工业出版社 2程序系统的结构 本次所设计连连看游戏的程序主结构如图2-1所示。

JAVA实验报告3-“连连看”游戏程序设计

目录 一、实验目的与要求 (2) 二、实验方案 (2) 三、实验结果和数据处理 (3) 四、结论 (20) 五、问题与讨论 (20)

一、实验目的与要求 (1)实验目的:通过在指定的窗口界面完成“连连看”小游戏程序的编写和调试,加深对面向对象程序设计的理解。 (2)实验要求:按照Java程序设计教程的要求完成第三章中“连连看”游戏程序的编写和调试。 二、实验方案 定义了一个lianliankan类,实现了接口ActionListener: ①main()方法:主函数; ②actionPerformed()方法,用来实现重来一局按钮的响应事件; ③go()方法:初始化界面,排列图形; ④ex()方法:设置“退出游戏”窗体界面; ⑤suiji()方法:产生随机数,来填充游戏界面对应的数组的各个位置; ⑥chonglie()方法:当无符合条件的图形可消去时,需要重新排列图形; ⑦ling()方法:将数组中为零的成员所对应的按钮消去(设为不可见); ⑧wei()方法:判断并记录每次单击按钮的一些信息; ⑨xiao()方法:判断两个按钮在对应数组元素的值相同时能不能消去。

三、实验结果和数据处理 整个游戏最重要的方法,xiao()方法,用来判断两个按钮在对应数组元素的值相同时能不能消去: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class lianliankan implements ActionListener { JFrame mainFrame; //主面板 Container thisContainer; JPanel centerPanel,southPanel,northPanel; //子面板 JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组 JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮JLabel fractionLable=new JLabel("0"); //分数标签 JButton firstButton,secondButton; //分别记录两次被选中的按钮 int grid[][] = new int[8][7];//储存游戏按钮位置 static boolean pressInformation=false; //判断是否有按钮被选中 int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateL V; //游戏按钮的位置坐标 int i,j,k,n;//消除方法控制 public void init(){ mainFrame=new JFrame("JKJ连连看"); thisContainer = mainFrame.getContentPane();

LabVIEW连连看课程设计报告

成绩评定表

课程设计任务书

目录 1目的及基本要求 (1) 2 连连看设计原理 (2) 3连连看设计和仿真 (2) 3.1 主程序设计 (2) 3.2 子程序详细设计 (3) 3.3 设计中遇到的问题 (10) 4 结果及性能分析 (11) 4.1 运行结果 (11) 4.2 性能分析 (11) 参考文献 (12)

1目的及基本要求 虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。这也正是NI近30年来始终引领测试测量行业发展趋势的原因所在。只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境)是一种图形化的编程语言(又称G语言),它是由美国NI公司推出的虚拟仪器开发平台,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。使用这种语言编程时,基本上不用写程序代码,取而代之的是程序框图。 虚拟仪器(VI) 的概念虚拟仪器[1](virtual instrument)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。上面的框图反映了常见的虚拟仪器方案。尽可能采用了通用的硬件,各种仪器的差异主要是软件。同时可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。 熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现电子时钟的设计和仿真。要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。

连连看游戏设计

连连看游戏设计 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

中南林业科技大学 《数据结构课程设计》报告必做题:连连看游戏 选做题: 姓名: 学号: 专业班级:软件工程1班 学院:计算机与信息工程学院 指导老师: 签名: 2017年 1 月10 日 目录

一、连连看问题 问题描述 该游戏对一堆图案中相同的图案进行配对,点击开始按钮后,要求在一定的时间内完成对所有的图片配对,玩家每次选择两个图形,如果两图形相同,且这两个图形之间存在少于2个拐角的连通路径,则可以消除这两个图形。成功消除一对图片则计分板会增加10分,对应的时间增加3秒。要求各类类型的图片个数为偶数个,途中若有玩家找不到可以匹配的图片时可以点击提示按钮,由系统提示出一对可以消除的图片,通过玩家的点击可以消除。当所有的图片消除时,系统提示消息为“恭喜你,通关了”,如果没有在规定时间完成所有图片的配对,则系统提示为“游戏结束”。 基本要求 (1)生成游戏初始局面; (2) 每次用户选择两个图形,如果图形能满足一定条件(如果两个图形一样,且这个两个图形直接存在少于 2个弯的拐角),则两个图形都能消掉。给定具有相同图形的任意两个格子,我们需要寻找这两个格子之间在转弯少的情况下,经过格子数目少的路径。如果这个优路径的转弯数目少于 2,则这个两个格子可以消去; (3)判断游戏是否结束。如果所有图形全部消去,游戏结束;

(4) 判断死锁,当游戏玩家不可能消去任意两个图像的时候,游戏进入“死锁”状态。 设计思想 判断两个图形可以消除的条件是:两个图形必须相同,它们之间存在着0个拐角,或1个拐角,亦或是2个拐角可以互相连通消除,否则,消除不了。 广度优先搜索的具体实现:如果两个图形可以通过0个拐角连通,则从第一个选中的图片一次向右,向下,向左,向上搜索可以和当前选中图片消除的另一图片,当搜索到与之相同的图片时,则与之消去;图片布局刷新; 如果两个图片之间存在1个拐角可以消去,则广度搜索从当前图片出发,向左,右上下一次寻找一个路径节点(没有图片的点),使得寻找到的路径节点可以与选中的图片一线连通,并且可以与第二次选中的图片一线连通,则可以判断为可消除图片;图片布局重新刷新; 如果连个图片之间存在两个拐角可以连通,则分为两种情况:一种是两个图片在矩形区域的最外沿,则通过判断是否存在一条线使得在两待消除的图片周围一个单位,若存在则消去。二是两图片在矩形区域内部,则在两待消除的图片水平方向和垂直方向上寻找另外两个中间点能使两中间点之间连通,并且其中一个中间点能和待消图片1一线连通,另一中间点能和待消图片2一线连通,如若找到这样的点,则判断两图片能消去,找不到则不能消去。 需求分析 (1) 初始化游戏界面 该部分主要由执行窗口创建函数及游戏地图加载函数来实现。通过数据的初始化及游戏地图资源的加载为用户呈现一个游戏初始的界面。 (2) 图片的选择

JAVA课程设计—连连看

Java 课程设计报告 (一):前言: 随着计算机的快速发展,计算机的应用范围越来越广。其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、体育等各个领域,也应用到了娱乐方面。让人们在业余时间来放松心情。 (二):内容: 1:实验课题:连连看小游戏的开发设计 2:实验任务:完成游戏的运行 3:功能需求和分析: 本程序将涉及一款单机小型连连看游戏,该程序具备以下的功能:(1)该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随 机分布一些数字,数字的要求是至少两两相同,位置随机打乱。(2)游戏规则是将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则视为无效,若连接一对成功就 消失于界面,继续游戏,直到游戏结束。 (3)帮助:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 (4)退出游戏:可点击左下方“退出游戏”按钮,结束游戏。(5)该游戏纯属个人小型休闲游戏。

(三):代码设计 连连看java源代码 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class lianliankan implements ActionListener { JFrame mainFrame; //主面板 Container thisContainer; JPanel centerPanel,southPanel,northPanel; //子面板 JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组 JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮 JLabel fractionLable=new JLabel("0"); //分数标签 JButton firstButton,secondButton; //分别记录两次被选中的按钮 int grid[][] = new int[8][7];//储存游戏按钮位置 static boolean pressInformation=false; //判断是否有按钮被选中 int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标int i,j,k,n;//消除方法控制 public void init(){ mainFrame=new JFrame("JKJ连连看"); thisContainer = mainFrame.getContentPane(); thisContainer.setLayout(new BorderLayout()); centerPanel=new JPanel(); southPanel=new JPanel(); northPanel=new JPanel(); thisContainer.add(centerPanel,"Center"); thisContainer.add(southPanel,"South"); thisContainer.add(northPanel,"North"); centerPanel.setLayout(new GridLayout(6,5)); for(int cols = 0;cols < 6;cols++){ for(int rows = 0;rows < 5;rows++ ){ diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1])); diamondsButton[cols][rows].addActionListener(this); centerPanel.add(diamondsButton[cols][rows]); } } exitButton=new JButton("退出"); exitButton.addActionListener(this); resetButton=new JButton("重列"); resetButton.addActionListener(this); newlyButton=new JButton("再来一局");

基于Android的连连看游戏设计

本科毕业论文(设计) 题目:基于Android的连连看游戏设计 学生:李超学号: 201040620175 学院:物理与电子科学学院专业:电子信息科学与技术入学时间: 2010 年 9 月 13 日 指导教师:王森职称: 完成日期: 2014 年 4 月 18 日

摘要 手机游戏是一款在手机或者平板电脑上运行的游戏软件。随着移动互联网和科技的发展,移动终端设备得到了广泛的应用,在日常生活中,人们越来越离不开它。在此基础上,手机游戏得到了很大的发展。android手机就是在此基础上产生的,它是由Google公司推出的一款基于Linux内核的开源手机操作系统,由于其具有开放性、不受运营商的束缚、丰富的硬件选择、开发商不受任何限制和能无缝结合优秀的Google 应用的特点。再加上手机游戏的娱乐性、随意性,更是有了很大的发展空间。 本文就是在对android 手机游戏的研究基础上,开发了一款特别有趣的游戏---连连看。通过对游戏需求的分析,确定了连连看要实现的功能,通过对游戏界面布局、音效控制、动画设置、数据模型等研究,设计出了一款界面清新,有趣的一款简单的手机游戏,希望能为大家的日常生活带来一点乐趣,是人们生活更加快乐,心情愉悦。通过这次连连看游戏的设计,我对Android产生了更加浓厚的兴趣,并且从中看到了Android游戏的发展前景,相信Android的发展前景会越来越好。 关键字:手机游戏Android 连连看 ABSTRACT Mobile game is game software which is run on a mobile phone or a tablet. With the development of Internet and science and technology, mobile terminal equipment has been widely used and is indispensable in People's Daily life.Based on this , the mobile phone games got great development. Android is produced on the basis of this.It is a a open source operating system produced by Google company ,and which based on the Linux kernel.Due to its openness, free from all bondage of operators, rich hardware selection, developers are not subject to any restrictions and combine with excellent characteristics of Google apps closely. In addition to the entertainment of mobile games , optional, it has a very big development space. This article is based on the study of android mobile games, has developed a very

连连看游戏的设计与实现

苏州高博软件技术职业学院学生毕业设计(论文)报告 系别计算机科学技术 专业计算机应用 班级1310计应YZ 姓名支峰 学号013321018 设计(论文)题目连连看游戏的设计与实现 指导教师贺雪梅 起迄日期2015年10月16日-2016年4月25日

连连看游戏的设计与实现 摘要本文用VisualC++来设计与实现简单的连连看游戏的基本功能,玩家可以在游戏区域中通过键盘控制来选取相同的两个物件,采用特定的消除规则对它们进行消除的操作,当游戏区域中的所有方块对都被消除后玩家即可胜利。本次课程设计对该游戏的算法以及游戏图案的绘制进行详细的介绍。运用连线相消的方法完成了连连看游戏。 关键词:VisualC++6.0;连连看;游戏;3D绘图 1 引言 1.1连连看游戏介绍 游戏“连连看”顾名思义就是找出相关联的东西,它来源于街机游戏《四川麻将》和《中国龙》,是给一堆图案中的相同图案进行配对的简单游戏,在2003年,一个叫做朱俊的网友将这种形式搬到了PC上,立刻成为办公一族的新宠,并迅速传遍了世界各地。饱受工作压力的人们没有太多的时间进行复杂的游戏,而对于这种动动鼠标就能过关的游戏情有独钟。之后村子的连连看风靡版,阿达的连连看奥运版,连连看反恐版,还有敏敏连连看,水晶连连看等遍地开花,造就了一个连连看的新世界。连连看游戏有多种地图样式和道具系统、大大加强了游戏的可玩性,是一款老少皆宜的休闲佳品。 1.2课程设计的目的 网络小游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,通过游戏还可以认识更多的朋友,也可以到达跨省、跨市,甚至跨国间人们互相娱乐的目的。 另外也想通过本次课程设计将三年来所学的专业知识和其他方面的知识融入到实际应用中。

(完整版)Java毕业课程设计连连看游戏(含代码)

Java程序课程设计任务书 一、主要任务与目标 1、了解图形用户界面的概念; 2、了解AWT的基本体系结构,掌握窗口的基本原理; 3、掌握几种布局管理器的使用方法; 4、掌握java的事件处理机制; 5、了解Swing的基本体系结构,掌握Swing组件的使用方法; 6、掌握java小程序的工作原理和使用方法; 7、该游戏还将设置退出,再来一局按钮,并实现相应的功能。 8、设计一个用户注册登录界面 二、主要内容与基本要求 游戏规则是模仿网络上普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张想同图片所能连通的所有路径中,如果存在一条转弯点不多于两个的路径,就可以消去;如果没有,则不予处理。 该游戏由30张不同的图片组成,游戏开始将会出现30张随机组合的图片,在规则下点击两张相同的图片后图片将会消失。图片全部消完为游戏成功。游戏还将设置退出,再来一局的按钮,和倒计时的功能,方便用户进行操作。并且有一个用户登录注册界面,玩家必须登录以后才可以进行游戏。

三、计划进度 12月28日~ 12月29日:课程设计选题,查找参考资料 12月30日~ 12月31日:阅读参考书籍,收集资料,完成需求分析1月1日~ 1月3日:系统的代码设计及实现,数据库设计与实现 1月4日~ 1月5日:系统的调试,修改,完善 1月6日~ 1月7日:完成课程设计报告,准备答辩 四、主要参考文献 [1] 刘宝林.Java程序设计与案例习题解答与实验指导[M]. [2] 王鹏何云峰.Swing图形界面开发与案例分析[M]. [3](美)Karl Avedal , Danny Ayers, Timothy Briggs. JSP编程指南[M]. 电子工业出版社,. [4](美)Mark Linsenbardt. JSP在数据库中的应用与开发[M]. 希望电 子出版社,. [5] Dianne Phelan,Building a simple web database application[C].IEEE International Professional Communication Conference, 2004, 79-86. [6](美)Karl Avedal,Danny Ayers,Timothy Briggs.JSP编程指南[M].电子 工业出版社. [7] Dianne Phelan,Building a simple web database application[C].IEEE International Professional Communication Conference, 2005, 79-86. [8] Altendorf. Eric, Hohman. Moses, Zabicki. Roman. Using J2EE on a large, web-based project[J]. IEEE Software. (02):81-89.

QT版连连看制作的实验报告

(此文档为word格式,下载后您可任意编辑修改!) 一.游戏概述 1.1游戏简介 游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。 随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”,“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。 2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。 1.2游戏功能 本次设计连连看主要是在原连连看对战的基础上设计挑战模式,具体的功能如下所述: 游戏运行界面简单美观,操作简单,运行稳定;

●能够根据不同的等级模式播放不同的游戏背景音乐,包括操作 方向键、消行时的声音,音量由玩家操作控制; ●设计不同的游戏难度,当玩家达到一定的积分,可以进入相关 难度的等级; 玩家可直接操作界面上的相关按钮来控制游戏的开始、暂停、设置、退出等功能。 二.需求分析 2.1开发的需求 2.1.1 C++ CC++的哲学就不一样了,同一份程序代码,只要在该平台重新Compile成该平台的执行档,就能在该平台执行,若文字模式下的程序,的确可以跨平台,程序完全不需修改,但GUI盛行以后,由于各GUI的Library都不一样且没有标准,所以GUI程序并没办法跨平台Compile,因为各平台都有专属的Library。但是CC++优势就是执行速度快,若能解决GUI Library的问题,则跨平台即可解决。 除了GUI Library需要统一外,还得看该Library设计的好不好才行,Linux GUI我没写过就不说了,若在Windows平台,Borland的C++ Builder使用Delphi的VCL Library,Microsoft的Visual C++可以用MFC和.NET Framework,首先来看Borland的C++ Builder,它使用标准的ANSI C++语言开发,利用VCL写出来的程序也算蛮漂亮的,执行速度很快,比较麻烦的是C++Builder当初为了缩短上市时间,并没有设计自己的Library,而是藉用Delphi的Library,导致C++ Builder在Compile时,是先用Delphi的Compiler将VCL compile成

java实战之连连看游戏源码(完整版)

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class lianliankan implements ActionListener { JFrame mainFrame; // 主面板 JPanel centerPanel,saidPanel; // 子面板 JButton diamondsButton[][] = new JButton[10][10];// 游戏按钮数组 JButton firstButton, secondButton; // 分别记录两次被选中的按钮 JButton backButton, remarkButton, newlyButton, startButton;// 返回,重列,重新,开始|暂停按钮 JLabel lable1 = new JLabel("分数:"); JLabel lable2 = new JLabel("0"); // 分数标签 int grid[][] = new int[12][12]; static boolean pressInformation = false; // 判断是否有按钮被选中 int x0 = 0, y0 = 0, x = 0, y = 0, fristMsg = 0, secondMsg = 0, validateLV; // 游戏按钮的位置坐标 int i, j, k, n;// 消除方法控制 public void AddGif() { for (int cols = 0; cols < 10; cols++) { for (int rows = 0; rows < 10; rows++) { diamondsButton[cols][rows] = new JButton(new ImageIcon(String.valueOf(grid[cols + 1][rows + 1])+".gif")); diamondsButton[cols][rows].addActionListener(this); centerPanel.add(diamondsButton[cols][rows]); } } } public void create() { mainFrame = new JFrame("连连看"); mainFrame.setLayout(null); centerPanel = new JPanel(); saidPanel = new JPanel(); saidPanel.setLayout(null); saidPanel.setBackground(Color.yellow); centerPanel.setLayout(new GridLayout(10,10)); //10*10的网格布局

连连看游戏课程设计+源代码

课程设计 课程名称:程序设计课程设计 课题名称:网络连连看游戏 班级:xxx 学号:xxx 姓名:xxx 指导教师: 计算机学院

一、课程设计目的 本课程设计的目的最主要是掌握linux系统下C++编程思想,以及关于QT软件编程,设计出连连看图形界面,实现连连看各项功能,提高编程和解决问题的能力。 二、课程设计内容 设计一个连连看游戏项目,实现如下功能: 1、设计连连看游戏界面,能让用户在该界面上进行相关操作。 2、为游戏添加功能:聊天对话,逻辑层相消,游戏级别,时间限制等。 三、课程设计要求 1、课程设计的程序必须用C++语言完成。 2、课程设计必须在linux系统下进行。 3、要求写出需求分析报告。分析部分包括功能需求和界面需求。 4、本项目要求分团队完成,连连看游戏五人一组共同合作,培养学生团队合作的能力。 四、系统的需求分析和模块设计 1、需求分析 本项目需完成两大模块设计:一为游戏界面设计,二为游戏功能设计。 2、模块分解 系统功能层次模块图:

五、系统的程序设计与实现 程序的运行环境:Linux终端 开发环境:QT、C++ 程序的详细设计:连连看消去算法实现 在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。 分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了) * 1.相邻 * 2. 若不相邻的先在第一个按钮的同行找一个空按钮。1).找到后看第二个按钮横向到这个空按钮所在的列是否有按钮。2).没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。 3).没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没 有的话路经就通了,可以消了. * 3.若2失败后,再在第一个按钮的同列找一个空按钮。1).找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮2).没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。3).没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。 没有的话路经就通了,可以消了。 * 若以上三步都失败,说明这两个按钮不可以消去。 六、系统的运行结果与分析 程序源代码: Mainwindow.cpp #include

基于JAVA的连连看游戏设计

基于JAVA的连连看游戏设计 【摘要】:1978年第一款PC游戏冒险岛在美国问世至今,随着硬件和软件水平的不断进步,出现许许多多的游戏,其中连连看就非常经典。连连看--在一个画好的格局内,排列着一些不同的图片,选中两张一样的图片并符合消除规则就可以消除这两张图片。在QQ游戏大厅里就有连连看游戏,网上也有各种各样的单连连看游戏。本游戏使用JAVA语言编写,以MyEclipse为开发平台。游戏主界面是基于GUI的开发,使得游戏界面变得简单清晰。并且调用了平台的一些算法,完成了事件的触发功能。游戏首先通过定义动态的二维数组,然后根据一定的规则确定算法。 【关键词】:连连看;游戏;JAVA;数组 1.1 项目背景 最近这段时间腾讯推出的天天爱消除、天天酷跑、神庙逃亡2、连连看等小游戏深受广大网民欢迎,这些游戏简单有趣甚至经典。其中连连看游戏就是典型了。 游戏本身就有很强的吸引力,再加上计算机技术的高速发展,游戏的内容越来越丰富,画面越来越绚丽,音效越来越震撼。游戏所具有的独特魅力吸引了一大批玩家使游戏产业在娱乐领域成为主流。游戏一方面可以打发人们的空闲时间,另一方面可以为玩家创造一个以他为中心的世界,让玩家得到了一定的精神满足。游戏产业的快速发展促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”[1]。 游戏“连连看”的桌面游戏起源于台湾,进入中国大陆后,一时间成为时尚,同时,很多游戏公司都发展出了不同版本的连连看。其中顾方开发的“阿凡达连连看”一度受到好评,这个连连看游戏也成为此系列软件的核心产品。并且在2004年,得到了国家版权局的颁发的计算机软件著作权登记证书。软件技术的不断进步使Flash技术越来越成熟,这就衍生各种各样的“连连看”游戏随着Flash的成熟应用,网络上出现了许多版本的在线“连连看”。例如“动物连连看”、“水果连连看”等,其中“水晶连连看”以绚丽的界面吸引了大量的女性玩家。 艾瑞咨询收集2007年到2008年各种网络游戏受欢迎程度,并且通过百度、360、谷歌等搜索引擎统计大量的游戏数据,经过分析,发现2008年至2010年小游戏中比较热门的有对对碰、找茬、连连看等,。从2008年开始,风投公司对其他游戏的投资比例大幅度下降,而对一些小游戏研发企业的投资大幅度增加,这些小游戏行业迅速进入高速发展阶段然后慢慢趋于稳定。2008年以后,网络上出现各种各样的社交平台,平台上一般会有一个玩玩小游戏的交流区,连连看正常能名列其中。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行[2]。 1.2主要任务与目标 (1)分析游戏的软硬件需求;(2)设计游戏模块;(3)总体功能测试实现;(4)总结。 此次的连连看游戏开发设计使用JAVA语言。游戏规则是效仿网络上一般的连连看,就是用三条以内的直线将两张相同的图片连接在一起就可以消除这两张图片,如果点击的两张图片不一样或者同一张图片,那么就不处理。游戏开始后按照画好的框架随机分布一些图片,要求同一张图片的产生是偶数张。按照游戏设定的方法把两张一样的图片相连就可以消掉这两张图片,在倒计时结束之前必须将框架内的图片清除完不然游戏失败并得到一个相应的分数。

JAVA课程设计连连看(含代码)

Java程序课程设计任务书 1、主要内容: 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 2、具体要求(包括技术要求等): a. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是 6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要求是至少两两相同,位置随机打乱。 b.当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接, 否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 c. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求 的一对数字,可按左下按钮重置重新排列方可继续游戏。 d. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 e.运用基于SWING的图形用户界面设计知识等。 3、学习并掌握以下技术:Java等 4、熟练使用以下开发工具:Jcreate 等 实现系统上述的功能。 三、计划进度 12月28日-12月29 日:课程设计选题,查找参考资料 12月30日-12月31日:完成需求分析、程序设计 1月1日-1月3日:完成程序代码的编写 1月4日-1月6日:系统测试与完善 1月7日-1月8日:完成课程设计报告,准备答辩 四、主要参考文献

[1] (美)埃克尔著陈昊鹏,饶若楠等译. Java编程思想[J]. 机械工业出版社,2005 [2](美)Gary J.Bronson著张珑刘雅文译. Java编程原理[J]. 清华大学出版社,2004 [3](美)Michael Morrison著徐刚,于健,薛雷译. 游戏编程入门[J]. 人民邮电出版社,2005.9 [4](美)Wendy Stahler著冯宝坤,曹英译. 游戏编程中的数理应用[J]. 红旗出版社,2005 [5](美)克罗夫特(David Wallace Croft)著彭晖译. Java游戏高级编程[J]. 清华大学出版社,2005 [6](美)David Brackeen著邱仲潘译. Java游戏编程[J]. 科学出版社,2004 [7] 聂庆亮编著. Java应用开发指南[J]. 清华大学出版社,2010 [8] 耿祥义,张跃平编著. Java面向对象程序设计[J]. 清华大学出版社,2010 [9] 杨绍方编著. Java编程实用技术与案例[J]. 清华大学出版社,2000.11 [10] 明日科技编著. Java编程全能词典[J]. 电子工业出版社,2010

连连看游戏操作手册

用户操作手册 目录 1.引言 (2) 1.1编写目的 (2) 1.2项目背景 (2) 1.3定义 (2) 1.4参考资料 (2) 2.软件概述 (2) 2.1目标 (2) 2.2功能 (2) 2.3性能 (3) 3.运行环境 (3) 3.1硬件 (3) 3.2支持软件 (3) 4.使用说明 (3) 4.1安装和初始化 (3) 4.2输入 (4) 4.3输出 (4) 4.4出错和恢复 (4) 4.5求助查询 (4) 5.运行说明 (5) 5.1运行表 (5) 5.2运行步骤 (9) 6.程序文件(或命令文件)和数据文件一览表 (14)

1.引言 1.1编写目的 本文档将对连连看游戏的使用,操作以及维护进行描述,使用户(或潜在用户)能够通过本手册了解本软件的用途,并且知道在什么情况下,能够正确的使用它,本文档的使用者是用户。 1.2项目背景 a.项目名称:基于Android平台的连连看游戏 b.项目小组开发人员:姚富贵,张峥华,兰雨峰,兰雪峰,蒙本贵,刘刚,李尚萍 c.用户:将要使用本游戏的用户 d.项目开发环境:WindowsXP+Eclipse+AndroidSDK 1.3定义 连连看游戏用户手册 1.4参考资料 a.《需求规格说明书》 b.《概要设计说明书》 c.《详细设计说明书》 d.《Android应用开发揭秘》杨丰盛*著机械工业出版社 e.《深入浅出Android》 Gasolin著 2.软件概述 2.1目标 本项目力争成为能让玩家喜欢的一个放松休闲的小游戏,在使用过程中流畅没有错误,并具有一定的娱乐性。 2.2功能 本软件为游戏软件,纯做娱乐,该游戏属于敏捷类游戏,考验游戏玩家的反应速度以及

相关主题