importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Container;
importjava.awt.FlowLayout;
importjava.awt.Graphics;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JTextField;
publicclass下棋extendsJFrame{
intx=0,y=0;
inta=0;
intx1=0,y1=0,x2=0,y2=0,x3=0,y3=0,x4=0,y4=0;;
booleanfa=true,huatu=true,yin=false;
inta1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,a9=0;
ints[]=newint[10],jj[]=newint[10];
JButtoncongxin,huanse;
JLabeljl;
public下棋(){
Containerc=getContentPane();
c.setLayout(newFlowLayout());
congxin=newJButton(重新开始红队先下);
c.add(congxin);
huanse=newJButton(重新开始蓝队先下);
c.add(huanse);
jl=newJLabel();
c.add(jl,BorderLayout.SOUTH);
addMouseListener(newMouseAdapter(){
publicvoidmousePressed(MouseEventevent){
if(event.isAltDown()){
repaint();
}
x=event.getPoint().x;
y=event.getPoint().y;
inta=mm(x,y);
if(yin){
jl.setForeground(Color.RED);
jl
.setText(游戏已结束,请重新开始);
}
else{
if(s[a]==1){
jl.setForeground(Color.RED);
jl.setText(此位置有棋子,请另选位置重新下棋);
}else{
fa=false;
if(a==1)
a1=1;
if(a==2)
a2=1;
if(a==3)
a3=1;
if(a==4)
a4=1;
if(a==5)
a5=1;
if(a==6)
a6=1;
if(a==7)
a7=1;
if(a==8)
a8=1;
if(a==9)
a9=1;
jl.setText();
repaint();
}
}
s[a]=1;
}
});
congxin.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
for(inti=0;i<s.length;i++){
s[i]=0;
jj[i]=0;
}
fa=true;
repaint();
yin=false;
huatu=true;
jl.setForeground(Color.black);
jl
.setText(红队先下);
}
});
huanse.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
for(inti=0;i<s.length;i++){
s[i]=0;
jj[i]=0;
}
fa=true;
repaint();
yin=false;
huatu=false;
jl.setForeground(Color.black);
jl
.setText(蓝队先下);
}
});
setSize(500,500);
setVisible(true);
}
publicvoidpaint(Graphicsg){
if(fa){
super.paint(g);
intx=100,y=100,c=300,k=300;
for(inti=0;i<300;i+=100)
g.drawRect(x,y+i,c,k-i);
for(inti=0;i<300;i+=100)
g.drawRect(x+i,y,c-i,k);
}else{
jl.setForeground(Color.black);
if(huatu){
g.setColor(Color.red);
if(a1==1){
g.drawLine(120,120,180,180);
g.drawLine(180,120,120,180);
a1=0;
jj[1]=1;
}
if(a2==1){
g.drawLine(220,120,280,180);
g.drawLine(280,120,220,180);
a2=0;
jj[2]=1;
}
if(a3==1){
g.drawLine(320,120,380,180);
g.drawLine(380,120,320,180);
a3=0;
jj[3]=1;
}
if(a4==1){
g.drawLine(120,220,180,280);
g.drawLine(180,220,120,280);
a4=0;
jj[4]=1;
}
if(a5==1){
g.drawLine(220,220,280,280);
g.drawLine(280,220,220,280);
a5=0;
jj[5]=1;
}
if(a6==1){
g.drawLine(320,220,380,280);
g.drawLine(380,220,320,280);
a6=0;
jj[6]=1;
}
if(a7==1){
g.drawLine(120,320,180,380);
g.drawLine(180,320,120,380);
a7=0;
jj[7]=1;
}
if(a8==1){
g.drawLine(220,320,280,380);
g.drawLine(280,320,220,380);
a8=0;
jj[8]=1;
}
if(a9==1){
g.drawLine(320,320,380,380);
g.drawLine(380,320,320,380);
a9=0;
jj[9]=1;
}
huatu=false;
jl
.setText(蓝队下棋);
}else{
g.setColor(Color.blue);
if(a1==1){
g.drawOval(125,125,50,50);
a1=0;
jj[1]=2;
}
if(a2==1){
g.drawOval(225,125,50,50);
a2=0;
jj[2]=2;
}
if(a3==1){
g.drawOval(325,125,50,50);
a3=0;
jj[3]=2;
}
if(a4==1){
g.drawOval(125,225,50,50);
a4=0;
jj[4]=2;
}
if(a5==1){
g.drawOval(225,225,50,50);
a5=0;
jj[5]=2;
}
if(a6==1){
g.drawOval(325,225,50,50);
a6=0;
jj[6]=2;
}
if(a7==1){
g.drawOval(125,325,50,50);
a7=0;
jj[7]=2;
}
if(a8==1){
g.drawOval(225,325,50,50);
a8=0;
jj[8]=2;
}
if(a9==1){
g.drawOval(325,325,50,50);
a9=0;
jj[9]=2;
}
huatu=true;
jl
.setText(红队下棋);
}
dd();
}
}
publicintmm(intx,inty){
if(x>=100&&x=100&&y<200)
a=1;
elseif(x>=200&&x=100&&y<200)
a=2;
elseif(x>=300&&x=100&&y<200)
a=3;
elseif(x>=100&&x=200&&y<300)
a=4;
elseif(x>=200&&x=200&&y<300)
a=5;
elseif(x>=300&&x=200&&y<300)
a=6;
elseif(x>=100&&x=300&&y<400)
a=7;
elseif(x>=200&&x=300&&y<400)
a=8;
elseif(x>=300&&x=300&&y<400)
a=9;
else
a=0;
returna;
}
publicvoiddd(){
if(jj[1]==1&&jj[2]==1&&jj[3]==1){
jl.setForeground(Color.RED);
jl
.setText(红方获胜,连接线1,2,3);
yin=true;
}
if(jj[4]==1&&jj[5]==1&&jj[6]==1){
jl.setForeground(Color.RED);
jl
.setText(红方获胜,连接线4,5,6);
yin=true;
}
if(jj[7]==1&&jj[8]==1&&jj[9]==1){
jl.setForeground(Color.RED);
jl
.setText(红方获胜,连接线7,8,9);
yin=true;
}
if(jj[1]==1&&jj[5]==1&&jj[9]==1){
jl.setForeground(Color.RED);
jl
.setText(红方获获胜,连接线1,5,9);
yin=true;
}
if(jj[3]==1&&jj[5]==1&&jj[7]==1){
jl.setForeground(Color.RED);
jl
.setText(红方获胜,连接线3,5,7);
yin=true;
}
if(jj[1]==1&&jj[4]==1&&jj[7]==1){
jl.setForeground(Color.RED);
jl
.setText(红方获胜,连接线1,4,7);
yin=true;
}
if(jj[2]==1&&jj[5]==1&&jj[8]==1){
jl.setForeground(Color.RED);
jl
.setText(红方获胜,连接线2,5,8);
yin=true;
}
if(jj[3]==1&&jj[6]==1&&jj[9]==1){
jl.setForeground(Color.RED);
jl
.setText(红方获胜,连接线3,6,9);
yin=true;
}
if(jj[1]==2&&jj[2]==2&&jj[3]==2){
jl.setForeground(Color.RED);
jl
.setText(蓝方获胜,连接线1,2,3);
yin=true;
}
if(jj[4]==2&&jj[5]==2&&jj[6]==2){
jl.setForeground(Color.RED);
jl
.setText(蓝方获胜,连接线4,5,6);
yin=true;
}
if(jj[7]==2&&jj[8]==2&&jj[9]==2){
jl.setForeground(Color.RED);
jl
.setText(蓝方获胜,连接线7,8,9);
yin=true;
}
if(jj[1]==2&&jj[5]==2&&jj[9]==2){
jl.setForeground(Color.RED);
jl
.setText(蓝方获胜,连接线1,5,9);
yin=true;
}
if(jj[3]==2&&jj[5]==2&&jj[7]==2){
jl.setForeground(Color.RED);
jl
.setText(蓝方获胜,连接线3,5,7);
yin=true;
}
if(jj[1]==2&&jj[4]==2&&jj[7]==2){
jl.setForeground(Color.RED);
jl.setText(蓝方获胜,连接线1,4,7);
yin=true;
}
if(jj[2]==2&&jj[5]==2&&jj[8]==2){
jl.setForeground(Color.RED);
jl
.setText(蓝方获胜,连接线2,5,8);
yin=true;
}
if(jj[3]==2&&jj[6]==2&&jj[9]==2){
jl.setForeground(Color.RED);
jl
.setText(蓝方获胜,连接线3,6,9);
yin=true;
}
if(s[1]==1&&s[2]==1&&s[3]==1&&s[4]==1&&s[5]==1
&&s[6]==1&&s[7]==1&&s[8]==1&&s[9]==1){
jl.setForeground(Color.RED);
jl
.setText(双方都没获胜,游戏结束);
yin=true;
}
System.out.println(jj[2]);
}
publicstaticvoidmain(String[]args){
下棋s=new下棋();
s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}