⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memory.java

📁 记忆力游戏
💻 JAVA
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class memory extends WindowAdapter implements MouseListener{
		//20 buttons
		int countnum=0;
	    int clicknum []={21,21};
	    JButton clickbutton []=new JButton[2];// pair of buttons..
		static JFrame f = new JFrame("test your memory");
		static JButton buttonarray []=new JButton[20];
		//20 images
		ImageIcon defaulticon=new ImageIcon ("0.jpg");
		static ImageIcon iconarray []={
			new ImageIcon ("1.jpg"),
			new ImageIcon ("1.jpg"),
			new ImageIcon ("2.jpg"),			
			new ImageIcon ("2.jpg"),		
			new ImageIcon ("3.jpg"),		
			new ImageIcon ("3.jpg"),	
			new ImageIcon ("4.jpg"),
			new ImageIcon ("4.jpg"),
			new ImageIcon ("5.jpg"),
			new ImageIcon ("5.jpg"),
			new ImageIcon ("6.jpg"),
			new ImageIcon ("6.jpg"),
			new ImageIcon ("7.jpg"),
			new ImageIcon ("7.jpg"),
			new ImageIcon ("8.jpg"),
			new ImageIcon ("8.jpg"),
			new ImageIcon ("9.jpg"),
			new ImageIcon ("9.jpg"),
			new ImageIcon ("10.jpg"),
			new ImageIcon ("10.jpg")
			};
	
		static int array[]=new int[20];
		//constructor
        public memory(){
        
        f.setSize(250,320);
        
        	for(int i=0;i<20;i++)
        {
        	buttonarray [i]=new JButton();
             // add listener
        	buttonarray [i].addMouseListener(this);
        }
      	//add memu bar
        JMenuBar mb = new JMenuBar();
 		f.setJMenuBar(mb);
		JMenu m1 = new JMenu("File");
		JMenu m2 = new JMenu("Help");
		mb.add(m1);
		mb.add(m2);	
			
        
        JMenuItem m11 = new JMenuItem("New");
		JMenuItem m12 = new JMenuItem("Quit");
		m1.add(m11);    
	    m1.addSeparator(); 
		m1.add(m12);
		
        JMenuItem m21 = new JMenuItem("how to play");
		JMenuItem m22 = new JMenuItem("about this game");
		m2.add(m21);    
		m2.addSeparator(); 
		m2.add(m22);
		
		 
        
        f.getContentPane().setLayout(new GridLayout(5,4));
        
		
		Monitor bm1 = new Monitor();
		m11.addActionListener(bm1);
        m12.addActionListener(bm1);
		
		
		Monitor bm2 = new Monitor();
		m21.addActionListener(bm2);
		Monitor bm3 = new Monitor();
		m22.addActionListener(bm3);
		
        // window listener
        f.addWindowListener(this);
        f.setVisible(true);
        
        }
        
        
        public  void windowClosing(WindowEvent e){   
       System.exit(0);   } 
       
        
        public static void startGame(){
        //new game...
		for(int i=0;i<20;i++)
        {
        	f.getContentPane().add(buttonarray [i]);
        	buttonarray [i].setVisible(true);
        
        	}
       	
		for(int i=0;i<array.length;i++)
				{
        		array[i]=(int)(Math.random()*20);
					for (int j=0;j<i;j++)
					{
						if (array[j]==array[i])
						i--;
						}
						}
								
        	f.setVisible(true);	
        
        	}
	public void mouseReleased(MouseEvent e) {}
	public void mouseEntered(MouseEvent e) {}
	public void mouseExited(MouseEvent e) {}
	

	public void mouseClicked(MouseEvent e) {}
	public void mousePressed(MouseEvent e) {
	JButton button2=(JButton) e.getSource();
	
	for(int i=0;i<20;i++){
	if (button2.equals(buttonarray [i]))//search the button
	{
	button2.setIcon(iconarray [array [i]]);
	System.out.println("show the icon...");
	
	clickbutton [1]=buttonarray [i];
	clicknum [1]=array [i];
    
    Thread Stopper = new Stopper();
    Stopper.start();
    }	
  }
}
 
public static void main(String args[]) {memory aa=new memory();}

class Stopper extends Thread{
	public void run(){
	System.out.println("new thread");
	if (clicknum[0]!=21&&(((ImageIcon)clickbutton[0].getIcon()).toString().equals(((ImageIcon)clickbutton[1].getIcon()).toString()))&&(clicknum [1]!=clicknum [0]))
	{	
	try
	{
	System.out.println("sleep 1");
	this.sleep(400);
	}
	catch(InterruptedException a)
	{}
	
	clickbutton [0].setVisible(false);
	clickbutton [1].setVisible(false);
	clicknum[0]=clicknum[1]=21;
	clickbutton[0]=clickbutton[1]=null;
	countnum=countnum+1;
	while(countnum==10)
	 {		
		JOptionPane.showMessageDialog(null,"Congratulations");
		countnum=0;
		break;	
	 };
	}
	else
	if (clickbutton[0]!=null&&(((ImageIcon)clickbutton[0].getIcon()).toString().equals(((ImageIcon)clickbutton[1].getIcon()).toString())==false))
	{
	try
	{
	System.out.println("sleep 2");
	Thread.sleep(400);
	}
	catch(InterruptedException a)
	{}	
	clickbutton [0].setIcon(defaulticon);
	clickbutton [1].setIcon(defaulticon);
	clicknum[0]=clicknum[1]=21;
	clickbutton[0]=clickbutton[1]=null;
	}              
	clicknum [0]=clicknum [1];
	clickbutton [0]=clickbutton [1];
	}	
	}
}

class Monitor implements ActionListener {
	public void actionPerformed(ActionEvent e) {
       JMenuItem b =(JMenuItem) e.getSource();
       	if (b.getText().equals("Quit"))
         System.exit(0);   
         else if(b.getText().equals("New"))
         
         {	
         	for(int i=0;i<20;i++)
         	
         	memory.buttonarray[i].setIcon(new ImageIcon("0.jpg"));
         		
         	memory.startGame();
         	
         	}
         
        else if (b.getText().equals("how to play"))
        {	
        	TextArea rule =new TextArea("everytime you click two buttons ,if their color is the same ,they disappeared.if you finish all the button in time,you win.",5,20,1);
        	rule.setFont(new Font( "",Font.BOLD, 18));
        	JOptionPane jpane=new JOptionPane();
        	jpane.add(rule);
        	
       	 	jpane.showMessageDialog(jpane,rule,"how to play",JOptionPane.DEFAULT_OPTION);
        	
            }
          
        else if (b.getText().equals("about this game"))
        {
        	TextArea about =new TextArea("version 1.1,by ruby and qlien,2007/4/11",5,20,1);
        	about.setFont(new Font( "",Font.BOLD, 18));
        	JOptionPane jpane2=new JOptionPane();
        	jpane2.add(about);
        
       	 	jpane2.showMessageDialog(jpane2,about,"how to play",JOptionPane.DEFAULT_OPTION);
        	
            }
           
        }
    }
    

    
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -