围棋棋盘的简易实现方法

//MyChess.java

package lin;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;


public class MyChess {

 public static void main(String[] args) {
  new MyFrame();
 }

}

class ChessPad extends Panel implements MouseListener,ActionListener
{
 int x = -1,y = -1,棋子颜色 = 1;
 Button button  = new Button("重新开局");
 TextField text_1 = new TextField("请黑棋下子");
 TextField text_2 = new TextField(10);
 ChessPad()
 {
  this.setSize(440, 440);
  this.setLayout(null);
  this.setBackground(Color.orange);
  this.addMouseListener(this);
  this.add(button);
  button.setBounds(10, 5, 60, 26);
  button.addActionListener(this);
  this.add(text_1);
  this.add(text_2);
  text_1.setBounds(90, 5, 90, 24);
  text_2.setBounds(290, 5, 90, 24);
  text_1.setEditable(false);
  text_1.setEditable(false);
  
 }
 
 @Override
 public void paint(Graphics arg0) {
  // TODO Auto-generated method stub
  for(int i = 40; i <= 380; i = i+20)
  {
   arg0.drawLine(40, i, 400, i);
  }
  arg0.drawLine(40, 400, 40, 400);
  for(int j = 40; j <= 380; j = j+20)
  {
   arg0.drawLine(j, 40, j, 400);
  }
  arg0.drawLine(400, 40, 400, 40);
  arg0.fillOval(97, 97, 6, 6);
  arg0.fillOval(337, 97, 6, 6);
  arg0.fillOval(97, 337, 6, 6);
  arg0.fillOval(337, 337, 6, 6);
  arg0.fillOval(217,217,6, 6);
 }
 @Override
 public void actionPerformed(ActionEvent arg0) {
  // TODO Auto-generated method stub
  this.removeAll();
  this.棋子颜色 = 1;
  this.add(button);
  button.setBounds(10,5,60,26);
  this.add(text_1);
  this.text_1.setBounds(90, 5, 90, 24);
  this.text_2.setText("");
  this.text_1.setText("请黑棋下子");
  this.add(text_2);
  this.text_2.setBounds(290, 5, 90, 24);
 }
 @Override
 public void mouseClicked(MouseEvent arg0) {
  // TODO Auto-generated method stub
  
 }
 @Override
 public void mouseEntered(MouseEvent arg0) {
  // TODO Auto-generated method stub
  
 }
 @Override
 public void mouseExited(MouseEvent arg0) {
  // TODO Auto-generated method stub
  
 }
 @Override
 public void mousePressed(MouseEvent arg0) {
  // TODO Auto-generated method stub
  if(arg0.getModifiers() == InputEvent.BUTTON1_MASK)
  {
   x = (int)arg0.getX();
   y = (int)arg0.getY();
   ChessPiont_black chesspoint_black = new ChessPiont_black(this);
   ChessPoint_white chesspoint_white = new ChessPoint_white(this);
   int a = (x+10)/20;
   int b = (y+10)/20;
   if(x < 40 || x > 380 || y < 40 || y >380)
   {
    
   }
   else
   {
    if(棋子颜色 == 1)
    {
     this.add(chesspoint_black);
     chesspoint_black.setBounds(a*20-10, b*20-10, 20, 20);
     棋子颜色 = (-1)*棋子颜色;
     this.text_1.setText("");
     this.text_2.setText("请黑棋下子");
    }
    else if(棋子颜色 == -1)
    {
     this.add(chesspoint_white);
     chesspoint_white.setBounds(a*20-10,b*20-10, 20, 20);
     this.棋子颜色 = (-1)*this.棋子颜色;
     this.text_1.setText("请黑棋下子");
     this.text_2.setText("");
    }
     
   }
  }
 }
 @Override
 public void mouseReleased(MouseEvent arg0) {
  // TODO Auto-generated method stub
  
 }
 
}
class MyFrame extends Frame
{
 ChessPad chesspad;
 Label label;
 MyFrame()
 {
  chesspad = new ChessPad();
  this.setLayout(null);
  label = new Label("单击左键下棋子,双击吃棋子,用右键单击棋子悔棋",Label.CENTER);
  this.add(label);
  label.setBounds(70, 55, 440, 26);
  label.setBackground(Color.orange);
  this.add(chesspad);
  chesspad.setBounds(70, 90, 440, 440);
  this.pack();
  this.setSize(600,550);
  this.setVisible(true);
 }
}
//ChessPoint_black.java
package lin;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class ChessPiont_black extends Canvas implements MouseListener
{
 ChessPad chesspad = null;
 ChessPiont_black(ChessPad chesspad)
 {
  this.chesspad = chesspad;
  this.setSize(20, 20);
  this.addMouseListener(this);
 }
 
 @Override
 public void paint(Graphics arg0) {
  // TODO Auto-generated method stub
  arg0.setColor(Color.black);
  arg0.fillOval(0, 0, 20, 20);
 }
 @Override
 public void mouseClicked(MouseEvent arg0) {
  // TODO Auto-generated method stub
  if(arg0.getClickCount() >= 2)
  {
   chesspad.remove(this);
  }
 }
 @Override
 public void mouseEntered(MouseEvent arg0) {
  // TODO Auto-generated method stub
  
 }
 @Override
 public void mouseExited(MouseEvent arg0) {
  // TODO Auto-generated method stub
  
 }
 @Override
 public void mousePressed(MouseEvent arg0) {
  // TODO Auto-generated method stub
  if(arg0.getModifiers() == InputEvent.BUTTON3_MASK)
  {
   chesspad.remove(this);
   chesspad.棋子颜色 = 1;
   chesspad.text_2.setText("");
   chesspad.text_1.setText("请黑棋下子");
  }
 }
 @Override
 public void mouseReleased(MouseEvent arg0) {
  // TODO Auto-generated method stub
  
 }
}
 
//ChessPoint_white.java
package lin;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class ChessPoint_white extends Canvas implements MouseListener
{
 ChessPad chesspad = null;
 ChessPoint_white(ChessPad chesspad)
 {
  this.chesspad = chesspad;
  this.setSize(20, 20);
  this.addMouseListener(this);
 }
 
 
 @Override
 public void paint(Graphics arg0) {
  // TODO Auto-generated method stub
  arg0.setColor(Color.white);
  arg0.fillOval(0, 0, 20, 20);
 }
 @Override
 public void mouseClicked(MouseEvent arg0) {
  // TODO Auto-generated method stub
  if(arg0.getClickCount() >= 2)
   chesspad.remove(this);
 }
 @Override
 public void mouseEntered(MouseEvent arg0) {
  // TODO Auto-generated method stub
  
 }
 @Override
 public void mouseExited(MouseEvent arg0) {
  // TODO Auto-generated method stub
  
 }
 @Override
 public void mousePressed(MouseEvent arg0) {
  // TODO Auto-generated method stub
  if(arg0.getModifiers() == InputEvent.BUTTON3_MASK)
  {
   chesspad.remove(this);
   chesspad.棋子颜色 = -1;
   chesspad.text_1.setText("");
   chesspad.text_2.setText("请白棋下"); 
  }
 }
 @Override
 public void mouseReleased(MouseEvent arg0) {
  // TODO Auto-generated method stub
  
 }
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值