「java实现拼图」拼图java代码

博主:adminadmin 2022-11-22 18:33:10 81

本篇文章给大家谈谈java实现拼图,以及拼图java代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

请问java怎样实现拼图游戏图片的载入,就是图片怎么分割成一小张一小张的,请详讲。谢谢,最好有代码

public static void cut(String srcImageFile, String descDir, int destWidth,

int destHeight) {

try {

Image img;

ImageFilter cropFilter;

// 读取源图像

BufferedImage bi = ImageIO.read(new File(srcImageFile));

int srcWidth = bi.getHeight(); // 源图宽度

int srcHeight = bi.getWidth(); // 源图高度

if (srcWidth destWidth srcHeight destHeight) {

Image image = bi.getScaledInstance(srcWidth, srcHeight,

Image.SCALE_DEFAULT);

destWidth = 200; // 切片宽度

destHeight = 150; // 切片高度

int cols = 0; // 切片横向数量

int rows = 0; // 切片纵向数量

// 计算切片的横向和纵向数量

if (srcWidth % destWidth == 0) {

cols = srcWidth / destWidth;

} else {

cols = (int) Math.floor(srcWidth / destWidth) + 1;

}

if (srcHeight % destHeight == 0) {

rows = srcHeight / destHeight;

} else {

rows = (int) Math.floor(srcHeight / destHeight) + 1;

}

// 循环建立切片

// 改进的想法:是否可用多线程加快切割速度

for (int i = 0; i rows; i++) {

for (int j = 0; j cols; j++) {

// 四个参数分别为图像起点坐标和宽高

// 即: CropImageFilter(int x,int y,int width,int height)

cropFilter = new CropImageFilter(j * 200, i * 150,

destWidth, destHeight);

img = Toolkit.getDefaultToolkit().createImage(

new FilteredImageSource(image.getSource(),

cropFilter));

BufferedImage tag = new BufferedImage(destWidth,

destHeight, BufferedImage.TYPE_INT_RGB);

Graphics g = tag.getGraphics();

g.drawImage(img, 0, 0, null); // 绘制缩小后的图

g.dispose();

// 输出为文件

ImageIO.write(tag, "JPEG", new File(descDir

+ "pre_map_" + i + "_" + j + ".jpg"));

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

如何用JAVA编写一个图片的拼图游戏

说说思路:

1 本身他不是一个完整的图片,应该被切分成数组,该数组为拼图成功的标准

2 将该数组复制,然后打散元素的顺序

3 初始化一个二维数组方格矩阵

4 允许用户通过鼠标事件将 备选图案中的某个元素放置到二维数组方格矩阵中,并记载其顺序

5 直到所有的方格被填满,与答案数组的元素顺序比较,给出结果

以上是实现拼图的关键思路,其他情况还要考虑,如允许从方格中撤出图像或者与其他图像调整位置,仅代表个人不成熟的想法,希望对你能有所帮助,祝你好运!

java记忆拼图

随机算法是什么?

随便算法有很多,只有一个目的,就是把一堆有序的数据打乱成无序的数据。

1,把bufferedImage[][]获取最大值,然后产生一个不大于最大值的随机数,把该数与数组的第一个值互换,得到一个新的数组,循环多次后基本打乱。如不满意可多次循环。

2最后怎么判断图片拼好了

每交换位置后用原数组与打乱的新数组比较,如果完全一致表示拼好了,如何比较可以用md5对图片加密得到加密后的值进行比较

急求用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实现拼图的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于拼图java代码、java实现拼图的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。