当前位置:文档之家› 连连看小游戏Java

连连看小游戏Java

连连看小游戏Java
连连看小游戏Java

一、课程设计题目.... (2)

二、功能描述........ (2)

三、方案论证........ (3)

1.概要设计....... (3)

2.详细设计....... (4)

四、程序说明........ (5)

五、运行效果........ (7)

六、结果分析及心得体会 (10)

七、附录........ (11)

八、参考文献.. (17)

一、课程设计题目

Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。

学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。设计连连看小游戏,实现“开始游戏”“判断两张图片是否相同”“使用炸弹”等功能。进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java能力。

二、功能描述

用户可以通过点击菜单中的“开始游戏”选项,开始新游戏程序。程序会载入图片,并通过特定的算法排列图片,并标记图片,以便判断图片是否相同。记录图片坐标,以方便计算图片是否可以相连。确定图片大小,以确定用户点击的是那张图片。

用户选择两张一样的图片,通过鼠标进行选取,如果用户两次点击的图片不相同,那么系统认为用户没有点(鼠标记数归0),以完成用户以后的选取工作。如果用户选择的是相同的图片,那么系统会消除这两张图片,并使鼠标记数为0,并消除这两张图片的标记,使里面的图片被标记在外面。以便用户可以进行以后的选择。

用户也可使通过使用“炸弹”功能进行消除图片。方法是点击菜单中的“炸弹”选项使用,点击后如果界面上有两张可以相连的相同图片就随机消除两张可以相连的相同的图片。

炸弹数目是有限的,默认数目为三,每使用一次“炸弹”功能,炸弹数目就会自动减一,当炸弹数目为零时(使用三次“炸弹”功能)。并且用户想再次使用炸弹时,系统会弹出对话框提示用户,并把菜单中“炸弹”选项变为灰色。

当系统开始游戏后,系统会在后台记录时间,如果在用户还没有消除所有图片

时,系统时间到,那么系统会弹出对话框,提示用户,时间到了,游戏失败。 当用户点击确定后,系统还会弹出对话框询问用户是否重新开始,用户选择“是”时,系统会开始新游戏;当用户选择“否”时,系统会返回开始界面;当用户选择“取消”时,系统会返回提示时间到的界面。

如果在时间未到时,用户使所有的图片都消失(两两消除,直到最后一对),系统会提示用户游戏以通过,点“确定”后回到开始界面。

三、方案论证

1.概要设计

图1 功能模块图

在连连看小游戏是系统共有6个java 源文件各主类的主要作用如下 1)MainFrame.java

主窗口部分定义了程序用函数,实现了程序菜单(initMenuBar )的使用。 2)ChessButton.java

按键部分定义按键的位置,代表的值。

MainFr ame.jav a 源文件定义主程序窗体和菜单

CheesB utton.ja va 源文件定义键值

Map.ja va 源文件通过算法确定两张图片是否连通

Array.P oint.jav a 源文件定义图片的值

Settings .java 源文件确定了游戏各种参数属性

MapUI.java 源文件初步定义游戏界面及功能

init Men uBar ()子函数

Initi alize ()子函数

Relo ad()子函数

initT imer ()子函数

getP oint()子函数

Initi alize ()子函数

initC hess es()子函数

Bom b ()子函数

toStr ing ()子函数

3)MapUI.java

游戏部分判断点击的图片,判断两图片是否可连,是否相同。判断是否胜利。实现炸弹功能。

4)Settings.java

数组确定了游戏各种参数属性。

5)ArrayPoint.java

取值部分定义图片的值。

6)Map.java

算法部分通过算法确定两张图片是否连通。

2.详细设计

1)成员变量

成员变量也叫类的属性,一般带有访问控制属性的,而全局变量虽然也有类的属性,但全局变量严重影响了封装和模块化,一般的全局变量前面要加上static 和fina属性其中,static使该变量任何类都可用(方法ClassName.全局变量名) ,而fina则使得变量不可更改,基本上算是常量了,这也在一定程度上防止对变量的非法修改。

