通过鼠标 左键点下表示圈 右键点下表示叉
轮流点 当圈或叉 在横或竖或斜线上有三个相连时 就赢了
同样的 代码很丑 界面很丑
没有加上判断平局的情况
package 棋;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class Chess extends JFrame{
int[][] m=new int[3][3];
public static final int width=600;
JLabel l=new JLabel("");
JButton[][] bb=new JButton[3][3];
public static void main(String[] args){
int n=3;
Chess chess=new Chess();
}
public Chess(){
JPanel p=new JPanel();
p.setLayout(new GridLayout(3, 3));
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
bb[i][j]=new JButton();
bb[i][j].addMouseListener(new MouseL());
p.add(bb[i][j]);
}
}
this.setLayout(new GridLayout(2, 1));
this.add(p);
this.add(l);
this.pack();
this.setVisible(true);
this.setSize(new Dimension(width, width));
}
class MouseL implements MouseListener{
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
JButton b=(JButton)e.getSource();
if(!b.getText().equals("")){
return;
}
int code=e.getButton();
if(code==e.BUTTON1){//button1左键 button2右键
b.setText("o");
}else if(code==e.BUTTON2){
b.setText("x");
}else{
b.setText("x");
}
isWin();
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
boolean isWin(){
//检查每行
for(int i=0;i<3;i++){
String a=bb[i][0].getText();
String b=bb[i][1].getText();
String c=bb[i][2].getText();
if(!a.equals("")&&a.equals(b)&&a.equals(c)){
if(a.equals("o")){//left
l.setText("左键胜利");
return true;
}else{
l.setText("右键胜利");
return true;
}
}
}
//检查每列
for(int i=0;i<3;i++){
String a=bb[0][i].getText();
String b=bb[1][i].getText();
String c=bb[2][i].getText();
if(!a.equals("")&&a.equals(b)&&a.equals(c)){
if(a.equals("o")){//left
l.setText("左键胜利");
return true;
}else{
l.setText("右键胜利");
return true;
}
}
}
//斜向检查
String a=bb[0][0].getText();
String b=bb[1][1].getText();
String c=bb[2][2].getText();
if(!a.equals("")&&a.equals(b)&&a.equals(c)){
if(a.equals("o")){//left
l.setText("左键胜利");
return true;
}else{
l.setText("右键胜利");
return true;
}
}
a=bb[0][2].getText();
b=bb[1][1].getText();
c=bb[2][0].getText();
if(!a.equals("")&&a.equals(b)&&a.equals(c)){
if(a.equals("o")){//left
l.setText("左键胜利");
return true;
}else{
l.setText("右键胜利");
return true;
}
}
return false;
}
}
}
效果图: