用java实现拼图游戏,用java实现拼图游戏课设

本文目录一览:

用java做拼图游戏,怎样再载入图片时,让其中的一块是空白

采用网格布局,初始化的时候,将图片写入到JLabel中,最后一个JLabel不写入任何信息,再用集合将JLabel添加进去,利用Collections.shuffle(集合)方法将其打乱顺序,然后一个循环将其写入网格布局中~

急求用JAVA编写的图形化界面拼图小游戏代码!

个人见解,总体需要两个二维数组(一个存储正确图片排列 Array1 String[][],一个随机生成图片排列Array2 String[][]),一个一维数组来存储图片的名称Array3 String[],。

(1)如何实现图片移动

使用带图片的按钮(button =new button(getImage(Array[2][4]))),然后通过单击事件来更改按钮的图片来源。 把被点击的按钮的图片路径更新到空白按钮,并且把被点击的按钮图片更新的成空白。其实就是变换两个的二维数组成员的值。更新Array2中的值,然后重绘按钮

如 Array[2][3]=“3.image”

Array[2][4]=“”

图片3.image右移

Array[2][3]=“”

Array[2][4]=“3.image”

(2)如何判断被单击的网格与空白的网格是否相邻

后台使用一个二维数组Array2来做映射。通过二维数组的下标来判断,如Array[2][3]可以知道Array[2][4]是它右边的那个。

(3)如何实现图片的随机摆放

比如有9个图片,你可以命名1-9,然后初始化一个长度为9的一维String 数组Array3来存储图片的名称,

使用随机函数给二维数组Array2赋值,如Array2[2][3]=Array3[random()],这里要判断这个图片是否已被使用过,可以通过遍历Array2来确定当前Array3这个值是否已经在Array2中了

最后通过Array1 和Array2来比较,用户的拼图是否正确。

语言组织能力有限。讲不太清楚。

java做的拼图游戏怎么实现更换图片哦

编写拼图按钮的监听器类,该类为主类的内部类。

在actionPerformed()方法中,首先获得空白按钮和被单击按钮的所在行和列,

然后判断这两个按钮是否相邻,如果相邻则将被单击按钮显示的图片移动到空白按钮上,并令被单击按钮显示空白图片,以及将在类中声明的空白按钮对象设置为被单击的按钮对象

思路就这样,我给你个示例代码,你参考参考哦:

class ImgButtonAction implements ActionListener {

public void actionPerformed(ActionEvent e) {

String emptyName = emptyButton.getName();

char emptyRow = emptyName.charAt(0);

char emptyCol = emptyName.charAt(1);

JButton clickButton = (JButton) e.getSource();

String clickName =clickButton.getName();

char clickRow = clickName.charAt(0);

char clickCol = clickName.charAt(1);

if(Math.abs(clickRow – emptyRow) + Math.abs(clickCol – emptyCol) == 1) {

emptyButton.setIcon(clickButton.getIcon()) ;

clickButton.setIcon(new ImageIcon(“img/00.jpg”));

emptyButton = clickButton;

}

}

}

大概就这样了

希望对你有帮助哈

java拼图游戏不成功为什么

从代码和错误提示来看

button 对象只有声明, 并没有赋值,默认是null .用一个null对象去调用方法,那么就会抛出异常.没有进行异常处理,程序就会崩溃

button.addActionListener(new ImgButtonAction());// 出错…因为button为null

解决办法: button对象先赋值(不能为null)再使用

建议你写代码,添加必要的注释,对每个方法的说明, 以及对每个比较难一眼看懂的算法进行说明.,会比较好.

以前也写过一个拼图,比较简单.思路跟你可能差不多:

1:用按钮去显示图片的一部分.并且每个按钮都有个value属性,从1,2,3,….9,0

(value为0按钮在最后面,并不显示图片) .想要胜利,就需要图片按钮的value属性能满足下面的二维数组

int[][] win = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 0 } };

2: 点击图片按钮,判断是否可以交换位置,如果旁边是value为0的按钮,那么可以交换位置,每次交换后,记得判断是否胜利

3: 打乱的图片按钮,不一定能求解, 如果不能求解,那么重新打乱

效果图大概是

java制作拼图游戏的流程图,是个简单的3*3的拼图游戏

用swing先构建一个框架 调用APPlet然后建几个变量就行了 3*3就是需要8个 绑定个小数据库

判定下当这8个先用按钮代替 ,最后再把按钮整成图片就行了 ,还有格局设置大小,都是这个位置是为真就完了,主要还是看你怎么布局了,先看看SWING的那个布局,就这个思想

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/199263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-04 19:15
下一篇 2024-12-04 19:15

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论