当前位置:文档之家› 基于JAVA的连连看游戏设计

基于JAVA的连连看游戏设计

基于JAVA的连连看游戏设计
基于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语言。游戏规则是效仿网络上一般的连连看,就是用三条以内的直线将两张相同的图片连接在一起就可以消除这两张图片,如果点击的两张图片不一样或者同一张图片,那么就不处理。游戏开始后按照画好的框架随机分布一些图片,要求同一张图片的产生是偶数张。按照游戏设定的方法把两张一样的图片相连就可以消掉这两张图片,在倒计时结束之前必须将框架内的图片清除完不然游戏失败并得到一个相应的分数。

第二章连连看的软硬件需求分析

2.1游戏运行的硬件需求

(1)客户机:普通PC;

(2)内存:256MB以上;

(3)屏幕分辨率:推荐1280*720以上

2.2游戏运行的软件需求

游戏的软件主要涉及到计算机的操作系统和编写程序使用的软件,另外使用JAVA 语言编写程序过程中必不可少的帮助软件精通swing程序设计.chm。

2.2.1操作系统要求

操作系统最好使用Windows 2000以上的版本或者Windows XP。因为以前的系统不兼容一些相关的软件,甚至会有冲突,这样在对于编写程序过程中的调试和最后的运行都非常的不方便。所以操作系统还是使用Windows 2000以上的版本,免得出现不必要的麻烦。

2.2.2开发软件:eclipse

Eclipse是一个开放源代码,基于JAVA语言的可扩展开发平台,就其自身而言,他仅仅是组服务,是个框架,通过一些插件和一些组件组成的开发平台[3]。安装eclipse 前需先安装JDK及改变环境变量才能正常使用eclipse这个软件。

⑴安装好JDK以后C盘会自动安装JRE,就是Java的运行环境(全称Java Runtime Enviroment),这时就不需要再做其他设置了,直接点击“下一步”直到JDK安装完成。

⑵安装好JDK后就要配置环境变量。

我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量[4]:

设置path变量,只有设置好path变量才能让系统正常运行Java程序。在安装JDK 时一定要记住它的安装目录,举个例子JDK安装在C:\jdk1.6.0目录下,以后我们常用的java应用程序便会存放在这个文件夹里,这时path环境变量还没有这个文件夹,所以必须添加进去。在系统变量里找到path变量,选择->编辑;在变量值的最前面加上C:\Program Files\Java\jdk1.6.0_02,这里要注意变量名:path,变量值: C:\Program Files\Java\jdk1.6.0_02\bin[5]。

设置classpath环境变量:一般sun公司会编写很多常用的类包让程序员调用,减少繁琐的编程工作,比如dt.jar和tools.jar,要想直接调用这些包就必须要设置classpath环境变量,在安装JDK时要记住这两个文件所在的路径,并且把所在路径复制链贴classpath环境变量中set classpath=.后面;tools所在的目录。Dt.jar所在的目录。右键我的电脑改变环境变量选择新建classpath,新建名为 classpath,最后设置变量值,在变量值后面加上;jar所在目录;%dt.jar所在目录;在添加这两个目录前要先加个“.”表示当前目录,以后运行JAVA程序时会优先在这个目录下来寻找这两个包,可以提高运行效率。

设置java_home:一方面是减少繁琐的输入路径名方便引用,只要将java_home改为JDK安装所在的目录,之后要用到这个目录里的程序时只要键入%java_home%,不用每次调用都要键入程序所在位置;另一方面归一原则,如果JDK路径发生变化,所以调用到JDK 的程序都要跟着改变调用路径,如果有使用绝对路径的程序没改可能造成整个系统瘫痪,如果之前有设置java_home值,这时只要变动JAVAHOME的位置就可以了;最后一点第三方软件将同意java_home变量,否则,你不能使用本软件。在系统环境变量,点击新java_home(java_home指JDK安装目录),变量名:java_home,变量值:JDK所在目录,环境变量更改完以后需要运行一下程序看看JDK有没有成功安装。一般用这个程序:

