JAVA课程设计—连连看最终版要点

合集下载

jav课程设计内容

jav课程设计内容

jav课程设计内容一、教学目标本节课的教学目标是让学生掌握Java编程语言的基本语法和编程思想,学会使用Java编写简单的控制台应用程序。

具体分为以下三个部分:1.知识目标:(1)了解Java语言的基本语法和数据类型。

(2)掌握Java程序的结构和编写方法。

(3)理解面向对象编程的基本概念,如类、对象、封装、继承和多态。

2.技能目标:(1)能够使用Java编写简单的控制台应用程序。

(2)学会使用Java编写面向对象的程序,具备初步的编程能力。

3.情感态度价值观目标:培养学生对编程语言的兴趣,激发学生主动学习和探索编程的欲望,培养学生的团队协作精神和自主学习能力。

二、教学内容本节课的教学内容主要包括以下几个部分:1.Java语言的基本语法和数据类型。

2.Java程序的结构和编写方法。

3.面向对象编程的基本概念,如类、对象、封装、继承和多态。

4.编写简单的控制台应用程序,巩固所学知识。

三、教学方法为了更好地实现教学目标,本节课采用以下几种教学方法:1.讲授法:讲解Java语言的基本语法、数据类型和程序结构。

2.案例分析法:通过分析实例,使学生掌握面向对象编程的基本概念。

3.实验法:让学生动手编写控制台应用程序,巩固所学知识。

4.讨论法:鼓励学生积极参与课堂讨论,培养学生的团队协作精神。

四、教学资源为了保证教学效果,本节课准备以下教学资源:1.教材:《Java编程入门》2.参考书:《Java核心技术》3.多媒体资料:PPT课件、教学视频4.实验设备:计算机、网络环境5.在线编程平台:例如LeetCode、牛客网,供学生课后练习和提高编程能力。

五、教学评估为了全面、客观地评估学生的学习成果,本节课采用以下几种评估方式:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和基本素养。

2.作业:布置适量作业,要求学生在规定时间内完成,通过作业质量评估学生的掌握程度。

3.考试:安排一次课堂小测,测试学生对Java基本语法和编程思想的掌握情况。

基于Java的“连连看”游戏

基于Java的“连连看”游戏

功 能 区面 板
游 戏 区面 板
4 . 2 菜 单
菜 单 的 功 能 均没 有 实 现 .读 者 可 以 自行 添 加 :
J B u t t o n [ ] [ J J L a b e I
J L a b e l
Ti me r
d o t s t i m e s t r
J Bu t t o n
s t a r t
开 始 按 钮
J Me n u me n u G a me=n e w J Me n u ( ” 游戏“ ) : J Me n u me n u Se t= n e w J Me n u ( ” 设置“ ) :
J Me n u me n u H e l p= n e w J Me n u ( “ 帮助” ) :
t h i s . s e t S i z e ( 7 8 0 , 5 0 0 ) ;
t h i s . s e t T i t l e ( “ 连连看游戏” ) :
t h i s . S e t D e f a u l t C I o s e Op e r a t i o n ( J F r a me . E X I L ON — C L OS E ) : a d d my Me n u 0 ; / / 添 加 菜 单 a d d F u n c t i o n P a n e I ( ) : ∥添 力 口 功台 E 区
表 2 L i n k Ga me类 中的 方 法
方 法 名 方 法 功 能
I ma g e l c o n ( “ i ma g e / 2 . g i f “ ) ) ) : me n u He l p . a d d S e p a r a t o r ( ) :

基于Java的图片连连看游戏设计研究

基于Java的图片连连看游戏设计研究

基于Java的图片连连看游戏设计研究基于Java的图片连连看游戏设计研究摘要:连连看(Link Up)游戏是一款经典的益智游戏,通过消除相同的图案来获得分数。

本文基于Java编程语言,对连连看游戏的设计进行深入研究。

通过实现游戏的基本功能和特色功能,对游戏进行优化和改进,提升游戏的用户体验。

通过实践验证,本设计具有一定的可行性和实用性。

1. 引言连连看游戏是一种非常受欢迎的益智游戏,其规则简单,操作容易上手。

随着移动互联网的快速发展,游戏市场越来越庞大。

设计一款基于Java的图片连连看游戏,可以满足用户对游戏的需求,同时也是提升自己编程能力的学习机会。

2. 游戏的基本功能设计2.1 游戏界面设计游戏主界面分为游戏区和得分区。

游戏区由多个方格组成,每个方格里面有一张图案,玩家需要通过点击两个相同的图案来消除它们。

得分区显示玩家的得分、剩余时间和游戏关卡等信息。

2.2 游戏规则设计游戏开始时,系统会随机生成一定数量的图案并填充到游戏区中。

玩家需要通过连接相同的图案来消除它们,直到清空游戏区中所有的图案。

连接两个图案的连线只能是水平或垂直直线,并且在连线路径上不能有其他图案阻挡。

玩家每消除一对图案,得分增加,游戏关卡随之升级。

如果无法连接两个图案,玩家可以使用提示功能获取一定的帮助。

3. 游戏特色功能设计3.1 计时功能游戏设置了一个倒计时器,玩家需要在规定的时间内完成游戏。

当倒计时为0时,游戏结束,系统会显示玩家的得分和游戏结束画面。

3.2 关卡功能游戏设计了多个关卡,每个关卡的游戏难度和图案数量都不同。

玩家需要通过完成前一关卡的要求才能解锁下一关卡。

3.3 提示功能当玩家遇到无法连接的图案时,可以使用提示功能,系统会自动给出可以连接的图案,并帮助玩家找到解决方案。

4. 游戏的优化与改进4.1 性能优化在游戏的设计过程中,需要考虑到游戏的性能问题。

通过合理的算法设计和资源管理,减少游戏的内存占用和运行时的开销,提高游戏的运行速度和流畅度。

图片连连看游戏程序

图片连连看游戏程序

