首页 > 编程知识 正文

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

时间:2023-12-27 22:26:52 阅读:325084 作者:VLSD

本文目录一览:

用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的那个布局,就这个思想

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。