开窗户游戏

package tuxing;
 
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
 
class ChuangKou extends JFrame implements ActionListener
{
    int x=0,y=0;
    Panel p1 = new Panel();
    int COUNT = 2;
    JButton[][] jButtons = new JButton[COUNT][COUNT];
    int[][] a = new int[][]//到达周围的四个窗户以及本身
    {
    { 1, 0 },
    { 0, 1 },
    { -1, 0 },
    { 0, -1 },
    {0,0} };
  public void start()
  {
      //this.removeAll();
      jButtons = new JButton[COUNT][COUNT];
 
        for (int i = 0; i < COUNT; i++)
            for (int j = 0; j < COUNT; j++)
            {
 
                jButtons[i][j] = new JButton();
                jButtons[i][j].setName(i + " " + j);
                //jButtons[i][j].setText(i + " " + j);
                jButtons[i][j].setBackground(Color.white);
                jButtons[i][j].addActionListener(this);
                p1.add(jButtons[i][j]);
            }
 
  }
    public ChuangKou(int n,int x,int y)
    {
        this.COUNT=n;
        setSize(500, 500);
        //setUndecorated(true);
        //this.setOpacity(32f);
         setLocation(x, y);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setTitle("开窗户"+COUNT);
         p1.setLayout(new GridLayout(COUNT, COUNT));
        add(p1);
        start();
        validate();
 
 
    }
 
    public boolean isWin()
    {
        int op = 0;
        for (int i = 0; i < COUNT; i++)
            for (int j = 0; j < COUNT; j++)
                if (jButtons[i][j].getBackground() == Color.white)
                    op = 1;
 
        if (op == 0)
        {
            for (int i = 0; i < COUNT; i++)
                for (int j = 0; j < COUNT; j++)
                    jButtons[i][j].setBackground(Color.red);
 
 
             //p1.removeAll();
            return true;
        }
 
        return false;
    }
 
    public void actionPerformed(ActionEvent e)
    {
        for (int i = 0; i < 5; i++)
        {
            String s = ((JButton) e.getSource()).getName();
            String[] s1 = s.split(" ");
            int x = Integer.valueOf(s1[0]);
            int y = Integer.valueOf(s1[1]);
            int tx = x + a[i][0];
            int ty = y + a[i][1];dg
            //if (tx != x || ty != y)
                if (tx >= 0 && tx <= COUNT - 1 && ty >= 0 && ty <= COUNT - 1)
                {
                    System.out.println(tx + "  " + ty);
                    if (jButtons[tx][ty].getBackground() == Color.white)//如果是白色就变成黑色
                        jButtons[tx][ty].setBackground(Color.black);
                    else if (jButtons[tx][ty].getBackground() == Color.black)
                        jButtons[tx][ty].setBackground(Color.white);
                }
        }
        if (isWin())
        {
//            JPopupMenu.
//             
//             Calendar c1=Calendar.getInstance();
//             int s=c1.get(Calendar.MINUTE)*60+c1.get(Calendar.SECOND);
//             while(true)
//             {
//                 c1=Calendar.getInstance();
//                 int s1=c1.get(Calendar.MINUTE)*60+c1.get(Calendar.SECOND);
//                 if(s1-s>=10)break;
//                 
//             }
 
                  this.dispose();
            COUNT++;//难度增加
            x=this.getLocation().x;
            y=this.getLocation().y;
            new ChuangKou(COUNT, x,  y);
 
            return;
        }
    }
 
}
 
public class KaiChaungHu
{
    public static void main(String[] args)
    {
 
                ChuangKou c1 = new ChuangKou(2,0 ,0);
 
 
        //while(true)
        //{
        ///    c1.start();
        //}
    }
}

 

posted @ 2016-07-27 13:23  -梦里不知身是客  阅读(163)  评论(0编辑  收藏  举报