public class HelloWorld{

public static void main(String[] args){

System.out.println("Hello world!");

}

}

将程式保存为文档名为HelloWorld.java的文档,打开命令提示符窗口,进入到HelloWorld.java所在目录,键入下面的命令[6]:

javac HelloWorld.java;

java HelloWorld。

⑶安装Eclipse

直接访问https://www.doczj.com/doc/b014213983.html,/downloads/index.php。找到压缩包然后解压缩就可以用了。若是直接下载MyEclipse软件,直接安装后可以直接使用,无需再改变环境变量,只是MyEclipse文件比较大,相对来说比较占电脑资源。

2.2.3相关文档:精通swing程序设计.chm

《精通Java Swing程序设计》主要讲解在Java环境下使用Swing开发窗体应用程序的前期基础知识,全书chm格式。在内容上讲了一些窗口和面板的使用,标签与按钮的使用、文字输入组件的使用以及对话框、菜单和工具条、文件选择、拾色器等相关知识[7]。精通swing程序设计.chm(编译的HTML帮助文件)最实用之处在于它可查阅JAVA代码的分类及用法,是学习和使用JAVA语言必不可少的一款软件。这个软件的使用方法非常简单,对于熟悉和掌握JAVA语言有非常大的帮助。

第三章连连看的设计3.1系统结构图

根据对“连连看”游戏的分析,该游戏可分为三个部分:连连看系统功能的实现部分、连连看地图部分、连连看系统上层对话框部分,如图3-1所示。三个部分对应的模块分别为:算法模块、界面显示模块、鼠标控制模块。其中连连看系统功能的实现部分主要就是算法模块。算法模块负责游戏中的图片生成方法、地图规划、消除方法、分数的统计和时间消减等算法实现。连连看系统地图部分就是界面显示模块,主要负责地图的显示、图片加载及消除的显示、时间条显示等。连连看系统上层对话框部分就是鼠标控制模块,负责人机交流,让玩家使用鼠标玩这个游戏。

图3-1结构图游戏的主要流程图,如图3-2:图3-2游戏流程图

连连看游戏使用JAVA语言编写,使用到了面向对象的技术。面对对象编程的关键性突破就是:一个对象同时包括方法和变量。例如,一个自动调温器对象不仅包括furnace_on()和furnace_off()两个方法,还包括currentTemp和desiredTemp两个变量[8]。在JAVA中,这些变量被称为字段。

这个新的实体--对象,同时解决了许多问题。它不仅将计算机的事物和世界上的事有较密切的联系,而且处理了语言过程中的全局变量所引起的麻烦。Furnace_on()和furnace_off()两个方法可以访问currenTemp和desiredTemp,这两个变量对那些不属于自动调温器的方法是隐藏的,以防止他们被一些不可靠的方法所修改。

3.2算法模块

算法模块中主要的内容有:图片的产生设计;判断两张图片是否一样;图片路径处理设计。界面显示模块编写游戏过程中主要的几个界面:游戏界面设计;游戏过关、失败的设计等,菜单控制模块主要是如何设置“开始”“再来一局”按钮。

3.2.1图片的产生设计

首先创建一个包https://www.doczj.com/doc/b014213983.html,ng.game.images,将图片放入这个包中,运用下列算法将图片成双取出放在画好的表中。图片的存储和提取涉及到二位数组和类的使用,这种方法在美国计算机学家Robert Lafore所著的Data Structures& Algorithms in Java(Second Edition)有提到:I These methods allow communication betweenLowArray and

LowArrayApp[9].意思是说在array.java我们使用一个数组作为数据存储结构,但是我们把它仅仅作为一种语言元素。现在,我们将封装在数组中的一类,称为LowArray.同时也提供类方法供其他类(在这种情况下,LowArrayApp类)的对象可以访问阵列。这些方法允许通信betweenLowArray和LowArrayApp。

