基于java的连连看游戏设计-计算机毕业设计

news2024/11/16 0:05:38

项目介绍

基于java设计的连连看游戏规则是模仿网络上的最普通的连连看游戏,主要是鼠标点击两次的图片能否消去的问题。当前,前提是点击两张相同的图片,若是点击的是同一张图片或者两张不同的图片,则不予处理。在两张相同的图片所能连通的所有路径中,如果存在一条转弯点不多于两个的路径(即最多只有3条线),就可以消去,如果没有,则不予处理。

通过这次的毕业设计,学会如何编写一个游戏的程序,以及制作该游戏的整个流程,制作该游戏的步骤,为以后就业和工作提前打下一定的基础。
这个游戏使用JAVA语言开发,如Eclipse的开发平台。游戏的主界面是基于GUI(图形用户界面)的发展,使得游戏界面简单明了。并调用其中的一些功能,完成事件触发功能。希望通过本次的开发设计连连看游戏,给你一个小乐趣的生活。通过定义动态二维数组,按照一定的路径判断算法执行规定的游戏。

这款连连看游戏主要实现如下几项功能:
(1)游戏界面友好美观
(2)玩家进行游戏时方便,快捷,灵活
(3)图片排列,消除清晰
(4)计分功能自动完成
(5)拥有提示功能和自动消除功能
(6)游戏程序运行稳定

算法设计介绍
1.图片消去方法的介绍
在验证两张图片如何消去的判断中,必须使这两张图片满足如下的几个条件,那就是两者都是匹配且可以通过线进行连接(且这线最多不会超过由三条线组成)。如图4-2所示
分为以下三种情况:在这三种情况中,我们还需要三个测试,这三个分别在一条直线路径的检测。因此,将会有三条路径产生。如果在这三条路径上都是空的,这样就是这三种路径(两个转折点)将两个按钮连接起来了。
情况1:相邻的两个
情况2:如果两个按钮不相邻的话,此时就在一个按钮的同行中找到一个空按钮。
(1).找到那个空按钮之后再看另一个按钮的横行到这个空按钮所在的列是否有按钮。
(2).如果没有,那么看一下第一个按钮与其同行的按钮之间是否有按钮。
(3).如果还是没有的话,再从与第一个按钮垂同行的那个空按钮竖向到与第二个按钮的同行判断是否有空按钮,如果没有的话,那么就判断成两个按钮之间的路径能够连通,即可以将两个按钮进行消除。
情况3:若当情况2出现问题后,再从第一个按钮的同一列再次找到一个空的按钮。
(1).找到空按钮之后判断第二个按钮垂直方向到这个空按钮所在的行上是否存在空按钮,
(2).如果不存在,此时再去看看第一个按钮,它的所在列的那个空按钮所在的行到第二个按钮所在的列是否存在空按钮。
(3).如果还是没有的话,那么就再从与第一个按钮在同一行的空按钮横向到与第二个按钮同列是否存在按钮。如果没有的话那么就可以判断为两个按钮可以消去。如何过以上三种情况都无法实现,那么就说明这两个按钮之间不存在连线使得这两个按钮能够正常消去。

效果图

在这里插入图片描述
1 引言 1
1.1 课题研究的意义和目的 1
2 连连看游戏及相关背景介绍 2
2.1 相关背景及介绍 2
2.1.1 计算机 2
2.1.2 电脑游戏 3
2.1.3 连连看 4
3 相关技术支持及介绍 7
3.1 JAVA 7
3.1.1 JAVA语言背景介绍 7
3.1.2 JAVA语言特性 8
3.2 ECLIPSE 8
4 需求相关设计 10
4.1 系统需求分析 10
4.2 程序开发环境 10
4.3 系统功能 10
4.4 模块设计 10
4.4.1 总体框架介绍 10
4.4.2 算法设计介绍 11
5 游戏相关设计 14
5.1 游戏界面设计 14
5.2 相关功能实现 15
6 测试与分析 19
6.1 游戏界面展示 19
6.2 测试中遇到的问题与分析 21
6.2.1 算法设计介绍 21
6.2.2 异常的相关与处理 21
7 结论 23
参 考 文 献 24
致 谢 25

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这份pdf成功让我拿下了蚂蚁金服、字节跳动、小米等大厂的offer

关于程序员,除了做项目来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书! 小编整理出一篇Java进阶架构师之路的核心知识,同时也是面试时面试官必问的知识点,篇章也是…

点云可视化工具

点云可视化工具 平时查看点云文件主要是用CloudCompare,基本上也就是打开看看这个点云大概是个什么样子,很少会在CloudCompare对点云进行处理,它可以直接将点云拖进软件进行显示也还是挺方便的。但是还是有点点不是很方便的地方,…

Linux从入门到进阶学习(Ⅲ):Linux权限管控

目录 1 root用户 1.1 su 1.2 sudo 2 用户和用户组 3 查看权限控制信息 4 修改权限控制 4.1 chmod命令 4.2 chown命令 1 root用户 1.1 su root用户即超级管理员 su [-] [用户名] 切换到root用户,exit退回普通用户从 -:可选&#xff0…

社会网络分析工具—— Gephi 或 NetworkX的简单介绍和比较(源自GPTchat)