《高级语言程序设计(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、图片识别算法:连连看游戏 需要识别相同的图片并进行连接
实际应用
本游戏的Java实现可以广泛应用于各种平台,如PC、移动设备和嵌入式设备。 此外,该游戏的设计思路和算法也可以应用于其他类型的连连看游戏,如文字连 连看、图形连连看等。因此,本研究的实际应用前景广阔。
谢谢观看
总结
本次演示对基于Java的图片连连看游戏设计进行了深入研究,分析了玩家需 求和开发者需求,阐述了具体的游戏设计方法,探讨了可能遇到的难点和挑战, 并展示了实际应用效果。本研究的成果不仅为其他连连看游戏开发者提供了有价 值的参考,也有助于推动Java游戏开发领域的发展。
在未来的研究中,可以进一步拓展连连看游戏的玩法和内容,提升游戏的趣 味性和挑战性,同时不断优化算法和程序性能,为玩家带来更好的游戏体验。
3、计时器
为了控制游戏的进行,我们需要创建一个计时器。我们可以使用Java Timer 类来创建一个定时器,每隔一段时间就更新游戏状态。
四、测试与优化
完成游戏的基本设计与实现后,我们需要进行一系列测试和优化工作。首先, 我们需要测试游戏的稳定性和正确性,确保所有的图案都可以正确地生成和显示。 其次,我们需要测试游戏的性能,确保在各种不同配置的计算机上都可以流畅地 运行游戏。最后,我们还需要对游戏的界面进行优化,以提供更好的用户体验。
参考内容
一、引言
在当今的计算机时代,越来越多的计算机用户开始应用程序和游戏的开发。 其中,连连看游戏是一种广受欢迎的休闲游戏,它主要考验玩家的观察力和反应 速度。Java作为一种流行的编程语言,被广泛应用于各种应用程序和游戏的开发。 本次演示将详细介绍如何使用Java设计和实现一个简单的连连看游戏。

连连看实验报告

连连看实验报告

一、实验目的1. 熟悉并掌握使用Java语言进行图形界面编程的基本方法。

2. 理解并运用面向对象编程思想,提高编程能力。

3. 掌握连连看游戏的基本原理和实现方法。

4. 培养团队合作能力和创新意识。

二、实验内容1. 熟悉Java语言的基本语法和面向对象编程思想。

2. 使用Java Swing库开发图形界面。

3. 实现连连看游戏的基本功能,包括游戏界面、数据结构、逻辑算法等。

三、实验环境1. 操作系统:Windows 102. 开发工具:Eclipse3. 编程语言:Java四、实验步骤1. 创建Java项目,命名为“连连看游戏”。

2. 设计游戏界面,包括游戏区域、时间显示、分数显示等。

3. 定义数据结构,用于存储游戏中的图片和匹配关系。

4. 编写游戏逻辑算法,包括初始化游戏、随机生成图片、匹配图片等。

5. 实现游戏控制,包括鼠标点击事件、图片移动、匹配判断等。

6. 编写游戏结束判断和结果显示。

五、实验结果与分析1. 实验结果通过以上步骤,成功开发了一个连连看游戏。

游戏界面美观,功能完善,可以满足用户的基本需求。

2. 实验分析(1)游戏界面设计:采用Java Swing库中的JPanel、JLabel等组件,实现了游戏界面的布局。

通过设置背景图片、颜色等属性,使游戏界面更具吸引力。

(2)数据结构:使用二维数组存储游戏中的图片,每行每列代表一个位置。

通过遍历数组,判断相邻图片是否可以匹配。

(3)逻辑算法:在游戏开始时,随机生成图片并存储到数组中。

当用户点击一个图片时,判断其相邻图片是否可以匹配。

如果可以匹配,则将这两个图片移动到一起,并更新分数和时间。

(4)游戏控制:通过监听鼠标点击事件,实现图片的移动和匹配判断。

当图片移动到一起时,判断是否匹配,并更新游戏状态。

六、实验总结1. 通过本次实验,掌握了Java语言的基本语法和面向对象编程思想,提高了编程能力。

2. 熟悉了Java Swing库在图形界面编程中的应用,为以后开发类似项目奠定了基础。

连连看原理

连连看原理

用 JAVA 开发游戏连连看(注:这篇文章是在2004.12完成的,当时是为了向《电脑爱好者》投稿,这是原稿,由于此杂志面向的读者原因,因此文章中有些地方显得过“白”,在此后,稿子经过两次修改,虽然最终得以发表,但已改得基本上没有太多的技术性了,而且两次改稿下来,一共写了近6万字,累~~~,现在将其略作修改放在主页上,希望对大家有所帮助)提起 JAVA ,相信大家也不会陌生了吧, JAVA 是一门相当优秀的语言。

目前 JAVA 领域 J2EE 、 JSP 、STRUTS 等技术不知有多么的热门,他们的主要用途是用来进行企业开发, J2ME 也由于能够被大量的移动设备所支持,因此,也有不少的程序,特别是游戏是在 J2ME 平台上开发的,反而是 J2SE ,似乎只是被人们用来做一做程序界面的,就连 APPLET 也很少有人使用了(有了 FLASH ,谁还用 APPLET 啊)。

用 JAVA 来开发桌面平台的游戏,似乎很少有人这么做,也可能大家一想到做游戏都会想到 C 、 C++ 、汇编等。

前段日子我迷上的 QQ 游戏中的“连连看”,游戏之余,突发奇想,也想自己用做一个试试,经过十来天的奋战,终于完成了。

我选择了 JAVA 来开发这个游戏,之所以选择 JAVA ,是因为:1.很少有人用 JAVA 来开发桌面游戏,是因为 JAVA 在网络方面的强大优势使人们忽略了 JAVA在桌面平台上的开发,特别是游戏方面,而并不是因为 JAVA 做不到,而我,却希望通过我的尝试来告诉大家:原来 JAVA 也能做出漂亮的桌面游戏的(我可不是在夸我的程序:))2.由于 JAVA 生来就是为网络服务的,因此,一旦有需要,很容易将单机版的游戏改为网络版的(我现在就在做:))3.由于现在有很多手机都支持 J2ME ,而 J2ME 和 J2SE 是一脉相承的,因此,用 JAVA 编写的游戏可以很容易移植到 J2ME 平台上,想想当你的游戏在手机上运行是一样多么愉快的事情啊。