public class ImageTools {

private static ImageIcon[] images = new ImageIcon[72];

//实例化ImageIcon数组用于保存图片

static{

for(int i=1;i<=images.length;i++){

//为数组中的成员分配资源

images[i-1]=new

ImageIcon(ImageTools.class.getResource("fruit_"+i+".png"));

}

}

//此方法是用于获取图片信息。传入数组下标,得到其对应资源

public static ImageIcon getIcon(int index){

if(index>0 && index<=images.length){

return images[index-1];

}

else return null;

}

3.2.2判断两张图片是否一样

if (row > 0 && row < rows - 1 && col > 0 && col < cols - 1) {

if (firstSelected == null) {

以上为实现点击图片时事件的逻辑事件

3.2.3图片路径处理设计

判断两个方块可不可以相连,如果符合相连的算法立即调用逻辑算法消除这两张图片。两图能相连的所有情况如下图:

for (int i = 0; i < map.length; i++)

for (int j = 0; j < map[0].length; j++)[10] {

Rectangle rect = matrixToRect(i, j);

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

continue;

g.drawImage(ImageLoader.getImageOf(map[i][j]),

rect.x, rect.y, null); }

3.3界面显示模块

主界面中间显示为“JKJ连连看”,界面下方是一个6列7行的表格,这个表格是隐藏的,将图片成双随机放入表格。表格的最外一行一列是不放图片的,这一行一列是为了让连线的算法更容易实现,所以游戏实际上只有5列6行。

游戏还设有时间进度条,这就要求必须在规定的时间内完成游戏。否则游戏自动结束,只能重新开始游戏。

3.3.1游戏界面设计

public Lianliankan() {

this.setTitle1("JKJ连连看");//设置菜单栏

JMenuBar bar = new JMenuBar();//设置一级菜单

JMenuItem1 one = new JMenuItem1("再来一局");

JMenuItem1 two = new JMenuItem1("再来一局");

JMenuItem1 one = new JMenuItem1("退出");

JMenuItem1 two = new JMenuItem1("退出");//设置二级菜单(子菜单)

three.addAction1Listener(this);

this.setJMenuBar(bar);//为界面添加菜单组件

menu1.add(one); //为Jmenu添加子菜单选项

menu1.add(two);

JPanel south = new JPanel();//得到Jpanel容器对象。

JPanel center = new JPanel();

center.set1Background(Color.gray);//设置Jpanel容器对象的属性

JButton begin1Button = new JButton("退出");

JButton reset1Button = new JButton("再来一局");

exitButton.addMouseListener(new MyMouse1Listener());

south.add(begin1Button);

south.add(reset1Button);

south.add(exit1Button);

this.add(centerr, BorderrLayout.CENTERR);

fruitPlate = new FruitPlate(); //得到FruitPlate类对象

center.add(fruitPlate, BorderLayout.CENTER);//为设置Jpanel容器进行布局this.add(southh, BorderLayoutt.SOUTHH);this.pack();

this.setLocationnRelativeTo(null); //设置窗口显示位置

this.setVisiblee(true); //显示界面

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}

class MyMouseListener extends MouseAdapter {

public void mouseClicked(MouseEvent e) {

System.exit(0);}}

public void actionPerformed(ActionEvent e) {

String cmd = e.getActionCommand();

if (cmd == "退出") {

flag = 1;}}//主函数

public static void main(String[] args) {

new Lianliankan(); }

3.3.2游戏过关、失败的设计

程序设有计时和计分的功能,玩家开始游戏后倒计时开始,倒计时结束或者所有的图片都被消除,游戏结束;玩家开始游戏以后,两张图片连接成功加100分并清除这两张图片,如果玩家提前消除所以得图片剩下的时间可以换算成分数加到总得分。计时器的关键代码如下:

public void paint(Graphics g) { //绘制显示的时间

Graphics2D g2 = (Graphics2D) g;

Dimension d = getSize();

g2.setBackground(LLK.PinkColor);

g2.clearRect(0, 0, d.width, d.height)[11]; //删除画布的矩形区域

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

RenderingHints.VALUE_ANTIALIAS_ON); //使用抗锯齿模式完成呈现

g2.setColor(color);

g2.setFontt(font42);

g2.drawString("

时间

:" + getTime(), 16, 40); //输出时间

}

3.3鼠标控制模块

MouseListener

mouseClicked(MouseEvente) mouseEntered(MouseEvente) mouseExited(MouseEvente) mousePressed(MouseEvente) mouseReleased(MouseEvent e)

MouseDemo1.java

*import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MouseDemo1 extends WindowAdapter implements MouseListener{

JFrame f=null;

JButton b1=null;

JLabel label=null;

public MouseDemo1(){

f=new JFrame("MouseDemo1");

Container contentPane=f.getContentPane(); //得到Container容器对象

contentPane.setlLayout(new GridlLayout(2,1)); //为容器设置布局

B2=new JButton("按键");

Labell=new JLabell("没有按键信息",JLabel.CENTER);

b1.addMouseListener(this); //设置鼠标监听

contentPane.add(label);

contentPane.add(b1); //向容器中添加JButton组件

f.pack();

f.show();

f.addWindowListener(this);

}

public void mousePressed(MouseEvent e){

label.setTexto("你按下鼠标按钮");

}

public void mouseReleased(MouseEvent e){

label.setTextt("你释放鼠标按钮");

}

public void mouseEntered(MouseEvent e){

label.setTexts("鼠标光标在按钮以内");

}

public void mouseExited(MouseEvent e){

label.setTextt("你释放鼠标按钮");

}

public void mouseClicked(MouseEvent e){

label.setTextt("你按下鼠标按钮");

}

public void windowClosing(WindowEvent e){

System.exit(0);

}

public static void main(String[] args){

new MouseDemo1();

}

}

3.4登陆界面的设计

为了增加这个游戏的乐趣,在游戏制作完之后添加了一个用户登录界面。玩家必须先登录才可以玩,游戏结束之后可以保存的玩家的分数。

mainFrame.setVisible(true);

Timer timer = new Timer(100, new ActionListener() {

public void actionPerformed(ActionEvent e) {

if (time.isEnd()) {

System.exit(0);

}

}

});

timer.start();

} else {

//以对话框形式提示错误

JOptionPane.showMessageDialog(login, "用户名或密码错误!", "错误提示", JOptionPane.ERROR_MESSAGE);

}

}

});

