Java拼图游戏算法上的问题

kolnick 2011-10-13 09:52:27
package PinTu;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;

public class MyPintu implements ActionListener
{

private JButton b00, b01, b02, b10, b11, b12, b20, b21, b22;

private JFrame frame;

private ImageIcon[][] icon = new ImageIcon[3][3];
private ImageIcon Icon = new ImageIcon("");
private int[][] picture = new int[3][3];
private int[] array;

private Random random;

private boolean bol;

public void play() //生成0-8范围不同的随机数保存到数组当中
{
List<Integer> list = new ArrayList<Integer>();

while (true)
{
int num = (int) (Math.random() * 9);
boolean isHave = false;
for (int j = 0; j < list.size(); j++)
{
if (num == list.get(j))
{
isHave = true;
break;
}
}
if (!isHave)
{
list.add(num);
}

if (list.size() == 9)
{
break;
}
}
int[] arr = new int[9];
int t = 0;
while (t < 9)
{
for (Iterator iter = list.iterator(); iter.hasNext();)
{
String value = iter.next().toString();
int a = Integer.parseInt(value);
arr[t++] = a;
}
}
t = 0;
for (int i = 0; i < picture.length; i++)
{
for (int j = 0; j < picture[i].length; j++)
{
picture[i][j] = arr[t++];
}
}
for (int i = 0; i < picture.length; i++)
{
for (int j = 0; j < picture[i].length; j++)
{
icon[i][j] = new ImageIcon("src/picture/" + picture[i][j]
+ ".jpg");
}
}
b00.setIcon(icon[0][0]);
b01.setIcon(icon[0][1]);
b02.setIcon(icon[0][2]);
b10.setIcon(icon[1][0]);
b11.setIcon(icon[1][1]);
b12.setIcon(icon[1][2]);
b20.setIcon(icon[2][0]);
b21.setIcon(icon[2][1]);
b22.setIcon(icon[2][2]);
}

public MyPintu()
{
frame = new JFrame("拼图游戏");
b00 = new JButton();
b00.addActionListener(this);
b01 = new JButton();
b01.addActionListener(this);

b02 = new JButton();
b02.addActionListener(this);

b10 = new JButton();
b10.addActionListener(this);

b11 = new JButton();
b11.addActionListener(this);

b12 = new JButton();
b12.addActionListener(this);

b20 = new JButton();
b20.addActionListener(this);

b21 = new JButton();
b21.addActionListener(this);

b22 = new JButton();
b22.addActionListener(this);

this.init();
}

public void init()
{
frame.setLayout(new GridLayout(3, 3));
frame.add(b00);
frame.add(b01);
frame.add(b02);
frame.add(b10);
frame.add(b11);
frame.add(b12);
frame.add(b20);
frame.add(b21);
frame.add(b22);
frame.setSize(300, 300);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

public static void main(String[] args)
{
MyPintu m = new MyPintu();
m.play();
}

public void actionPerformed(ActionEvent e)
{
if (e.getSource() == b00)
{
bol = false;
for (int i = 0; i < picture.length; i++)
{

for (int j = 0; j < picture[i].length; j++)
{
if (picture[i][j] == 0)
{
int n;
n = picture[i][j];
picture[i][j] = picture[0][0];
picture[0][0] = n;
ImageIcon icon1 = new ImageIcon("src/picture/"
+ picture[i][j] + ".jpg");
b00.setIcon(icon1);
ImageIcon icon2 = new ImageIcon("src/picture/"
+ picture[0][0] + ".jpg");
/*
* 一旦第i个==0 那么就进行替换按钮背景 在这里下面写不下去了 !!!!谁麻烦帮我修改下

* */
bol = true;
break;
}
}
if (bol == true)
{
break;
}
}
}
}
}
...全文
141 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kolnick 2011-10-15
  • 打赏
  • 举报
回复
有谁能帮帮我吗
Robbie枫叶EX 2011-10-14
  • 打赏
  • 举报
回复
代码这么长,看着都晕了,占位学习中!

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