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

📄 wzq.java

📁 单机版五子棋
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
class ChessPad extends Panel implements MouseListener,ActionListener
{  int x=-1,y=-1, 棋子颜色=1;
   int stor[][] = new int[19][19];
   Button button=new Button("重新开局"); 
   TextField text_1=new TextField("请黑棋下子"),
             text_2=new TextField();
   ChessPad()
   {  setSize(440,440);
      setLayout(null);setBackground(Color.gray);
      addMouseListener(this);add(button);button.setBounds(10,5,60,26);
      button.addActionListener(this);
      add(text_1);text_1.setBounds(90,5,90,24);
      add(text_2);text_2.setBounds(290,5,90,24);
      text_1.setEditable(false);text_2.setEditable(false);
   }
   public void paint(Graphics g)              
   {  for(int i=40;i<=380;i=i+20)
       {  g.drawLine(40,i,400,i);
       }
      g.drawLine(40,400,400,400);
      for(int j=40;j<=380;j=j+20)
       { g.drawLine(j,40,j,400);
       }
       g.drawLine(400,40,400,400); 
       g.fillOval(97,97,6,6); g.fillOval(337,97,6,6);
       g.fillOval(97,337,6,6);g.fillOval(337,337,6,6);
       g.fillOval(217,217,6,6);
   }
   public void mousePressed(MouseEvent e)   
   {  
      int flag=0,v1 = 0,v2 = 0,v3 = 0,v4 = 0,v5=0,v6=0,i_temp;
        if(text_1 == text_2)
        {
        	text_1.setText("请黑旗下子");
            text_2.setText("");
           }
        if(e.getModifiers()==InputEvent.BUTTON1_MASK)
        {  x=(int)e.getX();y=(int)e.getY();   
           ChessPoint_black chesspoint_black=new ChessPoint_black(this);
           ChessPoint_white chesspoint_white=new ChessPoint_white(this);
           int a=(x+10)/20,b=(y+10)/20;
           if(x/20<2||y/20<2||x/20>19||y/20>19)   
            {}
           else
            { 
              if(棋子颜色==1)                     
               {  this.add(chesspoint_black);
                  chesspoint_black.setBounds(a*20-10,b*20-10,20,20);
                  棋子颜色=棋子颜色*(-1);             
                  text_2.setText("请白棋下子");
                  text_1.setText("");
                  stor[a-2][b-2] = 1;
               }
              else if(棋子颜色==-1)  
               {  this.add(chesspoint_white);
                  chesspoint_white.setBounds(a*20-10,b*20-10,20,20);
                   棋子颜色=棋子颜色*(-1);
                  text_1.setText("请黑棋下子");
                  text_2.setText("");
                  stor[a-2][b-2] = -1;
               }
               a = a-2;
               b = b-2;
               for(int i=0;i<19;i++)//判断横向
               for(int j=0;j<15;j++)
               {
               	 v1 = stor[j][i]+stor[j+1][i]+stor[j+2][i]+stor[j+3][i]+stor[j+4][i];
               	 if(v1>=5)
               	 {
               	 	flag = 1;
               	 	break;
               	 	}
               	 else if(v1<=-5)
               	 {
               	 	flag = -1;
               	 	break;
               	 	}
               	 }
               for(int i=0;i<19;i++)//判断列向
               for(int j=0;j<15;j++)
               {
               	 v2 = stor[i][j]+stor[i][j+1]+stor[i][j+2]+stor[i][j+3]+stor[i][j+4];
               	 if(v2>=5)
               	 {
               	 	flag = 1;
               	 	break;
               	 	}
               	 else if(v2<=-5)
               	 {
               	 	flag = -1;
               	 	break;
               	 	}
               	 }
               	for(int i=0;i<15;i++)  //判断左下角
               	for(int j=0;j<i+1;j++)
               	{
               		v3 = stor[14-i][j]+stor[14-i+1][j+1]+stor[14-i+2][j+2]+stor[14-i+3][j+3]+stor[14-i+4][j+4];
               		if(v3>=5)
               	 {
               	 	flag = 1;
               	 	break;
               	 	}
               	 else if(v3<=-5)
               	 {
               	 	flag = -1;
               	 	break;
               	 	}
               		}
               	for(int i=0;i<15;i++)//判断右上角
               	for(int j=0;j<i+1;j++)
               	{
               		v4 = stor[j][14-i]+stor[j+1][14-i+1]+stor[j+2][14-i+2]+stor[j+3][14-i+3]+stor[j+4][14-i+4];
               		if(v4>=5)
               	 {
               	 	flag = 1;
               	 	break;
               	 	}
               	 else if(v4<=-5)
               	 {
               	 	flag = -1;
               	 	break;
               	 	}
               		}
               	for(int i=4;i<19;i++)//判断左上角
               	for(int j=4;j<i+1;j++)
               	{
               		v5 = stor[j][i-4]+stor[j-1][i-4+1]+stor[j-2][i-4+2]+stor[j-3][i-4+3]+stor[j-4][i-4+4];
               		if(v5>=5)
               	 {
               	 	flag = 1;
               	 	break;
               	 	}
               	 else if(v5<=-5)
               	 {
               	 	flag = -1;
               	 	break;
               	 	}
               	}
               	for(int i=18;i>3;i--)//判断右下角
               	for(int j=18;j>i-1;j--)
               	{
               		v6 = stor[j][18-i]+stor[j-1][18-i+1]+stor[j-2][18-i+2]+stor[j-3][18-i+3]+stor[j-4][18-i+4];
               		if(v6>=5)
               	 {
               	 	flag = 1;
               	 	break;
               	 	}
               	 else if(v6<=-5)
               	 {
               	 	flag = -1;
               	 	break;
               	 	}
               	}
               if(flag == 1)
               {
              	 text_1.setText("黑旗赢了!");
              	 text_2.setText("黑旗赢了!");
              	 for(int i=0;i<19;i++)
              	 for(int j=0;j<19;j++)
              	   stor[i][j] = 0;
              	 }
               else if(flag == -1)
               {
                 text_1.setText("白棋赢了!");
              	 text_2.setText("白棋赢了!");
              	 for(int i=0;i<19;i++)
              	 for(int j=0;j<19;j++)
              	   stor[i][j] = 0;
              	 }  
           }
       }
   }
   public void mouseReleased(MouseEvent e){}
   public void mouseEntered(MouseEvent e) {}
   public void mouseExited(MouseEvent e) {}
   public void mouseClicked(MouseEvent e){}
   public void actionPerformed(ActionEvent e)
   {  this.removeAll();棋子颜色=1;
      add(button);button.setBounds(10,5,60,26);
      add(text_1);text_1.setBounds(90,5,90,24);  
      text_2.setText("");text_1.setText("请黑棋下子");
      add(text_2);text_2.setBounds(290,5,90,24);
   }
}
class ChessPoint_black extends Canvas implements MouseListener
{  ChessPad chesspad=null; 
   ChessPoint_black(ChessPad p)
   {  setSize(20,20);chesspad=p; addMouseListener(this);
   }
   public void paint(Graphics g) 
   {  g.setColor(Color.black);g.fillOval(0,0,20,20);
   } 
   public void mousePressed(MouseEvent e) 
   {  if(e.getModifiers()==InputEvent.BUTTON3_MASK)
       {  chesspad.remove(this); 
          chesspad.棋子颜色=1;
          chesspad.text_2.setText("");chesspad.text_1.setText("请黑棋下子");
        }
   }
   public void mouseReleased(MouseEvent e){}
   public void mouseEntered(MouseEvent e) {}
   public void mouseExited(MouseEvent e) {}
   public void mouseClicked(MouseEvent e)
   {  if(e.getClickCount()>=2)
         chesspad.remove(this); 
   }
}
class ChessPoint_white extends Canvas implements MouseListener
{  ChessPad chesspad=null;
   ChessPoint_white(ChessPad p)
   {  setSize(20,20);addMouseListener(this);
      chesspad=p; 
   }
   public void paint(Graphics g)
   {  g.setColor(Color.white);g.fillOval(0,0,20,20); 
   } 
   public void mousePressed(MouseEvent e)
   {  if(e.getModifiers()==InputEvent.BUTTON3_MASK)
        {  chesspad.remove(this);chesspad.棋子颜色=-1;
           chesspad.text_2.setText("请白棋下子"); chesspad.text_1.setText("");
        }
   }
   public void mouseReleased(MouseEvent e){}
   public void mouseEntered(MouseEvent e) {}
   public void mouseExited(MouseEvent e) {}
   public void mouseClicked(MouseEvent e)
   {  if(e.getClickCount()>=2)
         chesspad.remove(this);
   }
}
class Chess extends Frame 
{  ChessPad chesspad=new ChessPad();
   Chess()
   {  setVisible(true);
      setLayout(null);
      Label label=
    new Label("单击左键下棋子,双击吃棋子,用右键单击棋子悔棋",Label.CENTER);
      add(label);label.setBounds(70,55,440,26);
      label.setBackground(Color.gray); 
      add(chesspad);chesspad.setBounds(70,90,440,440);
      addWindowListener(new WindowAdapter()
                 {public void windowClosing(WindowEvent e)
                         {System.exit(0);
                         }
             });
     pack();setSize(600,550);
   }
public static void main(String args[])
   {  Chess chess=new Chess();
   }
}

⌨️ 快捷键说明

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