login.add(confirm); //为对话框组件添加按钮组件

//设置“注册”的对话框

final JDialog regDialog = new JDialog(login, "注册", true);

registerDialog(regDialog);

JButton register = new JButton("注册"); //为“注册”的对话框添加按钮组件register.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

regDialog.setVisible(true);

}

});

//这里需要一段判断账号和密码是否正确

private boolean compareUserData(String name, String password) {

try {

RandomAccessFile out = new RandomAccessFile("user.dat", "rw");

String fname, fpassword = null;

while (out.getFilePointer() < out.length()) {

fname = out.readUTF();

out.readUTF();

fpassword = out.readUTF();

//进行账号密码的匹配

if (fname.equals(name) && fpassword.equals(password)) return true[12];

}

} catch (IOException e) {

e.printStackTrace();

}

return false;

}

第四章连连看的实现

4.1总体描述实现的效果

这是写在Eclipse的游戏软件,可以直接运行,运行游戏会先出现一个登录界面,输入用户名和密码就能够开始玩游戏了,点击开始游戏,先点击一张图片,再点击一张符合练练看游戏规则的图片,两张图片就可以消除了。按照这样的方法消除图片直到所有的图片都消除。游戏过程中会有一个时间条,如果时间到了还没将所有的图片消除则游戏失败,这时游戏会弹出一个小对话框“时间到了,是否再来一局”,你选择“否”就退出游戏反之则重新开始游戏。

