当前位置:文档之家› 连连看课程设计

连连看课程设计

连连看课程设计
连连看课程设计

面向对象程序设计课程报告

题目名称:连连看游戏

系名称:计算机科学与技术

专业班级:

指导老师:

组长:

组员:

起始日期:

【实验分工】

【选题背景】

连连看游戏玩法简单,休闲,益智,趣味,广受欢迎。

【选题目的】

学会JAVA程序开发的环境搭建与配置,并在实际运用中学习和掌握JAVA程序开发的全过程。进一步熟悉掌握JAVA程序设计语言的基础内容,如用户图形界面设计。通过亲自动手写程序,拓展知识面,锻炼调试能力。

【课程设计的实验环境】

游戏在NetBeans IDE 7.1.1中制作。

【游戏运行环境要求】

装有java虚拟机(即jdk)的电脑。

【系统设计】

1、设计模块:

2、大概功能流程图:

3、功能分析:实现连连看的基本游戏功能,包括选关、显示游戏积分及游戏关数、播放和停止背景音乐等功能。

4、设计:通过对图片的调用以及设置是否可见来完成连连看的效果。

【连连看主要算法设计】

1、随机图片

利用Math.random()函数创建SuiJiIcon1、SuiJiIcon2、SuiJiIcon3类,用于生成随机图片

2、图片消去

两个图片要消去,必须满足两个条件:1.两个图片要相同;2.两个图片之间的连线不多于三根,且图片中间没有其余图片阻挡。

(1)两个图片要相同

创建一个二维数组t[][],用于记录各图片,当两个二维数组元素的值相同时,即表示图片相同。

(2)两个图片之间的连线不多于三根,且图片中间没有其余图片阻挡

图片之间的连连线不多于三根,有三种情况:1.两图片之间没有拐角(即两个图片水平或垂直在一条线上);2. 两图片之间有且只有一个拐角;3. 两图片之间有且只有两个拐角

要判断图片中间没有其余图片阻挡,创建MAP类,MAP类中的二维数组map[][],用于记录所有图片是否被消去,map[][]的值为-1表示图片已消去,值为0表示图片没有消去。

【课程设计中碰到的问题及解决方案】

1、碰到的问题:

(1)不知道怎么在java Applicaton中播放连续音乐流。

(2)消除两张相同的图片的条件是,两个图片之间的连线不多于3根,且图片中间没有其它图片阻挡,但是此算法设计后的效果总有问题。

(3)未知错误

2、解决方案:

(1)默认设置为游戏启动即播放音乐,但只播放一次;一次播放完后,如果还想播放音乐,可以通过点击“播放音乐”菜单来控制;如果想停止音乐,可以通过点击“停止音乐”菜单来控制。

(2)通过讨论知道了,问题在于,横坐标x 和纵坐标y与二维数组中元素的下标值恰好相反。而之前没有考虑到。

(3)通过多次运行程序,找出错误,并改正。

【程序输出结果】

1、双击游戏

4、游戏胜利

5、关于连连看

【总结——体会和收获】

通过这次课程设计我学到了不少东西,也发现了大量的问题,同时在设计的过程中也发现了自己的不足之处,对以前学过的知识理解的不够深刻。对JAVA运用图片的调用和设置是否可见有了新的了解。但在部分功能的实现上还是有所不足。我们做的连连卡的最大缺陷就是游戏中没有计时功能,游戏没有时间限制。

【参考文献】

[1]辛运帏等,Java程序设计(第二版),清华大学出版社,

2011年8月

[2] Java版连连看算法研究:

https://www.doczj.com/doc/d716314748.html,/base/792832_2.html

[3] 如何在Java Applicationzh中加入音乐:

https://www.doczj.com/doc/d716314748.html,/t/20030430/01/1724166.html

【程序代码】

********************************************************** * 类名: MAP1

* 作用: 定义第一关的图标路径