成员变量表

成员变量描述变量类型名称

文件Files File

文件区Jtextarea Textarea

菜单项Jmenuitem Menuitem_copy

菜单Umenuitem Umenuitem

标签Jlabel Label_seek

文件名String Seel

2)方法

方法名称为任何合乎语法的识别字,返回值类型是方法执行结果返回给调用者的数据类型,void表示没有返回值,参数行(parameter list)是调用时给予的参数声明,两个以上的参数声明以逗号隔开,若没有参数则参数行为空白,调用时

每一个参数对应一个参数值(argument)大括号内为方法本体,也称为方法程序模块(block),包含声明(declarations)和语句(statements),声明也可以掺杂在语句之间。一个方法不能声明在另一个方法内。

方法表

方法名功能备注

MyTextEditor 创建文本编辑器构造方法

Dialog 创建对话框

addMenu 添加菜单栏菜单项

writeToFile 向文本区写文件

readFromFile 读文件

openDialog 打开文件

saveDialog 保存对话框

actionPerformed 事件处理

itemStateChanged ItemListener事件处理方法

mouseClicked 鼠标处理事件接口方法

mouseEvent 鼠标处理事件接口方法

mouseReleased 鼠标处理事件接口方法

mouseEntered 鼠标处理事件接口方法

mouseExit 鼠标处理事件接口方法

mouseDragged 鼠标处理事件接口方法

Main 程序开始运行

四、程序说明

此设计共有以下几个功能模块。

(1)开始游戏

程序会载入图片,并通过特定的算法排列图片,并标记图片,以便判断图片是否相同。记录图片坐标,以方便计算图片是否可以相连。确定图片大小,以确定用户点击的是那张图片。

(2)使用“炸弹”

用户点击菜单中的“炸弹”选项使用,点击后如果界面上有两张可以相连的相同图片就随机消除两张可以相连的相同的图片。

(3)限制炸弹“数目”

默认数目为三,每使用一次“炸弹”功能,炸弹数目就会自动减一,当炸弹数目为零时(使用三次“炸弹”功能)。并且用户想再次使用炸弹时,系统会弹出对话框提示用户,并把菜单中“炸弹”选项变为灰色(用户不可使用)。

(4)对用户游戏时的判断

用户选择两张一样的图片,通过鼠标进行选取,如果用户两次点击的图片不相同,那么系统认为用户没有点(鼠标记数归0),以完成用户以后的选取工作。如果用户选择的是相同的图片,那么系统会消除这两张图片,并使鼠标记数为0,并消除这两张图片的标记,使里面的图片被标记在外面。以便用户可以进行以后的选择

流程图如下

进入主函数

开始游戏

接受用户点击

两张图片是否

相同

两张图片是否

可以相连

程序是否还有

图片未消除

结束

图2 主函数流程图

五、运行效果

开始游戏程序,程序会载入数字,并通过特定的算法排列数字,并标记数字,以便判断数字是否相同。记录数字坐标,以方便计算数字是否可以相连。

图3 开始游戏后画面

用户选择两张一样的数字,通过鼠标进行选取,如果用户两次点击的数字不相同,那么系统认为用户没有点(鼠标记数归0),以完成用户以后的选取工作。

图4 消除后画面

用户也可使通过使用“重列”功能进行消除数字。方法是点击“重列”选项,点击后数字就会重新排列。

图5 使用重列后画面

用户使所有的数字都消失两两消除,直到最后一对

图6 通关画面

六、结果分析及心得体会

通过这次课程设计我学到了不少东西,也发现了大量的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。因而,通过课程设计之后,把以前所学过的知识重新温故。有些在设计过程中已解决,有些还有待今后慢慢学习,只要认真学就会有更多的收获。总之这次课程设计使我更多的掌握了所学的知识,并运用到实践上,了解了java的重要性,对以后的学习起了重要作用。