4.2界面显示

游戏总共有四个界面效果,分别为开始界面、执行界、时间到了界面、登录界面。在不同的界面有不同按钮对应着不同的操作。下面分别介绍一下这些不同的界面效果图。

4.2.1开始界面

连连看玩法其实很简单的,就是选择两张一样的图片而且这两张图片可以通过三条以内的直线相连,然后消去这两张图片。如图4-1是开始游戏后的界面效果。在这个界面中还有“退出”和“重新开始”按钮,如果进入游戏后不想玩了可以直接退出,如果没找到相同可以消除的图片也可以点击“重新开始”按钮重新开始游戏。图4-1 开始界面

4.2.2执行界面

如图4-2所示,先点击一副图片在点击另外一副一样的图片,若是符合连看看消除规则,那么就可以消除这两幅图片。如果不符合消除规则则第二次点击的图片变成被选图

片,接着点击下一张符合规则的图片就可消除这两张图片了,直至所有图片消除。在这个过程中后台会计算你的分数,消除一组图片得100分,最后会根据你所使用的时间算出最后得分并存储在数据库中。图4-2 执行界面

4.2.3游戏时间到了界面

游戏设置一个时间条,在规定的时间内没有消除所有的就会出现如图4-3的画面。此

时,你只能重新开始玩游戏,而且分数不会被记录,这一局属于游戏失败。游戏过程中

应尽快消除所有的图片,因为最后的分数计算涉及到所使用的时间,时间越短等分越高。

图4-3 时间到了界面

采用这种方法的话似乎每次用户消去一对相同图像之后都需要重新计算出当前所有可能被连接的相同图形之间最短路径,这是因为当某些图像被消去之后可能会产生很多新路径,而我们又不能确定这些空出来的格子到底能够影响哪些路径,所以就只好都重新计算一遍[13]。

4.3 用户登录模块

这个模块的功能需要用到SQL数据库, Eclipse与数据库建立连接才能实现用户数据的保存,比如用户的用户名、密码、得分等。对数据库的操作可以直接在Eclipse上操作,也可以登录SQL进行相关操作。第一次登录这个这个界面时需要注册用户,填写用户信息后注册成功才能登录这个游戏。注册信息主要有用户名、密码出生日期等等。注册成功后就拥有了一个用户名,用这个用户名就可以登录游戏,游戏过程中系统会自动记录你的成绩并保存在数据库。图4-4用户登录界面

4.4异常分析

(1)https://www.doczj.com/doc/b014213983.html,ng.nullpointerexception

这个异常的意思是程序遇到空指针,在开始学JAVA编程以后容易犯这个错误,造成这个异常有两种可能一种是根本没有定义这个对象;另外一种是调用的对象还没有初始化,在使用数组和创建图片时不小心就会出现这个异常。刚开始学习JAVA还不能快速准确的区分数组的初始化和数组元素的初始化所以就比较容易在这个地方犯错。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)[14]。

(2)https://www.doczj.com/doc/b014213983.html,ng.classnotfoundexception

这个错误的意思是指定的类不存在。这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上[15]。

(3)https://www.doczj.com/doc/b014213983.html,ng.arithmeticexception

这个异常的意思是逻辑运算异常,举个例子把零当做除数就会出现逻辑运算异常,出现这种错误需要重新检查程序中的逻辑运算,定义的算法是不是有什么不妥。

(4)https://www.doczj.com/doc/b014213983.html,ng.arrayindexoutofboundsexception

这个异常的意思是数组下标越界,在调用数组时没有注意数组的取值当调用的数组值越界就会出现这个错误。正常情况不会出现这个异常,但是如果使用变量来定义下标或者定义数组的长度不够就容易出现这个异常,出现这个错误就好好检查一下数组的定义。

(5)https://www.doczj.com/doc/b014213983.html,ng.illegalargumentexception