********************************************************** class MAP1 {

public int map[][] = new int[8][8];

public int i, j;

public MAP1() {//界面边缘初始化,-1表示没有图标

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

map[0][i] = -1;

map[7][i] = -1;

}

for (i = 1; i <= 6; i++) {

map[i][0] = -1;

map[i][7] = -1;

}

for (i = 1; i < 7; i++) {

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

map[i][j] = 0;

}

}

}

}

********************************************************** * 类名: MAP2

* 作用: 定义第二关的图标路径

********************************************************** package lianliankan;

class MAP2 {

public int map[][] = new int[10][10];

public int i, j;

public MAP2() {//界面边缘初始化,-1表示没有图标

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

map[0][i] = -1;

map[9][i] = -1;

}

for (i = 1; i <= 8; i++) {

map[i][0] = -1;

map[i][9] = -1;

}

for (i = 1; i < 9; i++) {

for (j = 1; j < 9; j++) {

map[i][j] = 0;

}

}

}

}

********************************************************** * 类名: MAP3

* 作用: 定义第三关的图标路径

********************************************************** package lianliankan;

class MAP3 {

public int map[][] = new int[12][12];

public int i, j;

public MAP3() {//界面边缘初始化,-1表示没有图标

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

map[0][i] = -1;

map[11][i] = -1;

}

for (i = 1; i <= 10; i++) {

map[i][0] = -1;

map[i][11] = -1;

}

for (i = 1; i < 11; i++) {

for (j = 1; j < 11; j++) {

map[i][j] = 0;

}

}

}

}

**********************************************************

* 类名: SuiJiIcon1

* 作用: 随机生成第一关的图标

**********************************************************

package lianliankan;

import java.awt.*;

import javax.swing.*;

public class SuiJiIcon1 {

public ImageIcon icon[][] = new ImageIcon[8][8];//36个图标

public String photo[][] = new String[8][8]; //生成[0,17]间的36个随机整数public int i, j;

public int two;//记录相同的图标是否超过两个

public int temp, m, n;//中间变量

int t[][] = new int[8][8]; //用来存储36个随机数

public void SuiJiIcon() {

for (i = 1; i < 7; i++) {

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

while (true) {

two = 0;

temp = (int) (Math.random() * 18);//生成[0,17]间的个随机整数

t[i][j] = temp;

if (i == 1) {

for (n = 1; n <= j; n++) {

if (t[1][n] == temp) {

++two;

}

}

}

if (i >= 2) {

for (m = 1; m <= i - 1; m++) {

for (n = 1; n <= 6; n++) {

if (t[m][n] == temp) {

++two;

}

}

}

for (n = 1; n <= j; n++) {

if (t[m][n] == temp) {

++two;

}

}

}

if (two <= 2) {

break;

}

}

photo[i][j] = "连连看图片及背景音乐\\" + t[i][j] + ".jpg";

icon[i][j] = new ImageIcon(photo[i][j]);

}

}

}

}

**********************************************************

* 类名: SuiJiIcon2

* 作用: 随机生成第二关的图标

**********************************************************

package lianliankan;

import java.awt.*;

import javax.swing.*;

public class SuiJiIcon2 {

public ImageIcon icon[][] = new ImageIcon[10][10];//36个图标

public String photo[][] = new String[10][10]; //生成[0,17]间的36个随机整数public int i, j;

public int two;//记录相同的图标是否超过两个

public int temp, m, n;//中间变量

int t[][] = new int[10][10]; //用来存储36个随机数

public void SuiJiIcon(){

for (i = 1; i < 9; i++) {

for (j = 1; j < 9; j++) {

while (true) {

two = 0;

temp = (int) (Math.random() * 16);//生成[0,17]间的个随机整数

t[i][j] = temp;

if (i == 1) {

for (n = 1; n <= j; n++) {

if (t[1][n] == temp) {

++two;

}

}

}

if (i >= 2) {

for (m = 1; m <= i - 1; m++) {

for (n = 1; n <= 8; n++) {

if (t[m][n] == temp) {

++two;

}

}

}

for (n = 1; n <= j; n++) {

if (t[m][n] == temp) {

++two;

}

}

}

if (two <= 4) {

//System.out.println("two = "+two);

break;

}

}

photo[i][j] = "连连看图片及背景音乐\\"+t[i][j] + ".jpg";

icon[i][j] = new ImageIcon(photo[i][j]);

}

}

}

}