连连看思路算法及实现

连连看思路算法及实现

连连看思路算法及实现连连看是一款经典的益智游戏,其玩法简单,规则清晰,深受广大玩家喜爱。

在这个游戏中,我们需要通过消除相同的图案来获得高分。

而要想在游戏中取得好成绩,则需要掌握一定的思路算法和实现方法。

一、思路算法1.寻找相同图案在连连看游戏中,最基本的操作就是寻找相同的图案。

因此,在进行游戏时,我们需要将所有可消除的图案都找出来,并建立起它们之间的关联关系。

2.建立关联关系建立图案之间的关联关系是为了方便后续操作。

我们可以使用二维数组或者链表等数据结构来存储每个图案以及它们之间的连接情况。

对于每一个图案,我们可以将其坐标作为数组下标,并将其与周围相邻的图案进行连接。

3.寻找可消除路径在建立好每个图案之间的连接关系后,我们就可以开始寻找可消除路径了。

通常情况下,可消除路径有两种:直线型和弯曲型。

对于直线型路径,我们只需要判断两个图案之间是否存在直线连接即可;而对于弯曲型路径,则需要考虑路径中是否存在转折点。

4.消除图案当我们找到了可消除路径后,就可以进行图案的消除操作了。

在消除时,我们需要将所有经过的图案都从数据结构中删除,并将得分累加到总分中。

此外,在进行消除操作时,我们还需要考虑一些特殊情况,如图案之间存在障碍物等。

5.判断游戏结束当所有的图案都被消除或者无法再进行消除操作时,游戏就结束了。

在判断游戏是否结束时,我们可以检查当前数据结构中是否还有未被消除的图案。

如果存在未被消除的图案,则说明游戏还未结束;否则,游戏就已经结束了。

二、实现方法1.数据结构在实现连连看游戏时,我们通常使用二维数组或链表等数据结构来存储每个图案以及它们之间的连接关系。

对于二维数组来说,其优点是存储简单、操作方便;而链表则更加灵活,可以动态地添加和删除元素。

2.算法实现在实现连连看游戏时,我们需要编写一些算法来完成相应的功能。

例如,在寻找可消除路径时,我们可以使用广度优先搜索算法(BFS)或深度优先搜索算法(DFS)来遍历所有可能的路径,并找到其中符合要求的路径。

Java课程设计连连看游戏(含代码)

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]. 电子工业出版社, 2004,47-125.[4](美)Mark Linsenbardt. JSP在数据库中的应用与开发[M]. 希望电子出版社,2005,210-236.[5] Dianne Phelan,Building a simple web database application[C].IEEE InternationalProfessional Communication Conference, 2004, 79-86.[6](美)Karl Avedal,Danny Ayers,Timothy Briggs.JSP编程指南[M].电子工业出版社,2006,47-125.[7] Dianne Phelan,Building a simple web database application[C].IEEE InternationalProfessional Communication Conference, 2005, 79-86.[8] Altendorf. Eric, Hohman. Moses, Zabicki. Roman. Using J2EE on a large,web-based project[J]. IEEE Software.2002,19(02):81-89.摘要当今社会,休闲型游戏越来越得到人们的喜爱,我所做的毕业设计实例“连连看游戏的设计与实现”是近几年来网络上非常流行的一种二维休闲游戏,它对电脑配置要求不高,娱乐性强,易于上手。

java课程设计报告(完整版)

java课程设计报告(完整版)

目录1、摘要2、概要设计3、详细设计4、测试分析5、总结6、参考文献【前言】Java不依赖平台的特点使得它受到广泛的关注,Java已成为网络时代最重要的语言之一。

Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。

目前,很多新的技术领域都涉及Java语言,国内外许多大学已将Java语言列入了本科教学计划,掌握Java已经成为共识。

本次课程设计就是利用java语言来编写简单的计算器,能进行加、减、乘、除四则运算,下面给出了该设计的理论分析和具体步骤。

一、摘要本计算器可以进行简单的四则运算(加、减、乘、除),但仅限于十进制下。

“Backspace”按钮表示退格,“CE”按钮表示清除当前文本框内的数据,“C”按钮表示清除文本框内数据,同时var、answer清零。

该程序可在JCreator环境下直接运行。

