为什么我的tictactoe的checkwinner方法不起作用?

cygmwpex  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(206)

我试图编写一个Tictatcoe游戏,但出了点问题。除了wincheck外,其他一切都正常工作。我不知道为什么它不起作用。
提克塔克级:

package TicTacToe;

import javax.swing.JButton;

public class TicTacToe {

    public static int anz = 0;

    public static boolean stop = false;

    public static boolean isStop() {
        return stop;
    }

    public static int getAnz() {
        return anz;
    }

    public static void setAnz(int anz2) {
        anz = anz2;
    }

    private static tec n = new tec();

    public boolean winner;

    public void setText(){

        //Just to secure that every text is on ""

        if(anz == 0){

        n.getjButton1().setText("");
        n.getjButton2().setText("");
        n.getjButton3().setText("");
        n.getjButton4().setText("");
        n.getjButton5().setText("");
        n.getjButton6().setText("");
        n.getjButton7().setText("");
        n.getjButton8().setText("");
        n.getjButton10().setText("");
        }
    }

    public boolean checkWinner()
    {

        if(!n.getjButton2().getText().equals("") && n.getjButton2().getText().equals(n.getjButton1().getText()) && n.getjButton2().getText().equals(n.getjButton3().getText())) { 
            winner = true;
            winText(n.getjButton2());
            stop = true;
        }
        else if(!n.getjButton6().getText().equals("") && n.getjButton6().getText().equals(n.getjButton5().getText()) && n.getjButton6().getText().equals(n.getjButton4().getText())) {
            winner = true;
            winText(n.getjButton6());
            stop = true;
        }
        else if(!n.getjButton7().getText().equals("") && n.getjButton7().getText().equals(n.getjButton10().getText()) && n.getjButton7().getText().equals(n.getjButton8().getText())) {
            winner = true;
            winText(n.getjButton7());
            stop = true;
        }

        else if(!n.getjButton2().getText().equals("") && n.getjButton2().getText().equals(n.getjButton6().getText()) && n.getjButton2().getText().equals(n.getjButton7().getText())) {
            winner = true;
            winText(n.getjButton2());
            stop = true;
        }
        else if(!n.getjButton1().getText().equals("") && n.getjButton1().getText().equals(n.getjButton5().getText()) && n.getjButton1().getText().equals(n.getjButton10().getText())) {
            winner = true;
            winText(n.getjButton1());
            stop = true;
        }
        else if(!n.getjButton3().getText().equals("") && n.getjButton3().getText().equals(n.getjButton4().getText()) && n.getjButton3().getText().equals(n.getjButton8().getText())){
           winner = true;
           winText(n.getjButton3());
            stop = true;
        }
        else if(!n.getjButton2().getText().equals("") && n.getjButton2().getText().equals(n.getjButton5().getText()) && n.getjButton2().getText().equals(n.getjButton8().getText())) {
            winner = true;
            winText(n.getjButton2());
            stop = true;
        }
        else if(!n.getjButton3().getText().equals("") && n.getjButton3().getText().equals(n.getjButton5().getText()) && n.getjButton3().getText().equals(n.getjButton7().getText())) {
            winner = true;
            winText(n.getjButton3());
            stop = true;
        }
        else if(anz == 9 && winner == false)
        {

            stop = true;
            tec2 t2 = new tec2();
            t2.getLabel().setText("Draw");
            t2.setVisible(true);

        }

        return winner;
    }

    public char XorO(){

        char word = ' ';

        if(anz % 2 == 0){

          word = 'X';  

        }
        else if(anz % 2 == 1){

            word = 'O';

        }

        return word;

    }

    public void winText(JButton b1){

        tec2 t2 = new tec2();

        String msg;

        if(checkWinner() == true){

            msg = b1.getText() + " Is The Winner";
            t2.getLabel().setText(msg);
            t2.setVisible(true);

        }

    }

    public boolean checkOverlapping(JButton b)
    {
        return !b.getText().equals("");

    }

以及jframe类:

package TicTacToe;

import javax.swing.JButton;

public class tec extends javax.swing.JFrame {

    public tec() {
        initComponents();
    }
    private static TicTacToe t = new TicTacToe();
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        TicTacToe = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jButton5 = new javax.swing.JButton();
        jButton7 = new javax.swing.JButton();
        jButton8 = new javax.swing.JButton();
        jButton6 = new javax.swing.JButton();
        jButton10 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("ThiccTacToe");

        TicTacToe.setFont(new java.awt.Font("Curlz MT", 2, 48)); // NOI18N
        TicTacToe.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        TicTacToe.setLabelFor(TicTacToe);
        TicTacToe.setText("TicTacToe");
        TicTacToe.setToolTipText("");