**********************************************************

* 类名: SuiJiIcon3

* 作用: 随机生成第三关的图标

**********************************************************

package lianliankan;

import java.awt.*;

import javax.swing.*;

public class SuiJiIcon3 {

public ImageIcon icon[][] = new ImageIcon[12][12];//36个图标

public String photo[][] = new String[12][12]; //生成[0,17]间的36个随机整数public int i, j;

public int two;//记录相同的图标是否超过两个

public int temp, m, n;//中间变量

int t[][] = new int[12][12]; //用来存储36个随机数

public void SuiJiIcon(){

for (i = 1; i < 11; i++) {

for (j = 1; j < 11; j++) {

while (true) {

two = 0;

temp = (int) (Math.random() * 25);//生成[0,25]间的个随机整数

t[i][j] = temp;

if (i == 1) {

for (n = 1; n <= j; n++) {

if (t[1][n] == temp) {

++two;

}

}

}

if (i >= 2) {

for (m = 1; m <= i - 1; m++) {

for (n = 1; n <= 10; n++) {

if (t[m][n] == temp) {

++two;

}

}

}

for (n = 1; n <= j; n++) {

if (t[m][n] == temp) {

++two;

}

}

}

if (two <= 4) {

break;

}

}

photo[i][j] = "连连看图片及背景音乐\\"+t[i][j] + ".jpg";

icon[i][j] = new ImageIcon(photo[i][j]);

}

}

}

}

**********************************************************

* 类名: checkLink1

* 作用: 检查第一关中要消去的两个图标是否满足消去条件

**********************************************************

package lianliankan;

import java.util.LinkedList;