二、概要设计1、自定义说明(1)类名:Calculator作用:主类继承的父类:JFrame类实现的接口:ActionListener类public class Calculator extends JFrame implements ActionListener{private static String[] btnTexts = {"0","1","2","3","4","5","6","7","8","9","+","-","*","/",".","+/-"}; //定义数组bstTexts来存放计算器上的各个按钮Button button[] = new Button[16];Button BkButton,CeButton,CButton,EqButton;boolean clickable; //控制当前能否按键double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd)short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算DecimalFormat df; //设置数据输出精度private JTextField displayField = new JTextField(" "); //计算结果显示区public Calculator(){………}public void actionPerformed(ActionEvent event){………}}(2)方法名:Calculator作用:设置窗体布局public Calculator(){//Frame frame = new Frame("Calculator");super("Calculator"); //显示主窗口标题“Calculator”df = new DecimalFormat("0.00000000"); //设置数据输出精度(对于double型值)BkButton = new Button("Backspace");BkButton.setForeground(Color.red);CeButton = new Button("CE");tForeground(Color.red);CButton = new Button("C");CButton.setForeground(Color.red);EqButton = new Button("=");EqButton.setForeground(Color.red); //将“Backspace”、“CE”、”C”、“=”显示为红色BkButton.addActionListener(this);nListener(this);CButton.addActionListener(this);EqButton.addActionListener(this);displayField.setHorizontalAlignment(JTextField.RIGHT); //将计算结果显示在displayField的右面JPanel p1 = new JPanel(new FlowLayout()); //以FlowLayout布局p1 p1.add(BkButton);p1.add(CeButton);p1.add(CButton);p1.add(EqButton); //设置四个按钮:"Backspace","CE","C","="JPanel p2 = new JPanel(new GridLayout(2,1)); //以GridLayout布局p2 p2.add(displayField);p2.add(p1); //加入显示结果的JTextField和p1JPanel p3 = new JPanel(new GridLayout(4,4)); //以GridLayout布局p3 for(int i = 0;i < btnTexts.length;i++){button[i] = new Button(btnTexts[i]); //将数组btnTexts[]的值赋给数组button[] button[i].setForeground(Color.blue); //组件button的前景色显示蓝色p3.add(button[i]);button[i].addActionListener(this);}Container cp = this.getContentPane(); //采用默认的BorderLayout布局cpcp.add(p2,BorderLayout.NORTH);R);}(3)方法名:actionPerformed作用:设置各个按钮的行为public void actionPerformed(ActionEvent event){boolean sign = false; //判断是否是double型数参与运算,是为true,不是为falseObject temp = event.getSource();try{for (int i = 0; i <= 9; i++) //如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后displayField.setText(displayField.getText() + Integer.toString(i));//按下'.'按钮时,判断当前文本框内字符串中含不含'.',如果已含,则不允许再插入'.'if (temp == button[14] && clickable == true){……….}if ( (temp == button[10] || temp == button[11] || temp == button[12] || temp == button[13]) && clickable == true){//'+'操作if (temp == button[10]){…………}//'-'操作if (temp == button[11]){…………}//'*'操作if (temp == button[12]){…………}//'/'操作if (temp == button[13]){…………}//'='操作if (temp == EqButton && clickable == true){…………}//按下'+/-'按钮时处理{…………}//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除if (temp == BkButton && clickable == true){…………}//按下'CE'按钮,将当前文本框内数据清除if (temp == CeButton){………}//按下'C'按钮,文本框内数据清除,同时var,answer清0if (temp == CButton){………}}//输入中如果有操作非法,比如按下两次'+',捕获异常catch (Exception e){displayField.setText("操作非法");clickable = false;}2、界面设计下图为该程序运行时的界面截图:三、详细设计以下为该程序的主要代码:import javax.swing.*;import java.awt.*;import javax.swing.event.*;import java.awt.event.*;imalFormat;public class Calculator extends JFrame implements ActionListener{private static String[] btnTexts ={"0","1","2","3","4","5","6","7","8","9","+","-","*","/",".","+/-"};Button button[] = new Button[16];Button BkButton,CeButton,CButton,EqButton;boolean clickable; //控制当前能否按键double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd)short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算DecimalFormat df; //设置数据输出精度private JTextField displayField = new JTextField(" ");//计算结果显示区public Calculator(){super("Calculator"); //显示主窗口标题“Calculator”df = new DecimalFormat("0.00000000"); //设置数据输出精度(对于double型值)BkButton = new Button("Backspace");BkButton.setForeground(Color.red);CeButton = new Button("CE");CeButton.setForeground(Color.red);CButton = new Button("C");CButton.setForeground(Color.red);EqButton = new Button("=");EqButton.setForeground(Color.red); //将“Backspace”、“CE”、”C”、“=”显示为红色BkButton.addActionListener(this);CeButton.addActionListener(this);CButton.addActionListener(this);EqButton.addActionListener(this);displayField.setHorizontalAlignment(JTextField.RIGHT); //将计算结果显示在displayField的右面JPanel p1 = new JPanel(new FlowLayout()); //以FlowLayout布局p1 p1.add(BkButton);p1.add(CeButton);p1.add(CButton);p1.add(EqButton); //设置三个按钮:"Backspace","CE","C","="JPanel p2 = new JPanel(new GridLayout(2,1)); //以GridLayout布局p2 p2.add(displayField);p2.add(p1); //加入显示结果的JTextField和p1JPanel p3 = new JPanel(new GridLayout(4,4)); //以GridLayout布局p3 for(int i = 0;i < btnTexts.length;i++){button[i] = new Button(btnTexts[i]); //将数组btnTexts[]的值赋给数组button[] button[i].setForeground(Color.blue); //组件button的前景色示蓝色p3.add(button[i]);button[i].addActionListener(this);}Container cp = this.getContentPane(); //采用默认的BorderLayout布局cpcp.add(p2,BorderLayout.NORTH);cp.add(p3,BorderLayout.CENTER);}//设置各个按钮行为public void actionPerformed(ActionEvent event){boolean sign = false; //判断是否是double型数参与运算,是为true,不是为falseObject temp = event.getSource();try{for (int i = 0; i <= 9; i++) //如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后if (temp == button[i] && clickable == true)displayField.setText(displayField.getText() + Integer.toString(i));//按下'.'按钮时,判断当前文本框内字符串中含不含'.',如果已含,则不允许再插入'.'if (temp == button[14] && clickable == true){boolean isDot = false;if (displayField.getText().length() == 0)isDot = true;for (int i = 0; i < displayField.getText().length(); i++)if ('.' == displayField.getText().charAt(i)){isDot = true;break;}if (isDot == false)displayField.setText(displayField.getText() + ".");}if ( (temp == button[10] || temp == button[11] || temp == button[12] || temp == button[13]) && clickable == true){//'+'操作if (temp == button[10]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:le(displayField.getText());}displayField.setText("");prekey = key = 0;}//'-'操作if (temp == button[11]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:answerd = Double.parseDouble(displayField.getText());}displayField.setText("");prekey = key = 1;}//'*'操作if (temp == button[12]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:answerd = Double.parseDouble(displayField.getText());}displayField.setText("");prekey = key = 2;}//'/'操作if (temp == button[13]){switch (prekey){case 0:answerd += Double.parseDouble(displayField.getText());break;case 1:answerd -= Double.parseDouble(displayField.getText());break;case 2:answerd *= Double.parseDouble(displayField.getText());break;case 3:if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}elseanswerd /= Double.parseDouble(displayField.getText());break;default:answerd = Double.parseDouble(displayField.getText());}displayField.setText("");prekey = key = 3;}}//'='操作if (temp == EqButton && clickable == true){//如果连续按'=',则进行连续运算if (prekey == 5){if (key == 0){answerd += vard;displayField.setText(df.format(answerd));}if (key == 1){answerd -= vard;displayField.setText(df.format(answerd));}if (key == 2){answerd *= vard;displayField.setText(df.format(answerd));}if (key == 3){if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}else{answerd /= vard;displayField.setText(df.format(answerd));}}}else{vard = Double.parseDouble(displayField.getText());if (key == 0){prekey = -1;answerd += Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if (key == 1){prekey = -1;answerd -= Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if (key == 2){prekey = -1;answerd *= Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if (key == 3){prekey = -1;if (Double.parseDouble(displayField.getText()) == 0){displayField.setText("除数不能为零");clickable = false;}else{answerd /= Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}}prekey = 5;}//按下'+/-'按钮时处理if (temp == button[15] && clickable == true){boolean isNumber = true;String s = displayField.getText();for (int i = 0; i < s.length(); i++)if (! (s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.' || s.charAt(i) == '-')){isNumber = false;break;}if (isNumber == true){//如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-'){displayField.setText("");for (int i = 1; i < s.length(); i++){char a = s.charAt(i);displayField.setText(displayField.getText() + a);}}//如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsedisplayField.setText('-' + s);}}//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除if (temp == BkButton && clickable == true)String s = displayField.getText();displayField.setText("");for (int i = 0; i < s.length() - 1; i++){char a = s.charAt(i);displayField.setText(displayField.getText() + a);}}//按下'CE'按钮,将当前文本框内数据清除if (temp == CeButton){displayField.setText("");clickable = true;}//按下'C'按钮,文本框内数据清除,同时var,answer清0if (temp == CButton){vard = answerd = 0;displayField.setText("");clickable = true;}}//输入中如果有操作非法,比如按下两次'+',捕获异常catch (Exception e){displayField.setText("操作非法");clickable = false;}}public static void main(String args[]){Calculator calculator = new Calculator();calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);calculator.setSize(300,200);calculator.setVisible(true);}}四、测试分析(1)程序运行情况该程序正常的响应按钮事件,能进行简单的加、减、乘、除四则运算,在输入之前须先进行清零处理,然后再输入数值进行运算。

基于“连连看”实例的Java程序设计课程教学研究

基于“连连看”实例的Java程序设计课程教学研究

基 于实例 的教学是 近年来讨论 比较 多的话题 。 本文将结合 程序 设计课 程教学 实际 ,探讨如何将程序 实 例引入 到课 堂 ,让 学生更 好 的学 习面 向对象程 序设 计 这 门课 程 。 由于J a v a 语 言与 生俱来 的 “ 面 向对 象 ” 的特 点 ,众 多 高校 选 择 其作 为 面 向对 象 程 序设 计 课
构造出一个 1 1 1 9 的G r i d L a y o u t 布 局 ,而后在每个单元
格 中放人一个J B u t t o n  ̄ 的对象 ,代表贴砖对象 。这样 ,

通俗易懂 ,且能激发学生 的课堂兴趣。考 虑到学生通常 对小游戏存在兴趣 ,本文引入 了较为普及 的小游戏 “ 连 连看” ,通过该游戏 的设计 ,来探 索面向对象程序设计
码 ,从语法 的角度说明如何使用而 已,并不能给学生更 多的直观感受 。在 “ 连连看 ”实例 中,主界面 区域显然
二、 “ 连连 看 "实例 设计 与教 学
为 了能够 达到 教学效 果 ,实例 的选取需 要适 当斟
酌 。实例的选择 不仅要能够满足基本的教学需要 ,更要
可以看成是 一种典 型的G r i d L a y o u t 布局应用。我们 可以
程 教学 的编程 语言 。本文 的实 例亦建 立在J a v a 平 台之


与设计过程 。
B)当进行 可视化 程序设计 的时候 ,界面布局是无
法 回避的问题 。现在几乎所有 的教材在描述这个问题的
时候 ,通常只是 简要地罗列 出J a v a 平 台下的几种布局 , 诸 ̄ H F l o wL a y o u t 、B o r d e r L a y o u t 等 ,然后给出一小段代

