分享

产生不重复随机数

 duduwolf 2005-10-11

小弟初学java,最近在写一个拼图游戏的程序,在写得过程中考虑要随机排列图片,经过一番研究终于学出来了,我写得这个不是很好,在高手看来可能算不了什么,但是对于我这样初学的人我想还会有一些帮助的,所以就把它写出来了!!!

代码如下:

package PT;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Icon;
import java.awt.GridLayout;
import javax.swing.ImageIcon;
class myPanel extends JPanel implements ActionListener
{
 JButton bt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8,bt9; 
 ImageIcon ico1=new ImageIcon("1.jpg");
 ImageIcon ico2=new ImageIcon("2.jpg");
 ImageIcon ico3=new ImageIcon("3.jpg");
 ImageIcon ico4=new ImageIcon("4.jpg");
 ImageIcon ico5=new ImageIcon("5.jpg");
 ImageIcon ico6=new ImageIcon("6.jpg");
 ImageIcon ico7=new ImageIcon("7.jpg");
 ImageIcon ico8=new ImageIcon("8.jpg");
 ImageIcon[] ico=new ImageIcon[8];
 public myPanel()
 {
  int[] a=new int[8];
  for(int i=0;i<a.length;i++)
  {
   a[i]=(int)(Math.random()*8+1);
   for(int j=0;j<i;j++)
   {
    if(a[j]==a[i])
    {
     i--;
     break;
    }
   }
  }

  for(int i=0;i<a.length;i++)
  {
   ico[i]=new ImageIcon(a[i]+".jpg");
//   System.out.println (a[i]);
   
  }
  this.setLayout(new GridLayout(3,3));
  
  bt1=new JButton(ico[0]);
  bt2=new JButton(ico[1]);
  bt3=new JButton(ico[2]);
  bt4=new JButton(ico[3]);
  bt5=new JButton(ico[4]);
  bt6=new JButton(ico[5]);
  bt7=new JButton(ico[6]);
  bt8=new JButton(ico[7]);
  bt9=new JButton();
  
  bt1.setSize(200,200);
  bt2.setSize(200,200);
  bt3.setSize(200,200);
  bt4.setSize(200,200);
  bt5.setSize(200,200);
  bt6.setSize(200,200);
  bt7.setSize(200,200);
  bt8.setSize(200,200);
  bt9.setSize(200,200);
  this.add(bt1);
  this.add(bt2);
  this.add(bt3);
  this.add(bt4);
  this.add(bt5);
  this.add(bt6);
  this.add(bt7);
  this.add(bt8);
  this.add(bt9);
  bt1.addActionListener(this);
  bt2.addActionListener(this);
  bt3.addActionListener(this);
  bt4.addActionListener(this);
  bt5.addActionListener(this);
  bt6.addActionListener(this);
  bt7.addActionListener(this);
  bt8.addActionListener(this);
  bt9.addActionListener(this);

 }
 
 public void actionPerformed(ActionEvent e)
 {
  if (e.getSource()==bt1)
  {
   if(bt2.getIcon()==null)
   {
    bt2.setIcon(bt1.getIcon());
    bt1.setIcon(null);
   }
   if(bt4.getIcon()==null)
   {
    bt4.setIcon(bt1.getIcon());
    bt1.setIcon(null);
   }
  }
  if(e.getSource()==bt2)
  {
   if(bt1.getIcon()==null)
   {
    bt1.setIcon(bt2.getIcon());
    bt2.setIcon(null);
   }
   if(bt3.getIcon()==null)
   {
    bt3.setIcon(bt2.getIcon());
    bt2.setIcon(null);
   }
   if(bt5.getIcon()==null)
   {
    bt5.setIcon(bt2.getIcon());
    bt2.setIcon(null);
   }
  }
  if(e.getSource()==bt3)
  {
   if(bt2.getIcon()==null)
   {
    bt2.setIcon(bt3.getIcon());
    bt3.setIcon(null);
   }
   if(bt6.getIcon()==null)
   {
    bt6.setIcon(bt3.getIcon());
    bt3.setIcon(null);
   }
  }
  if(e.getSource()==bt4)
  {
   if(bt1.getIcon()==null)
   {
    bt1.setIcon(bt4.getIcon());
    bt4.setIcon(null);
   }
   if(bt5.getIcon()==null)
   {
    bt5.setIcon(bt4.getIcon());
    bt4.setIcon(null);
   }
   if(bt7.getIcon()==null)
   {
    bt7.setIcon(bt4.getIcon());
    bt4.setIcon(null);
   }
  }
  
  if(e.getSource()==bt5)
  {
   if(bt2.getIcon()==null)
   {
    bt2.setIcon(bt5.getIcon());
    bt5.setIcon(null);
   }
   if(bt4.getIcon()==null)
   {
    bt4.setIcon(bt5.getIcon());
    bt5.setIcon(null);
   }
   if(bt6.getIcon()==null)
   {
    bt6.setIcon(bt5.getIcon());
    bt5.setIcon(null);
   }
   if(bt8.getIcon()==null)
   {
    bt8.setIcon(bt5.getIcon());
    bt5.setIcon(null);
   }
  }
  if(e.getSource()==bt6)
  {
   if(bt3.getIcon()==null)
   {
    bt3.setIcon(bt6.getIcon());
    bt6.setIcon(null);
   }
   if(bt5.getIcon()==null)
   {
    bt5.setIcon(bt6.getIcon());
    bt6.setIcon(null);
   }
   if(bt9.getIcon()==null)
   {
    bt9.setIcon(bt6.getIcon());
    bt6.setIcon(null);
   }
  }
  if(e.getSource()==bt7)
  {
   if(bt4.getIcon()==null)
   {
    bt4.setIcon(bt7.getIcon());
    bt7.setIcon(null);
   }
   if(bt8.getIcon()==null)
   {
    bt8.setIcon(bt7.getIcon());
    bt7.setIcon(null);
   }
  }
  if(e.getSource()==bt8)
  {
   if(bt5.getIcon()==null)
   {
    bt5.setIcon(bt8.getIcon());
    bt8.setIcon(null);
   }
   if(bt7.getIcon()==null)
   {
    bt7.setIcon(bt8.getIcon());
    bt8.setIcon(null);
   }
   if(bt9.getIcon()==null)
   {
    bt9.setIcon(bt8.getIcon());
    bt8.setIcon(null);
   }
  }
  if(e.getSource()==bt9)
  {
   if(bt6.getIcon()==null)
   {
    bt6.setIcon(bt9.getIcon());
    bt9.setIcon(null);
   }
   if(bt8.getIcon()==null)
   {
    bt8.setIcon(bt9.getIcon());
    bt9.setIcon(null);
   }
  }
 }

}

class Select
{
 JFrame myFrame=new JFrame("拼图");
 public Select()
 {
  myFrame.getContentPane().add(new myPanel());
  myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  myFrame.setSize(600,600);
  myFrame.setResizable(false);
  myFrame.pack();
  myFrame.setVisible(true);
 }
 
 public static void main(String[] args)
 {
  new Select();
 }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约