public class checkLink1 {

MAP1 map = new MAP1();

public boolean horizon(int pointx1, int pointy1, int pointx2, int pointy2) {// 横线上的判断if (pointx1 == pointx2 && pointy1 == pointy2)//如果点击的是同一个图案,直接返回false

{

return false;

}

int x_start = pointx1 <= pointx2 ? pointx1 : pointx2;

int x_end = pointx1 <= pointx2 ? pointx2 : pointx1;

for (int x = x_start + 1; x < x_end; x++)//只要一个不是-1,直接返回false

{

if (map.map[pointy1][x] != -1) {

return false;

}

}

return true;

}

public boolean vertical(int pointx1, int pointy1, int pointx2, int pointy2) {// 竖线上的判断if (pointx1 == pointx2 && pointy1 == pointy2) //如果点击的是同一个图案,直接返回false

{

return false;

}

int y_start = pointy1 <= pointy2 ? pointy1 : pointy2;

int y_end = pointy1 <= pointy2 ? pointy2 : pointy1;

for (int y = y_start + 1; y < y_end; y++) //只要一个不是-1,直接返回false

{

if (map.map[y][pointx1] != -1) {

return false;

}

}

return true;

}

public boolean oneCorner(int pointx1, int pointy1, int pointx2, int pointy2) {//A 、B 之间有一个拐点

int pointx3 = pointx1;

int pointy3 = pointy2;

int pointx4 = pointx2;

int pointy4 = pointy1;

boolean method1 = false;

boolean method2 = false;

if (map.map[pointy3][pointx3] == -1) {//C 点上必须没有障碍

method1 = vertical(pointx1, pointy1, pointx3, pointy3) && horizon(pointx2, pointy2, pointx3, pointy3);

}

if (map.map[pointy4][pointx4] == -1) {//D 点上必须没有障碍

method2 = horizon(pointx1, pointy1, pointx4, pointy4) && vertical(pointx2, pointy2, pointx4, pointy4);

}

return (method1 || method2);

}

public class Line {//保存C、D点的类

int pointx1, pointy1, pointx2, pointy2;

public int direct;//1表示横向,0表示竖向

public Line(int direct, int pointx1, int pointy1, int pointx2, int pointy2) {

this.direct = direct;

this.pointx1 = pointx1;

this.pointy1 = pointy1;

this.pointx2 = pointx2;

this.pointy2 = pointy2;

}

}

public LinkedList scan(int pointx1, int pointy1, int pointx2, int pointy2) {//从A、B点的横纵两个方向进行扫描,把合适的线用LinkList存起来

LinkedList ll = new LinkedList();

for (int y = pointy1; y >= 0; y--) {

if (map.map[y][pointx1] == -1 && map.map[y][pointx2] == -1 && horizon(pointx1, y, pointx2, y)) {// 存在完整路线

ll.add(new Line(1, pointx1, y, pointx2, y));

}

}

for (int y = pointy1; y < 8; y++) {

if (map.map[y][pointx1] == -1 && map.map[y][pointy1] == -1 && horizon(pointx1, y, pointx2, y)) {

ll.add(new Line(1, pointx1, y, pointx2, y));

}

for (int x = pointx1; x >= 0; x--) {

if (map.map[pointy1][x] == -1 && map.map[pointy2][x] == -1 && vertical(x, pointy1, x, pointy2)) {

ll.add(new Line(0, x, pointy1, x, pointy2));

}

}

for (int x = pointx1; x < 8; x++) {

if (map.map[pointy1][x] == -1 && map.map[pointy2][x] == -1 && vertical(x, pointy1, x, pointy2)) {

ll.add(new Line(0, x, pointy1, x, pointy2));

}

}

return ll;

}

public boolean twoCorner(int pointx1, int pointy1, int pointx2, int pointy2) {//存在两个拐点LinkedList ll = scan(pointx1, pointy1, pointx2, pointy2);

if (ll.isEmpty()) { //没有完整的空白线段,无解

return false;

}

for (int index = 0; index < ll.size(); index++) {

Line line = (Line) ll.get(index);

if (line.direct == 1) {//横线上的扫描段,找到了竖线

if (vertical(pointx1, pointy1, line.pointx1, line.pointy1) && vertical(pointx2, pointy2, line.pointx2, line.pointy2)) {

return true;

}

} else {// 竖线上的扫描段,找到了横线

if (horizon(pointx1, pointy1, line.pointx1, line.pointy1) && horizon(pointx2, pointy2, line.pointx2, line.pointy2)) {

return true;

}

}

}

return false;

}

public boolean checkLink(int pointx1, int pointy1, int pointx2, int pointy2) {//点击两个点,判断这两个点是否符合消除条件

if (pointy1 == pointy2 && horizon(pointx1, pointy1, pointx2, pointy2)) {//在水平线上return true;

if (pointx1 == pointx2 && vertical(pointx1, pointy1, pointx2, pointy2)) {//在垂直线上

return true;

}

return (oneCorner(pointx1, pointy1, pointx2, pointy2) || twoCorner(pointx1, pointy1, pointx2, pointy2));

}

}

**********************************************************

* 类名: checkLink2

* 作用: 检查第二关中要消去的两个图标是否满足消去条件

**********************************************************

package lianliankan;

import java.util.LinkedList;

public class checkLink2 {

MAP2 map = new MAP2();

public boolean horizon(int pointx1, int pointy1, int pointx2, int pointy2) {// 横线上的判断if (pointx1 == pointx2 && pointy1 == pointy2)//如果点击的是同一个图案,直接返回false

{

return false;

}

int x_start = pointx1 <= pointx2 ? pointx1 : pointx2;

int x_end = pointx1 <= pointx2 ? pointx2 : pointx1;

for (int x = x_start + 1; x < x_end; x++)//只要一个不是-1,直接返回false

{

if (map.map[pointy1][x] != -1) {

return false;

}

}

return true;

}

public boolean vertical(int pointx1, int pointy1, int pointx2, int pointy2) {// 竖线上的判断if (pointx1 == pointx2 && pointy1 == pointy2) //如果点击的是同一个图案,直接返回false

{

return false;

}

int y_start = pointy1 <= pointy2 ? pointy1 : pointy2;

int y_end = pointy1 <= pointy2 ? pointy2 : pointy1;

for (int y = y_start + 1; y < y_end; y++) //只要一个不是-1,直接返回false

{

if (map.map[y][pointx1] != -1) {

return false;

}

}

return true;

}

public boolean oneCorner(int pointx1, int pointy1, int pointx2, int pointy2) {//A 、B 之间有一个拐点

int pointx3 = pointx1;

int pointy3 = pointy2;

int pointx4 = pointx2;

int pointy4 = pointy1;

boolean method1 = false;

boolean method2 = false;

if (map.map[pointy3][pointx3] == -1) {//C 点上必须没有障碍

method1 = vertical(pointx1, pointy1, pointx3, pointy3) && horizon(pointx2, pointy2, pointx3, pointy3);

}

if (map.map[pointy4][pointx4] == -1) {//D 点上必须没有障碍

method2 = horizon(pointx1, pointy1, pointx4, pointy4) && vertical(pointx2, pointy2, pointx4, pointy4);

}

return (method1 || method2);

}

public class Line {//保存C、D点的类

int pointx1, pointy1, pointx2, pointy2;

public int direct;//1表示横向,0表示竖向

public Line(int direct, int pointx1, int pointy1, int pointx2, int pointy2) {

this.direct = direct;

连连看游戏设计

中南林业科技大学 《数据结构课程设计》报告必做题:连连看游戏 选做题: 姓名: 学号: 专业班级:软件工程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改进设想................................ 错误!未定义书签。

连连看游戏毕业设计

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

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

连连看-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); }

连连看游戏设计

连连看游戏设计 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) 图片的选择

基于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

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课程设计—连连看

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

毕业设计_c 连连看1

课程设计报告 课程名称:面向对象程序设计C++ 设计题目:连连看 专业:计算机科学与技术 姓名: 学号: 指导教师:李晓虹 2015 年 12 月 10 日

摘要 在计算机逐步渗入社会生活各个层面的今天,计算机已经成为人们日常生活不可或缺的一部分,越来越多的人使用计算机办公、娱乐、购物等等。游戏行业发展一日千里,该行业极大的影响和改变了人们的生活和娱乐方式,游戏为消费者提供丰富多彩的虚拟空间,使消费者可以自由自在的享受虚拟世界的乐趣,实现自己在现实生活着那个可能永远不能实现的梦想,满足了消费者的心理和精神需求。 连连看游戏是一款很流行的小游戏,有的是连水果图片,有的是连麻将牌,有的是连各种小图片的等等。各种图片让人看得眼花缭乱,这也可以锻炼人的反应能力和眼力,所以这款小游戏受到了越来越多人的喜爱,尤其是小孩子的喜爱。连连看游戏也是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法设计和语言实现,如C,C#,C++,VB,JAVA等。在本课程设计中我是利用C++语言编写,开发平台是Microsoft Visual Studio 2010,功能较为简单,寓学于乐。 程序的功能是通过找出游戏中两个相同图案的小方块,然后分别点击两个小方块将其消除;可通过倒计时的方式控制游戏时间,游戏时间到或者没有匹配的图案时则游戏结束,需要重新开局,每一局开始倒计时都重新开始;能够响应鼠标事件。论文首先介绍了进行该游戏课程设计的目的,然后是任务描述和设计的相关要求,最后是最重要的需求分析和设计方案。重点介绍了在游戏过程中各种事件的处理,其中又以鼠标事件的处理最为最要,鼠标事件是利用鼠标所发出的信息了解用户的意图,进而做出相对应的动作,消除需要消除的小方块。 关键词:连连看游戏;算法设计;事件;C++,Microsoft Visual Studio 2010

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毕业课程设计连连看游戏(含代码)

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.

连连看游戏的设计与实现

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

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

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

计算机科学与工程学院 集中性实践教学计划书( 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)

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