在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。

我完成了JA V A课程设计,但它仅仅是我的学习路站。我相信,我会记得在今后的学习了解到这门课程设计,并用它在未来的研究中。这里感谢老师的指导,我会更加努力

六、.附录

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("再来一局"); //再来一局按钮

newlyButton.addActionListener(this);

southPanel.add(exitButton);

southPanel.add(resetButton);

southPanel.add(newlyButton);

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText()))); northPanel.add(fractionLable);

mainFrame.setBounds(280,100,500,450);

mainFrame.setVisible(true); }

public void randomBuild() //产生随机数

{ int randoms,cols,rows;

for(int twins=1;twins<=15;twins++)

{ randoms=(int)(Math.random()*25+1);

for(int alike=1;alike<=2;alike++)

{ cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

while(grid[cols][rows]!=0)

{ cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1); }

this.grid[cols][rows]=randoms; } } }

public void fraction()//计数

{ fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100)); } public void reload()

{ int save[] = new int[30];

int n=0,cols,rows;

int grid[][]= new int[8][7];

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

{ for(int j=0;j<=5;j++)

{ if(this.grid[i][j]!=0)

{ save[n]=this.grid[i][j];

n++; } } }

n=n-1;

this.grid=grid;

while(n>=0)

{ cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

while(grid[cols][rows]!=0) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1); }

this.grid[cols][rows]=save[n];

n--; }

mainFrame.setVisible(false);

pressInformation=false; //这里一定要将按钮点击信息归为初始

init();

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

{ for(int j = 0;j < 5;j++ )

{ if(grid[i+1][j+1]==0)

diamondsButton[i][j].setVisible(false); } } }

public void estimateEven(int placeX,int placeY,JButton bz) //判断所单击的两次是否相同{ if(pressInformation==false)

{ x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

pressInformation=true; }

else

{ x0=x;

y0=y;

fristMsg=secondMsg;

firstButton=secondButton;

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

if(fristMsg==secondMsg && secondButton!=firstButton)

{ xiao(); } } }

