六一儿童节-王者连连看

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

王者连连看

  • 游戏介绍
  • 核心
  • ‍总结:

游戏介绍

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

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

六一儿童节-王者连连看_第1张图片
六一儿童节-王者连连看_第2张图片
六一儿童节-王者连连看_第3张图片


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

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

核心

  核心用到的就是一些连线消除的算法,定时器,按钮的监听还有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);
		}
	}


‍总结:

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

你可能感兴趣的:(java,开发语言,游戏)