        jButton1.setFont(new java.awt.Font("Franklin Gothic Heavy", 0, 55)); // NOI18N
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setFont(new java.awt.Font("Franklin Gothic Heavy", 0, 55)); // NOI18N
        jButton2.setToolTipText("");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setFont(new java.awt.Font("Franklin Gothic Heavy", 0, 55)); // NOI18N
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jButton4.setFont(new java.awt.Font("Franklin Gothic Heavy", 0, 55)); // NOI18N
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jButton5.setFont(new java.awt.Font("Franklin Gothic Heavy", 0, 55)); // NOI18N
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });

        jButton7.setFont(new java.awt.Font("Franklin Gothic Heavy", 0, 55)); // NOI18N
        jButton7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton7ActionPerformed(evt);
            }
        });

        jButton8.setFont(new java.awt.Font("Franklin Gothic Heavy", 0, 55)); // NOI18N
        jButton8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton8ActionPerformed(evt);
            }
        });

        jButton6.setFont(new java.awt.Font("Franklin Gothic Heavy", 0, 55)); // NOI18N
        jButton6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton6ActionPerformed(evt);
            }
        });

        jButton10.setFont(new java.awt.Font("Franklin Gothic Heavy", 0, 55)); // NOI18N
        jButton10.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton10ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(TicTacToe, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addGap(204, 204, 204)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addComponent(jButton7, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(211, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(TicTacToe, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton7, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(0, 59, Short.MAX_VALUE))
        );

        pack();
        setLocationRelativeTo(null);
    }// </editor-fold>                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        t.setText();
        if(t.isStop() == false){

        if(t.checkOverlapping(jButton2) == false){
        jButton2.setText(""+t.XorO());
        t.setAnz(t.getAnz()+1);
        t.checkWinner();
        }
        }

    }                                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        t.setText();
        if(t.isStop() == false){

        if(t.checkOverlapping(jButton1) == false){
        jButton1.setText(""+t.XorO());
        t.setAnz(t.getAnz()+1);
        t.checkWinner();
        }
        }
    }                                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        t.setText();
        if(t.isStop() == false){

        if(t.checkOverlapping(jButton3) == false){
        jButton3.setText(""+t.XorO());
        t.setAnz(t.getAnz()+1);
        t.checkWinner();
        }
        }
    }                                        

    private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        t.setText();
        if(t.isStop() == false){

        if(t.checkOverlapping(jButton6) == false){
        jButton6.setText(""+t.XorO());
        t.setAnz(t.getAnz()+1);
        t.checkWinner();
        }
        }
    }                                        

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        t.setText();
        if(t.isStop() == false){

        if(t.checkOverlapping(jButton5) == false){
        jButton5.setText(""+t.XorO());
        t.setAnz(t.getAnz()+1);
        t.checkWinner();
        }
        }
    }                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        t.setText();
        if(t.isStop() == false){

        if(t.checkOverlapping(jButton4) == false){
        jButton4.setText(""+t.XorO());
        t.setAnz(t.getAnz()+1);
        t.checkWinner();
        }
        }
    }                                        

    private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        t.setText();
        if(t.isStop() == false){
        if(t.checkOverlapping(jButton7) == false){
        jButton7.setText(""+t.XorO());
        t.setAnz(t.getAnz()+1);
        t.checkWinner();

        }
        }
    }                                        

    private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {                                          
        t.setText();
        if(t.isStop() == false){

        if(t.checkOverlapping(jButton10) == false){
        jButton10.setText(""+t.XorO());
        t.setAnz(t.getAnz()+1);
        t.checkWinner();
        }
        }
    }                                         

    private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        t.setText();
        if(t.isStop() == false){

        if(t.checkOverlapping(jButton8) == false){
        jButton8.setText(""+t.XorO());
        t.setAnz(t.getAnz()+1);
        t.checkWinner();
        }
        }
    }                                        

            public void run() {
                new tec().setVisible(true);
            }

    // Variables declaration - do not modify                     
    private javax.swing.JLabel TicTacToe;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton10;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JButton jButton7;
    private javax.swing.JButton jButton8;
    // End of variables declaration                   

    public JButton getjButton1() {
        return jButton1;
    }

    public JButton getjButton10() {
        return jButton10;
    }

    public JButton getjButton2() {
        return jButton2;
    }

    public JButton getjButton3() {
        return jButton3;
    }

    public JButton getjButton4() {
        return jButton4;
    }

    public JButton getjButton5() {
        return jButton5;
    }

    public JButton getjButton6() {
        return jButton6;
    }

    public JButton getjButton7() {
        return jButton7;
    }

    public JButton getjButton8() {
        return jButton8;
    }

}

我希望有人能帮助我

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题