rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » Java基础

一个Java围棋程序源代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

public class Chess extends Frame  ChessPad chesspad= new ChessPad();  Chess()   add(chesspad);
  chesspad.setBounds(70,90,440,440);   Label label=new Label("click to point,doubled_click to remove,right click to back",Label.CENTER);
  add(label);
  label.setBounds(70,55,440,24);
  label.setBackground(Color.orange);   addWindowListener    new WindowAdapter()     public void windowClosing(WindowEvent e)      System.exit(0);    }    
  setLayout(null);
  setVisible(true);
  setSize(600,550);  
 public static void main(String args[])   Chess chess=new Chess(); }

class ChessPad extends Panel implements MouseListener, ActionListener,FocusListener  int x = -1, y = -1, chessColor = 1;  String blackname="",whitename="";

 Button button=new Button("start");
 Button inputButton=new Button("input");  TextField text_1=new TextField("black please"),
     text_2=new TextField(""),//white please
     text_3=new TextField("black'name"),
     text_4=new TextField("white'name");  ChessPad()   add(inputButton);
  inputButton.setBounds(35,5,60,26);
  inputButton.addActionListener(this);
  inputButton.addFocusListener(this);   add(text_3);
  text_3.setBounds(115,5,90,24);
  text_3.addFocusListener(this);
  text_3.setEditable(true);   add(text_4);
  text_4.setBounds(315,5,90,24);
  text_4.addFocusListener(this);
  text_4.setEditable(true);   add(button);
  button.setBounds(35,36,60,26);
  button.setEnabled(false);
  button.addActionListener(this);   add(text_1);
  text_1.setBounds(115,36,90,24);
  text_1.setEnabled(false);
  text_1.setEditable(false);   add(text_2);
  text_2.setBounds(315,36,90,24);
  text_2.setEnabled(false);
  text_2.setEditable(false);   setSize(440,440);
  setLayout(null);
  setBackground(Color.orange);
  addMouseListener(this);  
 public void paint(Graphics g)   for(int i=80;i<=400;i=i+20)    g.drawLine(40,i,400,i);   g.drawLine(40,420,400,420);   for(int j=40;j<=380;j=j+20)    g.drawLine(j,80,j,420);   g.drawLine(400,80,400,420);   g.fillOval(97,137,6,6);
  g.fillOval(337,137,6,6);
  g.fillOval(97,377,6,6);
  g.fillOval(337,377,6,6);
  g.fillOval(217,257,6,6);  
 public void focusGained(FocusEvent e)   Component com=(Component)e.getSource();
  if(com==text_3)    text_3.setText("");   else if(com==text_4)    text_4.setText("");     public void focusLost(FocusEvent e)     public void mousePressed(MouseEvent e)
 { 

  if(blackname.length()==0||whitename.length()==0)    JOptionPane.showMessageDialog(this,"please input the player's name,and click input button before you start chess!","reminder",JOptionPane.WARNING_MESSAGE);   
  else if(blackname.equals("black'name"))    JOptionPane.showMessageDialog(this,"please input the black player's name,and click input button","reminder",JOptionPane.WARNING_MESSAGE);   else if(whitename.equals("white'name"))    JOptionPane.showMessageDialog(this,"please input the white player's name,and click input button","reminder",JOptionPane.WARNING_MESSAGE);   else if(e.getModifiers()==InputEvent.BUTTON1_MASK)    
   x = (int)e.getX();
   y = (int)e.getY();    int a=(x+10)/20,b=(y+10)/20;    ChessPoint_black chesspoint_black=new ChessPoint_black(this);
   ChessPoint_white chesspoint_white=new ChessPoint_white(this);    if(x/20<2||y/20<4||x/20>19||y/20>20)         
   else     if(chessColor==1)      this.add(chesspoint_black);
     chesspoint_black.setBounds(a*20-10,b*20-10,20,20);
     chessColor=chessColor*(-1);      text_2.setText(this.whitename+" please");
     text_1.setText("");     
    else if(chessColor==-1)      this.add(chesspoint_white);
     chesspoint_white.setBounds(a*20-10,b*20-10,20,20);
     chessColor=chessColor*(-1);      text_1.setText(this.blackname+" please");
     text_2.setText("");    }  }  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)   if(e.getSource()==inputButton)    blackname=text_3.getText();
   whitename=text_4.getText();
   if(blackname.length()==0||whitename.length()==0)     JOptionPane.showMessageDialog(this,"you did not complete the information!","reminder",JOptionPane.WARNING_MESSAGE);    else if(blackname.equals("black'name"))     JOptionPane.showMessageDialog(this,"please input the black player's name","reminder",JOptionPane.WARNING_MESSAGE);    else if(whitename.equals("white'name"))     JOptionPane.showMessageDialog(this,"please input the white player's name","reminder",JOptionPane.WARNING_MESSAGE);    else     inputButton.setEnabled(false);
    text_3.removeFocusListener(this);
    text_3.setEnabled(false);
    text_4.setEnabled(false);
    button.setEnabled(true);
    text_1.setEnabled(true);
    text_1.setText(blackname+" please");
    text_2.setEnabled(true);   }   else if(e.getSource()==button)    inputButton.setEnabled(true);
   text_3.setEnabled(true);
   text_4.setEnabled(true);
   button.setEnabled(false);
   text_1.setEnabled(false);
   text_2.setEnabled(false);    this.removeAll();    chessColor=1;    add(button);
   button.setBounds(35,36,60,26);    add(text_1);
   text_1.setBounds(115,36,90,24);
   text_1.setText("black please");    add(text_2);
   text_2.setBounds(315,36,90,24);
   text_2.setText("");    add(inputButton);
   inputButton.setBounds(35,5,60,26);    add(text_3);
   text_3.setText("black'name");
   text_3.addFocusListener(this);
   text_3.setBounds(115,5,90,24);    add(text_4);
   text_4.setText("white'name");
   text_4.setBounds(315,5,90,24);    blackname="";
   whitename="";    }

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.chessColor=1;
   chesspad.text_2.setText("");
   chesspad.text_1.setText(chesspad.blackname+" please");  }  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);
  chesspad=p;
  addMouseListener(this);  
 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.chessColor=-1;
   chesspad.text_1.setText("");
   chesspad.text_2.setText(chesspad.whitename+" please");  }  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);  }
}

 PS:功能介绍

        游戏操作:左击下子,右击悔棋,双击吃子(本程序还无程序判断能力)

        输入:输入选手名,然后点击“input”即可开始游戏,点击“Start”从新开始。

   

顶一下
(0)
踩一下
(0)