这个异常的意思是方法的参数错误,出现这个错误是给一些类库中方法所赋的值不合法甚至相冲突。比如方法中参数的取值范围是正数,你赋给它的值却是负数。这时你需要返回所调用的方法去查看参数的取值范围是不是有不妥之处。

(6)https://www.doczj.com/doc/b014213983.html,ng.illegalaccessexception

这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了package的情况下要注意这个异常[16]。

本程序在设计过程中遇到了上诉异常中的https://www.doczj.com/doc/b014213983.html,ng.illegalargumentexception、https://www.doczj.com/doc/b014213983.html,ng.illegalargumentexception、https://www.doczj.com/doc/b014213983.html,ng.illegalargumentexception以及https://www.doczj.com/doc/b014213983.html,ng.illegalargumentexception 。遇到这些问题主要是因为粗心给算法的定义不合法或者赋值超过限定。初期遇到这些问题可能会感到很陌生,不知道怎么处理,多了解一些异常问题处理的知识,这些都会成为小问题的。

本程序没有特意编写程序的异常处理代码,唯一考虑到的是“死锁”的问题,但是“死锁”现象一直未出现过,所以并没有编写处理方法。如果出现“死锁”问题可以加入一个“重列”的按钮,重新排列未消除的图片。

第五章结束语

由于计算机的普及,网络游戏越来越受大家的欢迎,几乎每个拥有电脑的人都会玩网络游戏,不同的人玩的游戏当然大不相同。游戏“连连看”望文生义就是找到两个东西把他们连在一起,网络上所有的连连看都是运用到这个定义。其实就是在众多的物品里寻找两个一样的物品,在符合规定后可以做出对应的处理。随着网络技术的不断发展愈来愈多的人喜欢上这些经典的小游戏。连连看游戏就是典型。无论你登录到哪一个游戏网站,连连看游戏玩家数量总是在前5,连连看休闲、有趣在一定程度上考验你的反应,让人百玩不腻,越玩越喜欢而且不分男女老幼、贫穷富贵,一种适用于流行的经典网络休闲游。

本文在分析的基础上实现了连连看游戏的设计,实现了连连看游戏的算法模块、界面显示模块、鼠标控制模块、用户登录模块。在菜单功能模块为每个菜单命令的详细解释和说明每个子菜单的功能实现。在连接算法,给出了每个算法的逻辑和详细算法。并绘制出各种连接的详细信息。在连连看游戏算法的实现上使用了时间条并且列出一些重要的数据结构。

此次连连看设计的功能与网上大多数连连看一样,与网上的连连看规则也相同。游戏除了有退出,再来一局。此次设计的过程虽然辛苦,但也收获了不少东西。经过到图书馆以及网络上查阅资料,我对已学的Java知识有了进一步的掌握,例如Swing组件的使用,事件的处理等,另外,还了解了许多新的知识。我对此游戏进行各种完善,从原来的数字图片改成了一些可爱复杂的图片,从没有登录界面到制作了一个登录界面,从一

次次的完善中,我收获了很多。当然该游戏并不是完美的,还有一些功能可以加强完善,比如连接失败可以扣分或者加入一些具有不同功能的道具等等。这需要继续努力,进一步探究。

通过这段时间的紧张的编程,这个连连看游戏的设计已经完成,由于缺乏经验,肯定会出现很多考虑不全面的问题,幸好有老师悉心的指导,同学们对我的帮助和鼓励。所以这里我要感谢他们,谢谢他们的支持。

参考文献

[1]谭倩倩.网游产业环境分析报告[C].圈圈网.2008.11.16,1

[2]李小宝.连连看游戏设计文献综述[C].豆丁网文献综述439316857.2013,2

[3]yxw839841231.如何用Eclipse建立一个Java应用程序[C].百度经验.2012.12,1

[4]小12龙.如何配置环境变量[C].百度文库.2010.11,2--3

[5]林建素,孟康健.Eclipse开发学习笔记(第1版)[M].北京:电子工业出版社. 2008.4