连连看课程设计报告

连连看课程设计报告

湖南涉外经济学院课程设计报告课程名称:程序设计实训(2)报告题目:连连看游戏的开发学生姓名:唐杰所在学院:信息科学与工程学院专业班级:计科1002班学生学号:指导教师:邹竞2013年6月25日课程设计任务书摘要在计算机逐步渗入社会生活各个层面的今天,计算机已经成为人们日常生活不可或缺的一部分,越来越多的人使用计算机办公、娱乐、购物等等。

游戏行业发展一日千里,该行业极大的影响和改变了人们的生活和娱乐方式,游戏为消费者提供丰富多彩的虚拟空间,使消费者可以自由自在的享受虚拟世界的乐趣,实现自己在现实生活着那个可能永远不能实现的梦想,满足了消费者的心理和精神需求。

连连看游戏是一款很流行的小游戏,有的是连水果图片,有的是连麻将牌,有的是连各种小图片的等等。

各种图片让人看得眼花缭乱,这也可以锻炼人的反应能力和眼力,所以这款小游戏受到了越来越多人的喜爱,尤其是小孩子的喜爱。

连连看游戏也是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法设计和语言实现,如C,C#,C++,VB,JAVA等。

在本课程设计中我是利用C#语言编写,开发平台是Microsoft Visual Studio 2010,功能较为简单,寓学于乐。

程序的功能是通过找出游戏中两个相同图案的小方块,然后分别点击两个小方块将其消除;可通过倒计时的方式控制游戏时间,游戏时间到或者没有匹配的图案时则游戏结束,需要重新开局,每一局开始倒计时都重新开始;能够响应鼠标事件。

论文首先介绍了进行该游戏课程设计的目的,然后是任务描述和设计的相关要求,最后是最重要的需求分析和设计方案。

重点介绍了在游戏过程中各种事件的处理,其中又以鼠标事件的处理最为最要,鼠标事件是利用鼠标所发出的信息了解用户的意图,进而做出相对应的动作,消除需要消除的小方块。