public void xiao() { //相同的情况下能不能消去。

if((x0==x &&(y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))){ //判断是否相邻remove(); }

else

{ for (j=0;j<7;j++ )

{ if (grid[x0][j]==0){ //判断第一个按钮同行哪个按钮为空

if (y>j) { //如果第二个按钮的Y坐标大于空按钮的Y坐标说明第一按钮在第二按钮左边

for (i=y-1;i>=j;i-- )

{ //判断第二按钮左侧直到第一按钮中间有没有按钮

if (grid[x][i]!=0)

{ k=0;

break; }

else{ k=1; } //K=1说明通过了第一次验证}

if (k==1)

{ linePassOne(); } }

if (y

{ //如果第二个按钮的Y坐标小于空按钮的Y坐标说明第一按钮在第二按钮右边for (i=y+1;i<=j ;i++ )

{ //判断第二按钮左侧直到第一按钮中间有没有按钮

if (grid[x][i]!=0){

k=0;

break; }

else { k=1; } }

if (k==1)

{ linePassOne(); } }

if (y==j )

{ linePassOne(); } }

if (k==2)

{ if (x0==x)

{ remove(); }

if (x0

{ for (n=x0;n<=x-1;n++ )

{ if (grid[n][j]!=0)

{ k=0;

break; }

if(grid[n][j]==0 && n==x-1)

{ remove(); } } }

if (x0>x)

{ for (n=x0;n>=x+1 ;n-- )

{ if (grid[n][j]!=0)

{ k=0;

break; }

if(grid[n][j]==0 && n==x+1)

{ remove(); } } } } } for (i=0;i<8;i++ )

{ if (grid[i][y0]==0)

{ if (x>i)

{ for (j=x-1;j>=i ;j-- )

{ if (grid[j][y]!=0)

{ k=0;

break; }

else { k=1; } }

if (k==1) {

rowPassOne(); } }

if (x

{ for (j=x+1;j<=i;j++ )

{ if (grid[j][y]!=0)

{ k=0;

break; }

else { k=1; } }

if (k==1) {

rowPassOne(); } }

if (x==i)

{ rowPassOne(); } }

if (k==2)

{ if (y0==y)

{ remove(); }

if (y0

{ for (n=y0;n<=y-1 ;n++ )

{ if (grid[i][n]!=0)

{ k=0;

break; }

remove(); } } }

if (y0>y)

{ for (n=y0;n>=y+1 ;n--)

{ if (grid[i][n]!=0)

{ k=0;

break; }

if(grid[i][n]==0 && n==y+1)

{ remove(); } } } } } }}

public void linePassOne()//判断行是否可以消除

{ if (y0>j){ //第一按钮同行空按钮在左边

for (i=y0-1;i>=j ;i-- )

{ //判断第一按钮同左侧空按钮之间有没按钮

if (grid[x0][i]!=0)

{ k=0;

break; }

else { k=2; } //K=2说明通过了第二次验证} } if (y0

for (i=y0+1;i<=j ;i++){

if (grid[x0][i]!=0) { k=0;

break; }

else{ k=2; } } } }

public void rowPassOne(){ //判断列是否可以消除

if (x0>i) {

for (j=x0-1;j>=i ;j-- ) { if (grid[j][y0]!=0) { k=0;

break; }

else

{ k=2; } } }

if (x0

for (j=x0+1;j<=i ;j++ )

{ if (grid[j][y0]!=0)

{ k=0;

break; }

else { k=2; } } } }

public void remove()//消除所选按钮

{ firstButton.setVisible(false); //最大距离只能为2行1列

secondButton.setVisible(false);

fraction();

pressInformation=false;

k=0;

grid[x0][y0]=0;

grid[x][y]=0; }

public void actionPerformed(ActionEvent e) //监听事件

{ if(e.getSource()==newlyButton)

this.grid = grid;

randomBuild();

mainFrame.setVisible(false);

pressInformation=false;

init(); }

if(e.getSource()==exitButton)

System.exit(0);

if(e.getSource()==resetButton)

reload();

for(int cols = 0;cols < 6;cols++)

{

for(int rows = 0;rows < 5;rows++ )

{

if(e.getSource()==diamondsButton[cols][rows])

estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);

}

}

}

public static void main(String[] args) { //游戏入口

lianliankan llk = new lianliankan();

llk.randomBuild();

llk.init();

}

}

六、.参考文献

[1] 印旻. Java语言与面向对象程序设计[M],北京: 清华大学出版社,2005.4: 58-72

[2] 朱站立、沈伟. Java程序设计实用教程[M], 北京: 电子工业出版社, 2007.5: 82-95

[3] 朱福喜、尹为民、余振坤等. Java语言与面向对象程序设计[M], 第2版. 武汉: 武汉大学出版社,2006.1:123-130

[4] 艾力江. Java 2 范例入门与提高 [M],北京: 清华大学出版社

[5]耿祥义. java2实用教程 [M],北京:清华大学出版社

[6]陈国君,陈磊,陈锡桢,刘洋. Java2程序设计基础 [M], 北京:清华大学出版社

[7] 张海藩. 软件工程导论(第5版) [M]. 北京:清华大学出版社, 2008, 203~304

[8] 余永红, 陈晓玲. UML建模语言极其开发工具Rose [M]. 北京:中国铁道出版社, 2011, 63~172.

[9] 秦海玉. Windows游戏程序设计基础[M]. 北京:电子工业出版社, 2011,101~159

[10] 丁展. JA V A游戏开发技术与实例[M]. 北京:人民邮电出版社, 2004,43~45

简易数字连连看Java程序的设计书

简易数字连连看Java程 序设计书 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求:

图一,数字按钮功能模块 图二,三个功能按钮模块 图三,数据记录模块

图四,鼠标操作模块 2.2部分模块流程图:

3代码设计 package mybase.programe; /* * lianliankan总体算法思路:由两个确定的按钮。若这两个按钮的数字相等,就开始找它们相连的路经。这个找路经 * 分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有 * 三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了)

连连看-JAVA课程设计报告

课程设计 2013 ~ 2014学年第二学期 设计题目连连看游戏程序 院(系) 专业软件工程 班级学号 学生姓名 设计时间 2014年6月24日~2014年6月27日 指导教师 提交日期 2014年6月27日

目录 目录 (2) 1.课程设计的目的与要求 (3) 1.1课程设计目的与要求 (3) 1.2课程设计内容 (3) 1.3课程设计的实验环境 (3) 1.4课程设计的预备知识 (3) 2.系统模块结构图 (4) 2.1 模块设计 (4) 2.1.1 菜单控制模块 (4) 2.1.2 算法模块 (5) 2.1.3 界面显示模块 (7) 3.详细设计 (9) 3.1总体算法思路 (9) 3.2代码实现 (9) 4.小结 (9)

1.课程设计的目的与要求 1.1课程设计目的与要求 1.掌握JA V A语言中面向对象的概念,并能在程序中熟练运用。 2.了解面向对象程序设计(JA V A)的基本概念以及运用面向对象技术进行程序设计的基本思 想。 3.能正确编写和调试JA V A程序。 4.了解在JA V A环境下进行程序设计的基本思想和方法。 1.2课程设计内容 1.设计一个连连看的游戏程序。 2.在JA V A环境下,将上述程序使用GUI、数据结构等内容完成 3.设计思路: (1)界面设计 1)初始测试界面可以考虑使用简单的按钮来代表连连看游戏中的图标。 2)布局可以考虑使用GRID方式。 3)设计菜单选择连连看难度等内容,具体可参照QQ连连看,也可自定义。 4)考虑完善界面,例如动画等。 (2)代码设计 1)本设计的核心为练练看算法的设计,可以考虑数据结构中的图的遍历章 节,合理设计算法,将界面中各按钮的分布映射入数学矩阵进行路径规划。 (可以上网搜索相关算法)。 2)完成连连看游戏的图形、算法等代码的设计。 4.实验步骤(包括操作方法、数据处理) (1)界面设计 (2)算法设计 (3)代码设计 1.3课程设计的实验环境 硬件要求能运行Windows xp/7操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境, ECLIPSE开发工具。 1.4课程设计的预备知识 熟悉JAVA语言及ECLIPSE开发工具。

基于java的连连看游戏设计毕业设计论文(含源文件)

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

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

基于java的连连看游戏

基于JAVA的《连连看》游戏 一引言 《连连看》游戏在网上种类非常多,比如《水果连连看》,《宠物连连看》等等,虽然版本各种各样,但是其基本玩法,或者说基本算法是相同的,就是显示一些图标,让用户依次去点击两个图标,如果这两个图标相同,并且这两个图标通过直线可以相连,或者通过直角相连,或者通过双折线相连就可以消掉,消掉所有图标即为胜利。如图1所示: 图1 正在进行中的连连看游戏 通过该游戏的制作,我们可以对Java的基础语法、Java图形界面以及简单的算法设计有一个比较全面的了解。 二设计要求 为了避免叙述的繁琐,我们只实现连连看游戏的基本功能,如下: ●制作如图1所示的游戏界面,尽量做到美观大方,使用方便 ●当两个图标相同,且通过直线相连、直角相连、双折线相连时,能够消掉图标 ●能够让游戏随时暂停,然后继续

当游戏进行到一定程度,无法消除剩余图标时,要能够提供重排功能对图标进行重排,从而让游戏继续进行 三实现思路 我们先讲一下程序中的几个难点,主要是说清楚具体的实现思路,具体的代码会在文后给出,大家可以参考。 1、界面设计 需要实现如图2所示的界面: 图 2 连连游戏界面 整个界面分为三个区域:菜单区、功能区、游戏区。首先在窗体上放置三个面板JPanel,分别存放三个区域,如图3所示:

图3 界面的设计 系统菜单区放置菜单即可,用户游戏区放置一个8*9的按钮数组来构成游戏界面,用户交互区放置开始,暂停等功能按钮以及提示信息。 2、生成游戏区 运行程序后,游戏区并不显示按钮数组,当点击开始按钮后,再自动生成。在生成按钮时要求按钮上的图案是随机的,且每个图案必须是偶数,否则会出现无法消除的按钮。如何实现呢?我们可以这样考虑:假设有12个图片,把图片名字按照数字序号从0到11命名;假设游戏区共72个按钮,那么产生36个12以内的随机数字(每个随机数字代表一个图片),放入一个ArrayList中,最后使用ArrayList的addAll方法对已经产生的36个随机数字复制一份,这样就获得了72个随机数字,并且是成对的。因为一个数字对应一个图片,所以72个按钮需要的图片就生成了。代码如下: Random random = new Random(); int imagenum = ROW * COL; for(int i=0; i

【连连看】小游戏初始源代码

【连连看】简单小游戏初始源代码 使用说明:进入Java开发工具eclipse中,在左面建立一个任意名的java project,然后在工程下建立一个名字为Lianliankan的package,最后建立一个名字为lianliankan的class类。 将以下程序代码复制入class内容面板中,点击运行。 package Lianliankan; 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("再来一局");

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();

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的网格布局

java(源代码)连连看课程设计

目录 第一章引言 (2) 1.背景 (2) 1.1课程设计内容 (3) 第二章系统介绍 (4) 1.连连看游戏规则 (4) 1.1游戏基本规则 (4) 1.2操作规则 (4) 1.3胜利和失败 (4) 2.游戏流程图分析 (4) 第三章系统游戏设计 (7) 1.系统分析 (7) 1.1游戏系统需求分析 (7) 1.2系统开发及运行环境 (7) 1.3系统功能主要要求 (7) 2.系统总体结构 (8) 3. 系统各模块功能介绍 (8) 第四章系统的具体实现 (9) 1.系统主要运行界面 (9) 1.1运行界面 (9) 1.2执行界面,进入游戏正常运行 (9) 1.3时间到界面 (10) 1.4赢家界面 (11) 1.5进度条界面 (12) 图4.5程序运行进度条 (12) 2.游戏实现代码 (12) 2.1主面板内所需要的组件的声明 (12) 2.2填充一个矩形框,进行显示时间 (12) 2.3主面板及各组件初始化 (13) 2.4创建时间对象,每隔100毫秒刷新一次 (13) 2.5分数代码。 (13) 3.消除图片具体情况 (14) 3.1两次点击相同图片相邻 (14)

3.2水平方向消去算法 (14) 3.3竖直方向消去算法 (15) 第五章程序清单 (16) 第六章结束语 (24) 第七章参考文献 (25) 第一章引言 1.背景 游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。 随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。 2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。 网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。连连看游戏就是典型。 不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络、单机休闲小游戏。 游戏《连连看》,只要将相同的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱,适合细心的玩家。丰富的道具和公共模式的加入,增强游戏的竞争性。多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。 该游戏由30张不同的图片组成,游戏开始将会出现30张随机组合的图片,在规则下点击两张相同的图片后图片将会消失。图片全部消完为游戏成功。游戏还将设置退出,再来一局的按钮,并实现该功能,方便用户进行操作。

基于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毕业论文连连看游戏的开发

计算机科学与工程学院 集中性实践教学计划书( 2013 — 2014学年第1学期) 课程名称:专业实习 姓名: 专业:计算机科学与技术 班级:计科103班 课程负责人:云健 指导教师:孟佳娜,张恒博

教学起止周:第10至12教学周 摘要 近年来,Java作为一种新的编程语言,以其可移植性和平台无关性等优点,得到了广泛地应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。 本设计报告阐述了连连看游戏的分析与设计的全过程,并在论文中相应的位置插入了图片、流程图以及一些具有技巧性的程序代码,更加清晰的描述了该游戏是如何实现的。连连看游戏有编写简单容易上手等特点,非常适合人们在完成工作的时候适当的娱乐要求。这些小游戏大都是以益智和娱乐为目的,不仅给紧张工作的人们以放松,还可以让人们的大脑得到开发。 连连看游戏采用JAVA语言开发,以MyEclipse为开发平台。游戏主界面是基于SWING(图形用户界面)的开发,使得游戏界面简单清晰。并调用了其中的一些函数,完成了事件的触发功能。希望通过这次开发设计出的连连看小游戏,给大家的生活带来一点乐趣。游戏通过定义动态的二维数组,根据一定的算法实现规定的路径判断。 关键词:连连看游戏;算法设计;路径判断;Java 实习计划:

第十一周编程编程编程调试,总结一 周的工作 撰写实习报告验收,答辩 第十二周修改完善,检查可 能存在的BUG 目录 摘要 (2) 一、绪论 (1) 2.1 技术可行性 (1) 2.2 经济可行性 (2) 2.3 操作可行性 (2) 三、课程设计题目任务描述和要求 (2) 3.1 任务描述 (2) 3.1.1 界面 (2) 3.1.2程序 (3) 3.2 设计要求及目的 (4) 四、需求分析 (4) 4.1 方案选择 (4) 在概要设计阶段,主要有两中方案可供选择: (4) 4.2功能描述 (5) 4.3 功能需求 (5) 4.4 功能模块及思路 (5) 4.5 系统需求分析总结 (7) 五、设计方案 (8) 5.1 总体设计 (8)

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("再来一局");

JAVA连连看课程设计报告

滨江学院 实验报告| | 实验名称JAVA小游戏(连连看)设计 课程名称智能手机程序设计| | 专业班级:信息工程1班 学生姓名:车宇翔 学号:20112309002 指导教师:高超 学期:2013-2014(2) 成绩:

【选题背景】: 连连看游戏经验,玩法简单,休闲,益智,趣味,广受欢迎。 【选题目的】: 学会JAVA程序开发的环境搭建与配置,并在实际运用中学习和掌握JAVA程序开发的全过程。进一步熟悉掌握JAVA程序设计语音的基础内容,如用户图形界面设计、JAVA多线程编程、JAVA数据库编程等。通过亲自动手写程序,拓展知识面,锻炼调试能力。 【系统分析与设计】: 功能分析:实现连连看的基本游戏功能和重置、提示、消除功能 设计:通过对图片的调用以及设置是否可见来完成连连看的效果 【课程设计中碰到的问题及解决方案】: 1.不知道如何进行对数组中两个元素是否可以消除的判断 2.时间条的动态表现 解决方案: 1.对每个相同图案进行循环判断,直到找出满足条件的情况 boolean verticalMatch(Point a, Point b) // 竖线上的判断 boolean horizonMatch(Point a, Point b) // 横线上的判断

2.为了保证动画过程和游戏过程的平行运行,因此将动画分离成一个独立的控件,并且要保证动画有自己单独的线程来运行。当每次用户的分数发生变化时,我们可以使用setScore(int l, int c) 方法同步分数显示的动画效果。 【程序输出结果】: 游戏开始 【程序代码】: ImageFactory package nicholas.game.kyodai; import javax.swing.ImageIcon; import https://www.doczj.com/doc/3e18435358.html,.*; public class ImageFactory {

连连看java程序设计

《高级语言程序设计(2)》课程设计任务书

《高级语言程序设计(2)》课程设计报告 专业:班级:学号: 姓名: 完成日期:指导教师 一、程序设计说明书 【设计题目】 图片连连看游戏程序 【问题描述】 图片连连看游戏是利用java图形用户界面设计而设计的图片连连看游戏界面。它的游戏规则就是选择一对内容相同的图案进行连线,但此连线不能穿跨 其他图案。连线的转折点不能多于两个,如果符合规定则消除此对图案。如果 游戏找不到可连接消除的图案,可以通过鼠标点击重列按钮让它重新排列图 案,也可以通过鼠标重新开始新的游戏,时间结束后游戏自动结束,还可以通 过鼠标退出游戏。 【软件功能】 1 利用awt实现良好的游戏界面,游戏界面尽可能美观。 2 游戏开始时,能产生随机数字和随机位置以及限制的时间。 3 在按动鼠标和键盘时,游戏能玩起来,即能响应鼠标事件。 4 能消去满足条件的含有相同数字的图片。 5 能重列图片顺序。 6 能选择退出游戏和重新再来一局。 【算法思想】 在检验两个图片能否消掉的时候,要让两个图片同时满足两个条件才行,就是两者配对并且连线成功。 分 3 种情况:这三种情况都需要三个检测,这三个检测分别检测一条直路经。 这样就会有三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了。 (1)、相邻 (2)、若不相邻的先在第一个按钮的同行找一个空按钮。1.找到后看第二个按钮 横向到这个空按钮所在的列是否有按钮。2.没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。3.没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没有的话路经就通了可以消了. (3)、若(2)失败后,再在第一个按钮的同列找一个空按钮。1.找到后看第二个 按钮竖向到这个空按钮所在的行是否有按钮 2.没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。3.没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。没有的话路经就通了,可以消了。 若以上三步都失败,说明这两个按钮不可以消去 两图能相连的所有情况:

(完整版)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.

连连看Java小游戏毕业设计论文

安徽电子信息职业技术学院 --软件学院 连连看Java小游戏毕业论文(设计) 学生姓名:吴义平 学号: 系别:软件技术 专业:软件技术 指导教师:孔鹏

评审日期:2009年11月4日 2

软件071班 目录 1导言...................................................................................... 错误!未定义书签。 1.1目的......................................................................... 错误!未定义书签。 1.2范围......................................................................... 错误!未定义书签。 1.3缩写说明java .................................................... 错误!未定义书签。 1.4术语定义................................................................. 错误!未定义书签。 1.5引用标准................................................................. 错误!未定义书签。 1.6参考资料................................................................. 错误!未定义书签。 1.7版本更新信息......................................................... 错误!未定义书签。2系统定义.............................................................................. 错误!未定义书签。 2.1项目来源及背景..................................................... 错误!未定义书签。 2.2项目要达到的目标................................................. 错误!未定义书签。3应用环境.............................................................................. 错误!未定义书签。 3.1游戏硬件环境......................................................... 错误!未定义书签。 3.2游戏运行软件环境................................................. 错误!未定义书签。4代码设计:.......................................................................... 错误!未定义书签。5}性能需求............................................................................ 错误!未定义书签。 5.1界面需求................................................................. 错误!未定义书签。 5.2响应时间需求......................................................... 错误!未定义书签。 5.3开放性需求............................................................. 错误!未定义书签。 5.4可扩展性需求......................................................... 错误!未定义书签。6产品提交.............................................................................. 错误!未定义书签。7实现约束.............................................................................. 错误!未定义书签。8总结...................................................................................... 错误!未定义书签。 完成这次设计任务总共用了一个星期时间,前两个日用来收集资料、学习要用到的各项开发技术、进行游戏的系统分析,第三日用来设计系统,第四天来测试及修改。论文的撰写一直贯穿其中。.................. 错误!未定义书签。9参考文献.............................................................................. 错误!未定义书签。10致谢.............................................................................. 错误!未定义书签。

相关主题
文本预览
相关文档 最新文档