[6] a 784201202.怎样创建和调试java程序[C].百度文库.2012.03,3--4

[7]精通.Java Swing程序设计 chm[C].百度问答.2009.04.26,1

[8]拉弗[美].Java数据结构和算法(第二版)[M].北京:中国电力出版社.2003,21

[9]Robert Lafore.Data Structures& Algorithms in Java(Second Edition)[M].Sams Publishing.2003,69

[10]陈珊.基于Java的连连看游戏的设计与实现[J].知网.2011.12,9

[11]仇宾.基于Java的_连连看_游戏[J].知网.2013.06,7

[12]张明新,周耿烈.Java语言程序设计[M]. 重庆:重庆大学出版社,2004 ,79

[13]Times1314.编程之美读书笔记(六)[C].百度文库.2006.08,24

[14]夏宇.JAVA常见异常[J].知网.2012.04.23,13

[15]润乾.java报错原因汇总[C].百度文库.2013.12.03,12

[16]ybwlysc.百度问答.JAVA编程中常见的异常[C].2013.8,2

简易数字连连看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的连连看游戏设计毕业设计论文(含源文件)

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

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

连连看C++程序设计

源程序代码 //main.cpp #include using namespace std; #include #include #include"class.h" void main() { GridInfor g; initgraph(M,N); mciSendString("play game_begin.mp3 repeat", NULL, 0, NULL); g.InitFace(); while(1) { mouse = GetMouseMsg(); switch(mouse.uMsg) { case WM_MOUSEMOVE: g.Mousemove(mouse.x,mouse.y); break; case WM_LBUTTONDOWN: if(Single_click_judge(mouse.x,mouse.y)) { g.Leftbottondown(mouse); } break; default: break; } } closegraph(); } void GridInfor::RandGrid() //产生图片的标记{ for(int iCount = 0, x = 1; x <= ROW; ++x ) { for( int y = 1; y <= COL; ++y ) { ::GridID[x][y] = iCount++ % GridNum + 1; } } } void GridInfor::Shuffle( ) //打乱棋盘

