import java.awt.*;
import java.awt.event.*;
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();
ChessPad()
{
setSize(440,440);
setLayout(null);
setBackground(Color.green);
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(377,97,6,6);
g.fillOval(97,377,6,6);g.fillOval(377,377,6,6);
g.fillOval(217,217,6,6);
}
public void mousePressed(MouseEvent e)
{
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("");
}
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("");
}
}
}
}
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);
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.棋子颜色=-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);
}
}
//添加棋盘窗口import java.awt.*;
class Chess extends Frame
{
ChessPad chesspad=new ChessPad();
Chess()
{
setVisible(true);
setLayout(null);
Label lable=new Label("单机左键下棋,双击吃棋子,右键单机悔棋",Label.CENTER);
add(lable);
lable.setBounds(70,55,440,26);
lable.setBackground(Color.orange);
add(chesspad);
chesspad.setBounds(70,90,440,440);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
pack();
setSize(600,550);
}
}
class code
{
public static void main(String[] args)
{
Chess chess=new Chess();
}
}
java围棋小游戏
5星 · 超过95%的资源 需积分: 18 188 浏览量
2012-12-19
14:12:58
上传
评论 5
收藏 1KB RAR 举报
gwd777
- 粉丝: 123
- 资源: 15
最新资源
- docker一键安装包
- Screenshot_20240430_144340_com.ss.android.ugc.live.jpg
- 回到山沟沟.mp3
- 基于matlab实现自适应波束形成RLS及LMS算法仿真源程序1.rar
- 基于matlab实现自己编写的基于卡尔曼滤波的利用加速度传感器的计步器,测试数据是传感器放在腰部和手臂 .rar
- 基于matlab实现阵列信号处理,波束形成.rar
- 111111111111111111
- 基于matlab实现计步器编程;对当前的计步器装置的数值算法模拟 .rar
- Mdb学习查看PW;access;mdb;pw;password;patch
- 基于matlab实现关于语音信号声源定位DOA估计所用的一些传统算法.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