关键词:连连看游戏;算法设计;事件;C#;Microsoft Visual Studio 2010目录课程设计任务书 (II)摘要 (III)一、课程设计目的 (1)二、任务描述和要求 (2)2.1 问题描述 (2)2.2 任务描述 (2)2.3 设计要求 (3)三、需求分析 (4)3.1功能分析 (4)3.2功能需求 (4)3.3 功能模块 (5)3.4系统需求分析总结 (6)四、设计方案 (7)4.1 总体设计 (7)4.1.1 系统基本功能 (7)4.1.2 系统流程 (8)4.1.3 主要功能模块 (10)4.2 详细设计 (11)4.2.1 规则详解 (11)4.2.2部分程序代码解析 (12)4.2.3运行结果分析 (17)五、总结 (20)六、参考文献 (21)一、课程设计目的《程序设计实训》课程是是计算机科学与技术专业重要的实践性课程之一,其实践性和应用性都很强。

jav课程设计报告

jav课程设计报告

jav课程设计报告一、教学目标本课程旨在让学生掌握Java编程语言的基本语法、编程技巧和相关概念,培养学生的编程能力和解决问题的能力。

通过本课程的学习,学生将能够:1.熟练掌握Java编程语言的基本语法和编程规范;2.掌握Java语言的面向对象编程思想,包括类、对象、继承、多态等;3.熟悉Java语言的常用数据结构和相关算法;4.能够运用Java语言编写简单的应用程序,解决实际问题;5.培养良好的编程习惯和团队协作能力。

二、教学内容本课程的教学内容主要包括Java编程语言的基本语法、面向对象编程、数据结构与算法、应用程序开发等。

具体安排如下:1.第一章:Java编程基础,包括Java语言的概述、开发环境搭建、基本数据类型、运算符、控制语句等;2.第二章:面向对象编程,包括类与对象、继承与多态、封装与抽象等;3.第三章:常用数据结构,包括数组、链表、栈、队列、树、图等;4.第四章:算法与排序,包括常见排序算法、查找算法、算法分析与设计等;5.第五章:Java应用程序开发,包括图形用户界面设计、文件操作、网络编程等。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。

具体包括:1.讲授法:通过讲解Java编程语言的基本概念、语法和编程技巧,使学生掌握Java编程的基本知识;2.案例分析法:通过分析实际案例,使学生理解面向对象编程的思想,并能够运用到实际项目中;3.实验法:安排上机实验,让学生动手编写Java程序,培养学生的编程能力和解决问题的能力;4.讨论法:学生进行小组讨论,分享学习心得和经验,提高学生的团队协作能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选用权威、实用的Java编程教材,为学生提供系统的学习资料;2.参考书:提供相关的Java编程参考书籍,方便学生课后自学和深入研究;3.多媒体资料:制作课件、教学视频等多媒体资料,帮助学生更好地理解和掌握知识点;4.实验设备:提供计算机实验室,让学生能够进行上机实验,提高实践能力。

JAVA开发连连看游戏

JAVA开发连连看游戏

1 引言1.1 连连看游戏发展[1]游戏“连连看”顾名思义就是找出相关联的东西,连连看游戏在网上基本是用于小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。

“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。

在电脑普及发展的今天,网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。

连连看游戏就是典型,因此不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前3位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络、单机休闲小游戏。

1.1.1 桌面连连看游戏发展游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。

这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。

并于2004年,取得了国家版权局的计算机软件著作权登记证书。

1.1.2 在线连连看游戏发展随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。

如“水晶连连看”、“果蔬连连看”、“石头连连看”等。

1.1.3 社交连连看游戏发展2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。

“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。

1.2 连连看游戏介绍当今社会休闲型游戏越来越得到人们的喜爱,连连看游戏是近几年来网络上非常流行的一种二维休闲游戏,它对电脑配置要求不高,娱乐性强,易于上手,因此吸引了一大批玩家,且不分男女老少、工薪白领,是一款适合大众的经典网络、单机休闲小游戏。

1.2.1 连连看游戏基本规则如果两个相同的图案之间如果能画出一条不多于2折的连线,则消除这两个图案,直到所有的图案全部消除为止,这就是连连看。

jav课程设计

jav课程设计

jav课程设计一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、概念和编程技巧,培养学生解决问题的能力,提高学生的逻辑思维和编程实践能力。

1.理解Java编程语言的基本语法和概念。

2.掌握Java编程的基本技巧和编程方法。

3.了解Java编程语言的应用领域和发展趋势。

4.能够使用Java编程语言编写简单的程序。

5.能够运用Java编程语言解决实际问题。

6.能够阅读和理解Java编程语言的代码。

情感态度价值观目标:1.培养学生对编程语言的兴趣和热情。

2.培养学生解决问题的积极性和主动性。

3.培养学生团队合作和自主学习的能力。

二、教学内容本课程的教学内容主要包括Java编程语言的基本语法、概念和编程技巧。

具体包括以下几个方面:1.Java编程语言的基本语法和概念,如变量、数据类型、运算符、控制语句等。

2.Java编程的基本技巧和编程方法,如函数、面向对象编程、异常处理等。

3.Java编程语言的应用领域和发展趋势,如Web开发、移动应用开发等。

4.课程简介和教学目标5.Java编程语言的基本语法和概念6.Java编程的基本技巧和编程方法7.Java编程语言的应用领域和发展趋势三、教学方法本课程将采用多种教学方法,以激发学生的学习兴趣和主动性。

具体包括以下几种方法:1.讲授法:通过教师的讲解,让学生理解Java编程语言的基本语法和概念。

2.讨论法:通过学生之间的讨论和交流,培养学生的团队合作和解决问题的能力。

3.案例分析法:通过分析实际案例,让学生掌握Java编程的技巧和方法。

4.实验法:通过编程实践,让学生巩固Java编程的知识和提高编程能力。

四、教学资源本课程将使用教材《Java编程语言》作为主要教学资源,同时提供以下教学资源:1.参考书籍:提供相关的参考书籍,供学生深入学习和参考。

2.多媒体资料:提供相关的视频教程和教学课件,帮助学生更好地理解和掌握Java编程知识。

连连看小游戏设计毕业设计

连连看小游戏设计毕业设计

摘要游戏“连连看”,只要将相同花色的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。

这个程序的界面使用Jframe框架,主程序窗口包含一个主面板,其中包含两个子面板,左边一层子面板是游戏窗口,符合我们玩游戏的习惯,包含连连看游戏的图片元素,用户进行游戏能找到32对图片;右边一层用来实现游戏控制,有开始、刷新、选择难度、显示分数、进度条等功能选项。