文章目录我的原始需求两个工具介绍二者比较下载和使用后续 使用教程我的原始需求 如何对不同认知课堂的教师提问行为序列进 行社会网络分析,计算不同认知层级提问行为的中间 中心度和接近中心度, 在进行社会网络分析时,您首先需要收集数据并…

ArcGIS基础:栅格转ASCII校正简单栅格坐标

【校正栅格坐标】 有一些数据量比较小的栅格数据,位置发生了偏移,可以使用【转换工具】对其位置进行校正。 先看一下原始数据: 有2个栅格数据,如下所示,两个数据本身是一个数据,只不过发生了偏移&#x…

java+ssh+mysql银行收银管理系统

项目介绍: 本系统为基于jspmysql的银行管理系统,包含业务员、管理员登录权限,功能如下: 业务员:可以银行系统,可以查看所有客户账户信息、可以新开账户、销户、修改账户信息、存款、取款、转账等功能。 …

C51——通过震动传感器模块让继电器的灯亮起来

继电器触发 模块可以通过跳线设置高电平触发或者低电平触发(默认) 首先明确继电器的工作逻辑 怎么控制“闭合”开关呢 怎么控制“断开”开关呢 NO口 是常开端 NC 常闭端 COM 公共端 通过IO口向继电器发出低电平 ,使得COM口和NO口连接&…

05. XSS漏洞利用

05. XSS漏洞利用 XSS漏洞利用(上) 获取cookie 什么是cookie? **定义:**cookie是指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密) **作用&…

jsp+ssm计算机毕业设计宠物医院信息管理系统【附源码】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSPSSM mybatis Maven等等组成,B/S模式 Mave…

垃圾回收相关概念

文章目录1. System.gc()的理解2.内存溢出与内存泄漏3. Stop The World4. 并发与并行5. 安全点与安全区域的说明6. 强引用、软引用、弱引用、虚引用1. System.gc()的理解 2.内存溢出与内存泄漏 3. Stop The World 4. 并发与并行 5. 安全点与安全区域的说明 6. 强引用、软引用、弱…

jsp+ssm计算机毕业设计大学生家教服务推荐系统【附源码】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSPSSM mybatis Maven等等组成,B/S模式 Mave…

nuxt.js如何将访问的外部ip修改为本地ip? Do you want Code to open the external website?

问题描述: 提示:Do you want Code to open the external website? 译文:是否希望代码打开外部网站? 说明我们nuxt.js访问的是别人的ip地址,而并不是自己的ip 问题解决: 方法一: 查看packa…

Python中GDAL批量绘制多时相栅格遥感影像的像元时间序列曲线图

本文介绍基于Python中gdal模块,对大量多时相栅格图像,批量绘制像元时间序列折线图的方法。 首先,明确一下本文需要实现的需求:现有三个文件夹,其中第一个文件夹存放了某一研究区域原始的多时相栅格遥感影像数据&#x…

C/C++socket网络编程

目录tcp和udp通信流程图socket函数bind函数listen函数accept函数connect函数recv、recvfrom、read函数send、write、sendto、sendmsg函数close、shutdown函数htonl、ntohl、htons、ntohs本地主机和网络字节序转换inet_addr、inet_aton、inet_ntop,IP地址转换函数set…

Spark-概述+快速上手+运行环境

文章目录概述Spark and HadoopSpark or Hadoop核心模块快速上手Spark运行环境Local(本地)Standalone模式搭建和使用提交参数说明配置历史服务配置高可用(HA)Yarn模式K8S & Mesos 模式部署模式对比端口号概述 Spark 是一种基于内存的快速、通用、可扩…

红米Note7pro安装TWRP及安装PixelExperience系统

参考:https://www.youtube.com/watch?vjB9ksQrxr20&ab_channelTechnologyVikram 所需文件: 一. youtube:Vikram--OTG优盘 (https://www.youtube.com/watch?vjB9ksQrxr20&ab_channelTechnologyVikram) 1.刷入TWRP a. 准备工作:打开…

MR案例:学生排序

排序一、提出任务二、完成任务(一)准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录(二)实现步骤1、创建学生实体类2、创建学生映射器类3、创建学生归并器类4、创建学生驱动器类5、启动学生驱动器类,查看结…

JVM虚拟机简介

、 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指…

IDEA maven 向项目添加模块时出错创建项目失败

原因一:Maven 版本太新 || Java 版本选择了 JAVA 18 选择 java 版本为1.8构建 即可成功,第一次maven项目建立的时候下图红框内容如图即可 原因二:IDEA 的 maven插件 没有加载完成 通常发生在重设 maven 路径|仓库之后 原因三:mav…

RK3588平台开发系列讲解(RKNN篇)RKNN Android平台开发说明

平台内核版本安卓版本RK3588Linux 5.10Android12🚀返回专栏总目录 文章目录 一、 Android 平台 RKNN API 库二、EXAMPLE 使用说明沉淀、分享、成长,让自己和他人都能有所收获!😄 📢RKNN SDK 为带有 RKNPU 的芯片平台提供编程接口,能够帮助用户部署使用 RKNN-Toolkit2导…