Tic Tac Toe java

Soy un principiante en el aprendizaje de la programación Java y estoy haciendo el juego de tic tac toe.

Cuando termino mi juego, no puedo seguir jugando porque el programa se cerrará. ¿Qué debo agregar a este código? Como no uso el método de pintura, no se puede usar repintar ().

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

public class TicTacToeV1 implements ActionListener {
    /*Instance Variables*/
    private JFrame window = new JFrame("Tic-Tac-Toe");
    private JButton button1 = new JButton("");
    private JButton button2 = new JButton("");
    private JButton button3 = new JButton("");
    private JButton button4 = new JButton("");
    private JButton button5 = new JButton("");
    private JButton button6 = new JButton("");
    private JButton button7 = new JButton("");
    private JButton button8 = new JButton("");
    private JButton button9 = new JButton("");

    private String letter = "";
    public static int count = 0;
    public TicTacToeV1(){           
        /*Create Window*/
        window.setSize(300,300);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setLayout(new GridLayout(3,3));

        /*Add Buttons To The Window*/
        window.add(button1);
        window.add(button2);
        window.add(button3);
        window.add(button4);
        window.add(button5);
        window.add(button6);
        window.add(button7);
        window.add(button8);
        window.add(button9);

        /*Add The Action Listener To The Buttons*/
        button1.addActionListener(this);
        button2.addActionListener(this);
        button3.addActionListener(this);
        button4.addActionListener(this);
        button5.addActionListener(this);
        button6.addActionListener(this);
        button7.addActionListener(this);
        button8.addActionListener(this);
        button9.addActionListener(this);

        /*Make The Window Visible*/
        window.setVisible(true);

        String input = JOptionPane.showInputDialog("Please select ur pawn: \n1) X\n2) O");
        int pawn = Integer.parseInt(input);
        if ( input.equals("2")){
              setCount(1);
        }
    }

    public static void setCount (int co){
        count = co;            
    }

    public void actionPerformed(ActionEvent a) {    
        count++;

        /*Calculate Who's Turn It Is*/
        if(count == 1 || count == 3 || count == 5 || count == 7 || count == 9|| count == 11){
            letter = "X";

        } else if(count == 2 || count == 4 || count == 6 || count == 8 || count == 10){
            letter = "O";
        }

        /*Display X's or O's on the buttons*/
        if(a.getSource() == button1){
            button1.setText(letter);
            button1.setEnabled(false);
        } else if(a.getSource() == button2){
            button2.setText(letter);
            button2.setEnabled(false);
        } else if(a.getSource() == button3){
            button3.setText(letter);
            button3.setEnabled(false);
        } else if(a.getSource() == button4){
             button4.setText(letter);
             button4.setEnabled(false);
        } else if(a.getSource() == button5){
             button5.setText(letter);
             button5.setEnabled(false);
        } else if(a.getSource() == button6){
             button6.setText(letter);
             button6.setEnabled(false);
        } else if(a.getSource() == button7){
             button7.setText(letter);
             button7.setEnabled(false);
        } else if(a.getSource() == button8){
             button8.setText(letter);
             button8.setEnabled(false);
        } else if(a.getSource() == button9){
             button9.setText(letter);
             button9.setEnabled(false);
        }       
    }

    public static void main(String[] args){           
            new TicTacToeV1();
    }
}
Respuesta 1

Cree un método llamado reset (o algo similar) y haga que haga lo siguiente:

  1. Restablecer cada valor de texto.
  2. Restablezca el recuento a 0.

Es posible que desee hacer una matriz [] (o una matriz 2D si sabe cómo >> [] []) para los botones, así como también es más fácil de administrar. Esto permite una mejor gestión de muchos botones y elimina muchas repeticiones inútiles que tiene su código actual.

Código de ejemplo:

public static void reset() {
    button1.setText("");
    button1.setEnabled(true);
    //etc...
    count = 0;
}

Luego simplemente llame a reset () cuando finalice el juego (es posible que también desee verificar quién ha ganado).

Espero que esto ayude y DFTBA. :)

Respuesta: 2

Estoy tratando de construir una aplicación web java usando struts2 y tiles en Google App Engine. A continuación se muestra mi archivo tiles.xml <! DOCTYPE tiles-definition PUBLIC "- // Apache Software Foundation // ...

Estoy haciendo la aplicación. en Netbeans en Java. En mi clase tengo 3 instancias de JTree. Quiero verificar en qué nodo del árbol se hace clic o se selecciona en el evento de árbol del mouse. ¿Cómo puedo hacer eso?

Tengo un código de impresión de una cadena, que se pasa en el propio programa. Aquí estoy llamando a este código en el botón Imprimir para obtener una copia impresa. Ahora quiero imprimir un JForm en el mismo código, pero no estoy ...

Tengo un archivo de Excel predefinido que es un tipo de formulario en el que ya se menciona la mayor parte de la información, pero solo tengo que ingresar los detalles de Nombre, Dirección, etc. de mi aplicación hecha en Java. YO ...