结合Java 编程语言的简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程、动态和连连看游戏的休闲、趣味、益智加上美观的界面设计和秀色可餐的水果蔬菜游戏图片元素,使这款连连看游戏成为现代都市人们打发无聊,放松身心的好帮手。

加入了游戏时间控制和过关控制及进度条提示功能使游戏速度节奏快,画面清晰可爱,老少皆宜。

通过ActionEvent 组件进行动作事件的监听和处理。

游戏通过定义数组,根据一定的算法实现规定的路径判断。

关键字: Java连连看;Jframe;数组;路径判断AbstractThe game "lianliankan", as long as the two cards with the same suit straight up to three connected can be eliminated, rules are easy. This program of interface using Jframe framework, main program window contains a a main panel, which contains two a child Panel, left a layer child Panel is game window, meet we playing game of habits, contains fest see game of pictures element, user for game can found 32 on pictures; right a layer used to achieved game control, has began, and refresh, and select difficulty, and displayed score, and progress article, features option. Combines a simple Java programming language, object-oriented, distributed, interpreted, robust, secure system-independent, portable, high-performance, multithreaded, dynamic and lianliankan games, leisure, fun, puzzle together with attractive interface design and appetizing fruit vegetables picture elements, makes this lianliankan games become the modern city spending tedious, relaxed and good help. Joined the playing time control and border control and progress bar prompts make the game faster tempo, clear picture and lovely, both young and old. Action through the ActionEvent component event listening and handling. Games by defining an array according to certain algorithms provide path of judgment.Key words: Java Lianliankan ; Jframe ; array ; approaches目录1.引言 (1)2.游戏规则 (1)2.1概要 (1)2.2操作 (1)2.3胜利条件 (1)2.4失败条件 (1)3.发展概况 (1)3.1连连看游戏的历史 (1)3.2用java语言写连连看游戏的原因 (2)4.方案论证 (2)4.1设计原理 (2)4.2方案选择 (3)4.3主要问题 (3)4.4技术要求 (3)4.5游戏应用环境的构建 (4)5.系统分析 (4)5.1模块分析 (4)5.1.1 界面的设计和图片的随机生成模块 (5)5.1.2 菜单控制模块 (5)5.1.3算法模块 (5)5.2基本思路 (6)5.2.1 游戏地图设计思路 (6)5.2.2 连连看游戏图片 (6)5.2.3 获取图片位置 (6)5.2.4 路径判断思路 (7)6.系统设计 (8)6.1主界面的设计 (8)6.2图片的随机生成 (9)6.3单击控件的事件触发 (9)6.3.1开始游戏按钮 (9)6.3.2重列按钮 (10)6.3.3难度选择按钮 (10)6.4清除两个一样的符合条件的方块 (10)6.5过关设置 (10)7.结果分析 (11)7.1优点 (11)7.2缺点 (11)8.总结 (11)参考文献 (13)致谢 (14)1.引言网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。

单机连连看java课程设计

单机连连看java课程设计

单机连连看java课程设计一、课程目标知识目标:1. 理解Java语言的基本语法和面向对象编程思想;2. 掌握连连看游戏的规则及逻辑设计;3. 学会使用Java编写图形用户界面(GUI)程序;4. 了解Java事件处理机制及其在游戏中的应用。

技能目标:1. 能够独立设计并编写连连看游戏的代码;2. 学会运用面向对象的方法对游戏进行模块化设计;3. 掌握调试和优化Java程序的方法;4. 提高问题分析、解决和程序设计的能力。

情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发其创新意识;2. 培养学生团队协作、沟通交流的能力;3. 增强学生的自信心和自主学习能力,使其具备敢于面对和克服困难的品质;4. 培养学生遵守程序设计规范,养成良好的编程习惯。

课程性质:本课程为实践性较强的学科,注重理论联系实际,以学生动手实践为主。

学生特点:学生具备一定的Java基础,对编程有一定了解,但实践能力参差不齐。

教学要求:教师应关注学生的个体差异,因材施教,引导学生主动探究,注重培养学生的实践能力和创新精神。

通过本课程的学习,使学生能够将所学知识运用到实际项目中,提高其编程水平和综合素质。

二、教学内容1. Java基本语法复习:变量、数据类型、运算符、控制语句(条件语句、循环语句);2. 面向对象编程基础:类与对象、构造方法、封装、继承、多态;3. 图形用户界面(GUI)设计:Swing图形用户界面组件、布局管理器、事件处理机制;4. 连连看游戏规则及逻辑设计:游戏规则介绍、游戏逻辑分析、数据结构选择;5. 游戏程序编写:游戏界面设计、游戏逻辑实现、事件监听与处理;6. 调试与优化:程序调试技巧、性能优化方法;7. 代码规范与编程习惯:命名规范、代码格式、注释规范。

教学大纲安排:第一周:Java基本语法复习;第二周:面向对象编程基础;第三周:图形用户界面(GUI)设计;第四周:连连看游戏规则及逻辑设计;第五周:游戏程序编写(上);第六周:游戏程序编写(下);第七周:调试与优化;第八周:代码规范与编程习惯。

Java连连看程序代码

Java连连看程序代码
Button b26,b27,b28,b29,b30,bc;
Button p1,p2,br,bt1,bt2; //p1、p2为选定的按钮
Panel panel1,panel2;
int d[][]={ //用来和界面的按钮建立映射关系
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0}
};
public static void main(String[] args)
panel1.add(b7); panel1.add(b8); panel1.add(b9);
panel1.add(b10); panel1.add(b11); panel1.add(b12);
panel1.add(b13); panel1.add(b14); panel1.add(b15);
b4=new Button(String.valueOf(d[1][4]));
b5=new Button(String.valueOf(d[1][5]));
b6=new Button(String.valueOf(d[2][1]));
b7=new Button(String.valueOf(d[2][2]));
{0,0,0,0,0,0,0}
};
this.d=d;
suiji(); //调用随机函数,产生随机数;
f.setVisible(false);

用JAVA设计手机连连看游戏

