close

import java.util.Random;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JFrame{
public static void main(String[]args){


Random random = new Random();
JPanel kkkkkk = new JPanel();
int number = 0;
int array[] = new int[16];
boolean b;

for(int i=0;i<16;i++)
{
b = true;
while(b) {
b = false;
number = random.nextInt(16)+1;
for(int j=0;j<array.length;j++) {
if(array[j]==number) {
b = true;
}
}
}
array[i] = number;
}

 


JFrame window=new JFrame("n-puzzle");
window.setSize(300, 100);
JButton button[]=new JButton[16];
JPanel jplPanel = new JPanel();
jplPanel.setLayout(new GridLayout(4,4,8,8));

for (int i = 0; i < 16; i++){
button[i] = new JButton();
button[i].setSize(30,30);
button[i].setText(Integer.toString(array[i]));
if(array[i]==16)
{
button[i].setText("");
System.out.println(i);
}
button[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
if(array[0]==1&&array[3]==4&&array[4]==5&&array[6]==7&&array[7]==8&&array[9]==10&&array[12]==13&&array[13]==14&&array[14]==15&&array[15]==16)
{JOptionPane.showMessageDialog(null,"Done!");
}
//JOptionPane.showMessageDialog(null,"ggggggggggggg");

int a=0,d=0;
for (int i = 0; i < 16; i++)
{
if(array[i]==16)
{
a=i;
}
}

if(a>3&&a<16)
{
if(e.getSource() == button[a-4])
{

//按下按鈕後事件
button[a-4].setText("");
button[a].setText(Integer.toString(array[a-4]));
d=array[a];
array[a]=array[a-4];
array[a-4]=d;
}
}

if(a<12&&a>-4)
{
if(e.getSource() == button[a+4])
{ //按下按鈕後事件
button[a+4].setText("");
button[a].setText(Integer.toString(array[a+4]));
d=array[a];
array[a]=array[a+4];
array[a+4]=d;
}
}
if(a>-1&&a<15)
{
if(e.getSource() == button[a+1])
{
//按下按鈕後事件
button[a+1].setText("");
button[a].setText(Integer.toString(array[a+1]));
d=array[a];
array[a]=array[a+1];
array[a+1]=d;
}
}
if(a<16&&a>0)
{
if(e.getSource() == button[a-1])
{
//按下按鈕後事件
button[a-1].setText("");
button[a].setText(Integer.toString(array[a-1]));
d=array[a];
array[a]=array[a-1];
array[a-1]=d;

 

 


}
}

 


}
}
);
jplPanel.add(button[i]);
}

window.getContentPane().add(jplPanel, BorderLayout.CENTER);
window.setSize(400,400);
window.setVisible(true);
}

}

arrow
arrow
    全站熱搜

    christin023 發表在 痞客邦 留言(0) 人氣()