六一儿童节-王者连连看

news2024/11/30 10:47:28

庆祝六一 用java实现的连连看练手小游戏

王者连连看

  • 🤣 游戏介绍
  • 😜 核心
  • 😮‍💨总结:

🤣 游戏介绍

  王者连连看游戏的目标是通过消除相同的图案来得分并进入更高级别的挑战。
  游戏分为四个难度
  可以自由选择也可以依次闯关。
  每次时间倒计时100秒 ,你需要在有效时间内连完所有的即为过关。
  ps:图片用的王者荣耀的角色看看你能认出来几个?👣👣👣👣
  基本规则:

  1. 游戏区域中有许多不同形状的图案,玩家需要通过点击相同的图案来消除它们。
  2. 当两个相同的图案被消除时,它们会消失。
  3. 需要在规定的时间内完成每一关的任务目标,否则游戏失败。
  4. 在游戏中,有些图案只能在特定的位置出现,需要注意这些限制条件。
  5. 随着游戏的进行,难度会逐渐增加,需要更高的反应速度和策略能力才能通过更高级别的挑战。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


连连看是一款比较考验玩家眼力和反应速度的益智游戏,要想获胜需要具备以下条件:

  • 快速的反应能力:在游戏中,需要迅速找出相同的图案并消除它们。因此,快速而准确的反应能力是获胜的关键之一。
  • 良好的记忆力:连连看中有些图案的位置可能很相似,需要通过记忆力来辨别它们之间的差异。
  • 细心的观察力:连连看中的图案有时会隐藏在其他图案的背后,需要仔细观察才能发现它们的存在。
  • 策略性的思考能力:在游戏中,不仅要尽快消除图案,还要合理地利用时间和空间,避免出现无用的浪费。
    综上所述,如果想要在连连看游戏中获胜,就需要具备快速反应、良好记忆、细心观察和策略思考等多种能力。

😜 核心

  核心用到的就是一些连线消除的算法,定时器,按钮的监听还有JFrame 可视化程序界面。

  Java算法是指在Java语言中实现的各种计算方法和数据结构。
  Java定时器是一种可以按照指定时间间隔执行特定任务的机制。它可以在程序运行时定期触发某个操作,例如:每隔一段时间执行一次某个方法、每隔一定时间向服务器发送一次数据等。
  监听器(Listener)是一种在面向对象编程中常用的概念,它用于监听某个对象或事件的发生,并在特定条件下做出相应的响应。具体来说,监听器可以被定义为一个类的方法,该方法会在一个特定的对象或事件上被调用,从而执行一些自定义的行为。
  JFrame 是 Java Swing
框架中的一个类,用于创建图形用户界面(GUI)窗口。它继承自Component 类,可以显示出包含其他组件的容器。JFrame
可以包含各种组件,如按钮、文本框、标签等,并且可以设置它们的布局方式和位置。通过 JFrame,创建一个可视化的程序界面。

提醒 消除的部分逻辑

	/**
	 * @Author @zzh
	 * @Description //提醒逻辑处理
	 * @Date 10:12 2023/6/1
	 * @return void
	 **/
	public static void showHint() {
		List<Cell> list = GameTool.getEliMinCell();
		if (list.get(0) == null || list.get(1) == null) {
			JOptionPane.showMessageDialog(Cache.ui, "没有可以消除的啦!!!");
		} else {
			Thread t = new HintShowThread(list.get(0), list.get(1));
			t.start();
		}
	}

	/**
	 * @Author @zzh
	 * @Description //消除逻辑处理
	 * @Date 10:49 2023/6/1
	 * @return void
	 **/
public static List<Cell> getEliMinCell() {
		List<Cell> list = new ArrayList<Cell>();
		
		Cell fcell = null;
		Cell scell = null;
		Cell[][] cells = Cache.cells;
		Loop:for (int i = 0; i < cells.length; i++) {
			for (int j = 0; j < cells[0].length; j++) {
				if (cells[i][j] == null) {
					continue;
				}
				fcell = cells[i][j];
				for (int m = 0; m < cells.length; m++) {
					for (int n = 0; n < cells[0].length; n++) {
						if (cells[m][n] == null) {
							continue;
						}
						if (cells[m][n].getIcon() != fcell.getIcon()) {
							continue;
						}
						if (cells[m][n] == fcell) {
							continue;
						}
						if (isCouldDelete(fcell, cells[m][n])) {
							scell = cells[m][n];
							break Loop;
						}
					}
				}
			}
		}
		
		list.add(fcell);
		list.add(scell);
		return list;
	}

重新排列的部分逻辑:
随机组合排列:

public static void initRandomCells() {
		List<Cell> cells = Cache.tempCells;
		List<ImageIcon> allImages = getAllImage();
		while(cells.size() != 0) {
			Random r = new Random();
			Cell c1 = cells.get(0);
			Cell c2 = null;
			while (c2 == null || c1 == c2) {
				c2 = cells.get(r.nextInt(cells.size()));
			}
			Icon ic = allImages.get(r.nextInt(Const.imageFileSum));
			c1.setIcon(ic);
			c2.setIcon(ic);
			Cache.tempCells.remove(c1);
			Cache.tempCells.remove(c2);
		}
	}


😮‍💨总结:

  六一了,你家的熊孩子出来闹腾了没?应应景
  简单的写个王者连连看锻炼(折磨)一下熊孩子 省的闹腾。
  不管怎么说 还是祝儿童们六一快乐!😆😆😆

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

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

相关文章

cpp: Visitor Pattern

/*****************************************************************//*** \file Gold.h* \brief 访问者模式 Visitor Pattern C 14 行为模式* 2023年6月8日 涂聚文 Geovin Du Visual Studio 2022 edit.文章来源《C新经典设计模式》 王健伟编著 清华大学出版社* \author…

记录:VS2019+OpenCV4.7.0编译

一、准备 OpenCV官网提供了动态库的安装包&#xff0c;但是只有64位&#xff0c;而且没看到编译参数&#xff0c;如果需要32位或者静态链接还是得自己编译。 CMake&#xff1a;https://cmake.org/download/ Visual Studio&#xff1a;https://visualstudio.microsoft.com/zh…

计算机组成原理——中央处理器

文章目录 **一 CPU的功能和基本结构****1 CPU的功能****2 [基本结构](http://t.csdn.cn/bpCt3)****2.1 运算器****2.2 控制器** **二 指令执行过程****1 指令周期****2 指令周期的数据流****2.1 取指周期****2.2 间址周期****2.3 执行周期****2.4 中断周期** **3 指令的执行方案…

chatgpt赋能python:如何下载Python中的jieba包

如何下载Python中的jieba包 随着Python的普及&#xff0c;很多程序员选择使用Python作为自己的主力编程语言。对于自然语言处理方面的任务&#xff0c;jieba是Python中一个非常优秀的分词工具。那么&#xff0c;如何下载和使用Python中的jieba包呢&#xff1f;本篇文章将为您详…

【MySQL数据库 | 第十四篇】多表查询案例

目录 前言&#xff1a; 引入背景&#xff1a; 练习&#xff1a; 前言&#xff1a; 在第十三篇我们已经详细的介绍了多表查询的类别以及每一个类别的语法&#xff1a;【MySQL数据库 | 第十三篇】多表查询&#xff0c;今天我们将通过案例来巩固我们对多表查询语法的熟悉度。 引入…

JavaSE笔记(二)重制版

面向过程篇 前面我们已经认识了Java语言的相关特性&#xff0c;并且已经成功配置好了开发环境&#xff0c;从这节课开始&#xff0c;我们就可以正式进入到Java语言的学习当中了。Java语言是一门面向对象的语言&#xff0c;但是在面向对象之前&#xff0c;我们还得先学会如何面…

【IMX6ULL驱动开发学习】05.IMX6ULL驱动开发_编写第一个hello驱动【熬夜肝】

经过以下四个步骤&#xff0c;终于可以开始驱动开发了 01.安装交叉编译环境【附下载地址】 02.IMX6ULL烧写Linux系统 03.设置IMX6ULL开发板与虚拟机在同一网段 04.IMX6ULL开发板与虚拟机互传文件 目录 一、获取内核、编译内核 二、创建vscode工作区&#xff0c;添加内核目录…

《计算机组成原理》期末考试手写笔记——模块五: 并行主存系统(交叉存储器+顺序存储器“带宽”的计算方法)

目录 &#xff08;一&#xff09;知识点总结 &#xff08;二&#xff09;经典考试例题 1.设主存储器容量为256字&#xff0c;字长为32位&#xff0c;模块数m4&#xff0c;分别用顺序方式和交叉方式进行组织。主存储器的存储周期T200ns&#xff0c;数据总线宽度为32位&#x…

EMQ X(2):EMQ X服务端环境搭建与配置

1 安装 EMQ X 目前支持的操作系统: Centos6Centos7OpenSUSE tumbleweedDebian 8Debian 9Debian 10Ubuntu 14.04Ubuntu 16.04Ubuntu 18.04macOS 10.13macOS 10.14macOS 10.15Windows Server 2019 产品部署建议 Linux 服务器&#xff0c;不推荐 Windows 服务器。 安装的方式有…

【Linux】HTTP协议

目录 &#x1f680;前言&#x1f683;HTTP协议 &#x1f684;1、URL网址&#x1f685;2、URL的编码和解码&#x1f687;3、HTTP协议格式&#x1f688;4、HTTP请求&#x1f689;4.1、 HTTP GET和POST方法&#x1f68b;4.2、HTTP状态码&#x1f68a;4.3、HTTP常见Header &#x1…

redis架构设计: redis-server的启动(硬核分析)

怎么在windows上用clion搭建redis的源码阅读环境 请看我的上一篇文章 redis启动之后都干了什么呢? 我们知道&#xff0c;redis的服务端对应的源码位置是server.c main函数是程序启动的入口 &#xff0c;下面我来一行一行的分析server.c的源码 1、定义时间函数变量 struct …

chatgpt赋能python:Python多种输出格式详解

Python多种输出格式详解 对于Python程序员来说&#xff0c;输出是非常重要的。无论是在开发阶段还是在生产环境中&#xff0c;输出都是我们调试程序和确认程序运行是否正常的重要手段。Python标准库提供了丰富的输出格式&#xff0c;本文介绍了几种常见的输出格式及其使用方法…

因为写不出拖拽移动效果,我恶补了一下Dom中的各种距离

目录 背景 JS Dom各种距离释义 第一个发现 window.devicePixelRatio 的存在 document.body、document.documentElement和window.screen的宽高区别 scrollWidth, scrollLeft, clientWidth关系 元素自身和父级元素的scrollWidth和scrollLeft关系? offsetWidth和clientWid…

【FDA】图像通过傅里叶变换改变光谱风格,实现域自适应

FDA: Fourier Domain Adaptation for Semantic Segmentation, CVPR2020 翻译&#xff1a;CVF2020邻域自适应/语义分割&#xff1a;FDA: Fourier Domain Adaptation for Semantic SegmentationFDA&#xff1a;用于语义分割的傅立叶域自适应算法_傅里叶域适应_HheeFish的博客-CS…

【TCP/IP】多进程服务器的实现(进阶) - 进程和僵尸进程

目录 僵尸(Zombie)进程 僵尸进程的产生机制 僵尸进程的危害 僵尸进程的销毁 wait函数 waitpid函数 进程管理在网络编程中十分重要&#xff0c;如果未处理好&#xff0c;将会导致出现“僵尸进程”&#xff0c;进而影响服务器端对进程的管控。 僵尸(Zombie)进程 第一次听到…

数据类型

常见的数据类型&#xff1a; int&#xff0c;整数类型&#xff08;整形&#xff09;bool&#xff0c;布尔类型str&#xff0c;字符串类型list&#xff0c;列表类型tuple&#xff0c;元组类型dict&#xff0c;字典类型set&#xff0c;集合类型float&#xff0c;浮点类型&#x…

python Web开发 flask轻量级Web框架实战项目--学生管理系统

上次发的一篇文章&#xff0c;有很多朋友私信我要后面的部分&#xff0c;那咱们就今天来一起学习一下吧&#xff0c;因为我的数据库这门课选中的课题是学生管理系统&#xff0c;所以今天就以这个课题为例子&#xff0c;从0到1去实现一个管理系统。数据库设计部分我会专门出一个…

《Java 核心技术面试》课程笔记(十二)

Java 有几种文件拷贝方式&#xff1f;哪一种最高效&#xff1f; 典型回答 Java 有多种比较典型的文件拷贝实现方式&#xff0c;比如&#xff1a;利用java.io 类库&#xff0c;直接为源文件构建一个 FileInputStream 读取&#xff0c;然后再为目标文件构建一个 FileOutputStre…

chatgpt赋能python:Python模块(Module)是什么?

Python模块&#xff08;Module&#xff09;是什么&#xff1f; Python模块&#xff08;Module&#xff09;是指一些预先编写好的代码&#xff0c;这些代码可以在程序中被引入和使用。它们可以包含可以复用的函数、常量和类。Python模块是一种封装程序代码的方法。 下载Python…

领取的AWS亚马逊云服务器到期会扣费的问题解决办法。

本篇文章主要讲解&#xff0c;领取的AWS亚马逊服务器到期后会持续扣费问题的解决办法。 作者&#xff1a;任聪聪 日期&#xff1a;2023年6月8日 关于aws服务器一年免费期限到期后扣费的问题&#xff0c;网络上的文章并不是很全&#xff0c;故此我通过个人的经验进行了如下的教程…