用JAVA设计手机连连看游戏

且 ,此款游戏与以往的连连看游戏不同 ,可以让用户自主设计
连连 看 游 戏 的 背 景 图 片 ,还 有 欢 快 的 背 景 音乐 舒 缓 神 经 ,增 添
了更多乐趣。因此,此款游戏有一定有广大的市场。
2基 本概 念 ’
, / 下 一 关 为上 一关 减 去5 秒 的时 间
t o t a l Ti me 一 = 5:
能 的 部分 代码 如 下 :
p u b l i c v o i d o n C l i c k ( Vi e w v )( n e w Al e r t Di a l o g . B u i l d e r ( S e t D i a l o g . t h i s )

以支持手机运行 。
2 l 世 纪 ,人们 所 承 受 的 来 自各 方 面 的压 力越 来 越 大 ,人 们
需要一个释放 自我的途径 。连连看小游戏 ,规则简单 ,生动有
趣 ,对 于 需 要 释 放 压 力 ,打 发 时 间 的 人 来 说 ,是不 二 之 选 。并
p r i v a t e R e f r e s h Ha n d l e r r e f r e s h H a n d l e r =n e w R e f r e s h Ha n d l e r 0 ;
s t a r t P l a y 0 ; )
2 Mi c r o E d i t i o n ,主 要 针 对 嵌入 式 系 统 ,包 括 手 机 、P DA 等 。针
( 3 )游戏 更 换 图片 代码 。
对 手 机应 用程 序 的开发 ,s u n 还 提供 了 免费 的J 2 ME Wi r e l e s s
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA课程设计报告实验题目:“连连看”游戏程序设计小组成员:王飞铭、毛建平、陈银银、黄庭威成员分工:组长:王飞铭王飞铭:actionPerformed():重来一局按钮的响应事件及remove()判断移去方法毛建平:xiao()消去方法、estimateEven()方法陈银银:init()方法:游戏主界面和main()方法实现产生随机数方法、fraction()刷新黄庭威:randomBuild()方法(一):内容:1:功能需求和分析:(1)该游戏界面为:数字方格类型,由6竖7横的直线平行垂直交叉而组成,分别是6行5列凹方块拼接,共有30格小方块。

方块上随机分布一些数字,数字的要求是至少两两相同,位置随机打乱。

(2)游戏规则是:将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则视为无效,如果一对数字连接成功,那么就会消失在界面,并且分数标签会加分,继续游戏,直到游戏结束。

(3)帮助项目:在游戏过程中,如果出现没有可以连接的数字对时候,可按界面下方按钮刷新重新排列,便可以可继续游戏。

(4)退出游戏:可以鼠标点击“退出”按钮,结束游戏。

(5)再来一局:本局结束或者中途不想继续玩本局,可以点击界面下方的再来一局,系统会自动再次重新开始。

(二):主要方法:首先我们定义了一个lianliankan类,实现了接口ActionListener:1)init()方法:实现游戏主界面;2)randomBuild()方法:用来产生游戏按钮上的随机数;3) fraction()方法:游戏界面最上面用来加分;4)reload()方法:用来刷新,重载,窗体界面;5)estimateEven()方法:判断按钮数字是否满足消去的条件linePassOne()方法:判断第一按钮同左右侧空按钮之间⑦rowPassOne()方法:判断第一按钮同列空按钮与第二按钮;6)actionPerformed(ActionEvent e)方法:用来实现重来一局按钮的响应事件;7)main(String[] args)方法:主函数;8)xiao()方法:消去方法(三):界面要求:用图形界面实现,参考下系统流程图如下NO(四):代码设计package数字版;/**本游戏是连连看,上面出现的都是数字,点击两个相邻的或者之间没有第三个的,便可以消去。

如果不能消除完,便可以按重列,这样会把剩余的重新排列。

便可以继续玩了,或者您可以按重置,重新再来一局!!!!*/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; //判断是否有按钮被选中intx0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validate LV; //游戏按钮的位置坐标int i,j,k,n;//消除方法控制public void init(){mainFrame=new JFrame("数字版连连看");thisContainer =mainFrame.getContentPane();thisContainer.setLayout(new BorderLayout());//setLayout()设置用户界面上的屏幕组件的格式布局,是java图形界面编程的常用方法。

此处是方位布局centerPanel=new JPanel(); //中间部分(用来放游戏显示内容)southPanel=new JPanel();//下面部分(用来放退出,重列,重新开始按钮)northPanel=new JPanel(); //上面部分(用来记录得分情况)centerPanel.setBackground(newColor(145,145,44));//灰色northPanel.setBackground(newColor(245,252,252));//颜色redthisContainer.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]=newJButton(String.valueOf(grid[cols+1][rows+1])); //换下一行diamondsButton[cols][rows].setBackground(newColor(199,190,33));//颜色diamondsButton[cols][rows].setFont(newjava.awt.Font("黑体", 1, 22));diamondsButton[cols][rows].setBorder(BorderFactory.createLoweredBevelBorder());diamondsButton[cols][rows].addActionListener(this);centerPanel.add(diamondsButton[cols][rows]);}}exitButton=new JButton("退出");exitButton.setFont(new java.awt.Font("黑体", 1, 16));exitButton.setPreferredSize(new Dimension(55,30)); exitButton.setBorder(BorderFactory.createRaisedBe velBorder());exitButton.setBackground(newColor(25,155,100));//颜色绿色exitButton.addActionListener(this);resetButton=new JButton("刷新");resetButton.setFont(new java.awt.Font("黑体", 1, 16));resetButton.setPreferredSize(newDimension(55,30));resetButton.setBorder(BorderFactory.createRaisedB evelBorder());resetButton.setBackground(new Color(77, 175,100));//蓝色resetButton.addActionListener(this);newlyButton=new JButton("再来一局");newlyButton.setFont(new java.awt.Font("黑体", 1, 16));newlyButton.setPreferredSize(newDimension(100,33));newlyButton.setBorder(BorderFactory.createRaisedB evelBorder());newlyButton.setBackground(newColor(255,192,203));//粉色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(300,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.pars eInt(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() { //相同的情况下能不能消去。

相关文档
最新文档