int ix, iy, jx, jy, grid; for( int k = 0; k < 84; ++k ) { ix = rand() % ROW + 1; // 产生1 - COL 的随机数 iy = rand() % COL + 1; // 产生1 - ROW 的随机数 jx = rand() % ROW + 1; // 产生1 - COL 的随机数 jy = rand() % COL + 1; // 产生1 - ROW 的随机数 if( ::GridID[ix][iy] != ::GridID[jx][jy] ) //如果不相等就交换数据 { grid = ::GridID[ix][iy]; ::GridID[ix][iy] = ::GridID[jx][jy]; ::GridID[jx][jy] = grid; } } } ////////////////////////////////初始化界面/////////////////////////////////////// void GridInfor::InitFace() { srand((unsigned)time(NULL)); a.Load_picture(); a.RandGrid(); IMAGE image3; loadimage(&image3,"res\\bg.bmp"); putimage(0,0,&image3); getimage(&image2,3 * 42,2 * 48,42, 48); a.Shuffle(); a.ShowGrid(); } void GridInfor::Load_picture() //加载图片{ IMAGE image1,background; loadimage(&image1,"IMAGE","grids"); SetWorkingImage(&image1); for(int i = 1 ;i < GridNum + 1 ;i ++) for(int j = 0;j < 2;j++) getimage(&image[i][j],j * 42,i * 48,42, 48); loadimage(&background,"IMAGE","bg"); SetWorkingImage(&background); getimage(&image2,3 * 42,2 * 48,42, 48); SetWorkingImage(); putimage(0,0,&background); }

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

C语言程序设计连连看

#include #include <> #include <> #include <> #include using namespace std; #include int mai() // 倒计时 { for (int i=3; i>=0; i--) { long t = time(NULL); for(;;) { long n = time(NULL); if(n != t) break; } system("cls"); cout<<" "< << " ** 秒

"<>d; *** cout<<" "<

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实战之连连看游戏源码(完整版)

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

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的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。

连连看源代码

摘要: 近年来,Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点, 得到了广泛地应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编 程领域的首选编程语言。 Java语言的学习热潮并没有因为时间的推移而消退,相反,由于计算机技术的发展 所带来的新应用的出现,Java越来越流行,这种情况是以往程序设计语言在其生存周期 内所不多见的。Java语言之所以这样长盛不衰,一是因为其众多的技术特点与现今的应 用十分合拍,可以覆盖大部分的需求;二是因为SUN公司不断推出新的版本,完善Java 自身的功能。有了这两点,Java语言成为程序员首选的程序设计开发工具就在情理之中 了. 连连看来源于街机游戏《四川麻将》和《中国龙》,是给一堆图案中的相同图案进 行配对的简单游戏,在2003年,一个叫做朱俊的网友将这种形式搬到了PC上,立刻成 为办公一族的新宠,并迅速传遍了世界各地。饱受工作压力的人们没有太多的时间进行 复杂的游戏,而对于这种动动鼠标就能过关的游戏情有独钟。之后村子的连连看风靡版, 阿达的连连看奥运版,连连看反恐版,还有敏敏连连看,水晶连连看等遍地开花,造就 了一个连连看的新世界。连连看游戏有多种地图样式和道具系统、大大加强了游戏的可 玩性,是一款老少皆宜的休闲佳品。 关键字:发展,java,连连看,程序设计; 1.课程设计介绍 课题设计的目的: 1) 进一步加深对Java语言的理解和掌握;将所学的JAVA知识运用于实践中。 2) 课程设计将理论与实践相结合,提供了一个既动手又动脑,独立实践的机会,锻炼 我们的分析解决;实际问题的能力,提高学生适应实际,实践编程的能力。 3)熟练掌握JAVA语言中图形用户界面程序的编写; 4)大体了解怎样用JAVA来编写小游戏的,增强我们实践能力和创新精神的综合培养。 课程设计的要求: 由于Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等 特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义, 而且有利于软件的维护和继承学会java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面 设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。

基于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语言。游戏规则是效仿网络上一般的连连看,就是用三条以内的直线将两张相同的图片连接在一起就可以消除这两张图片,如果点击的两张图片不一样或者同一张图片,那么就不处理。游戏开始后按照画好的框架随机分布一些图片,要求同一张图片的产生是偶数张。按照游戏设定的方法把两张一样的图片相连就可以消掉这两张图片,在倒计时结束之前必须将框架内的图片清除完不然游戏失败并得到一个相应的分数。

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成

连连看

(2)使用“炸弹” 用户点击菜单中的“炸弹”选项使用,点击后如果界面上有两张可以相连的相同图片就随机消除两张可以相连的相同的图片。 图1.使用炸弹流程图 (3)限制炸弹“数目” 弹默认数目为三,每使用一次“炸弹”功能,炸弹数目就会自动减一,当炸弹数目为零时(使用三次“炸弹”功能)。并且用户想再次使用炸弹时,系统会弹出对话框提示用户,并把菜单中“炸弹”选项变为灰色(用户不可使用)。

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

(5)计算游戏时间 当系统开始游戏后,系统会在后台记录时间,如果在用户还没有消除所有图片时,系统时间到了,那么系统会弹出对话框,提示用户,时间到了,游戏失败。 图4.计算时间流程图 2.2.2详细设计 在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。 分3种情况: (1)相邻 (2)若不相邻的先在第一个按钮的同行找一个空按钮;找到后看第二个按钮横向到这个空按钮所在的列是否有按钮;没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮;没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没有的话路经就通了,可以消了。 (3)若2失败后,再在第一个按钮的同列找一个空按钮;找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮;没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮;没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。没有的话路经就通了,可以消了。若以上三步都失败,说明这两个按钮不可以消去。

(强烈推荐)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)

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