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 obteniendo 20k archivos xml pequeños de 1kb a 3kb de tamaño en un minuto. Tengo que escribir todos los archivos a medida que llegan al directorio. A veces, la velocidad de los archivos entrantes aumenta a 100k por minuto. Es ...

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 // ...

Tengo 2 rectángulos con coordenadas Rectángulo1 (x = 100, y = 100, ancho = 200, altura = 50) y Rectángulo2 (x = 100, y = 200, ancho = 200, altura = 50). Cómo establecer una transformación afín para ellos ...

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?