Jogo da velha simples

7 respostas
dfarias

Jogo da velha para ser criado em java.

* To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package JogoDaVelha1;
import java.util.Scanner;
import javax.swing.JOptionPane;

/**
 * @author Quelvin Morgado
 */
public class Main
{
    public static void main(String[] args)
    {
       int campo [][] = new int [3][3];
       int i, j, vencedor, vez, jogada, numero_jogadas;
       boolean jogada_ok;
       String x;
       // Inicializando o campo de jogo.
       for (i=0; i<3; i++)
       {
       for (j=0; j<3; j++)
           {
               campo[i][j] = 0;
           }
       }

       // Exibindo as instru�äes.
       JOptionPane.showMessageDialog(null,"JOGO DA VELHA - v1 - Instrucoes");
       JOptionPane.showMessageDialog(null,"O jogador 1 comeca. Digite o numero de 1 a 9 do teclado "
               + "numerico correspondente a cada uma das 'casas' do campo. "
               + "Ganha o jogador que completar uma linha da horizontal, "
               + "vertical ou diagonal.");

       vencedor = 0;
       vez = 1;
       numero_jogadas = 0;

       while (vencedor == 0)
       do{
        // Desenhando o campo de jogo
      //clrscr; // Limpa a tela
      System.out.println();
      System.out.println("  "+campo[1][1]+" | "+campo[1][2]+" | "+campo[1][3]);
      System.out.println(" -----------");
      System.out.println("  "+campo[2][1]+" | "+campo[2][2]+" | "+campo[2][3]);
      System.out.println(" -----------");
      System.out.println("  "+campo[3][1]+" | "+campo[3][2]+" | "+campo[3][3]);
      System.out.println();
//consegui identifica a parte com erro. Parte acima, 7 linhas

      do {// Aqui teremos uma consistencia.
         x = JOptionPane.showInputDialog(" Digite a jogada, jogador "+vez+": ");
         jogada = Integer.parseInt(x);

         // Verificamos se a jogada â?? v lida.
         if (jogada == 1)
         {
            if (campo[3][1] == 0)
            {
               campo[3][1] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 2)
         {
            if (campo[3][2] == 0)
            {
               campo[3][2] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 3)
         {
            if (campo[3][3] == 0)
            {
               campo[3][3] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 4)
         {
            if (campo[2][1] == 0)
            {
               campo[2][1] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 5)
         {
            if (campo[2][2] == 0)
            {
               campo[2][2] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 6)
         {
            if (campo[2][3] == 0)
            {
               campo[2][3] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 7)
         {
            if (campo[1][1] == 0)
            {
               campo[1][1] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 8)
         {
            if (campo[1][2] == 0)
            {
               campo[1][2] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 9)
         {
            if (campo[1][3] == 0)
            {
               campo[1][3] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         {
            jogada_ok = false;
         }
       }while(jogada_ok = true); // Atâ?? que uma jogada v lida seja feita

      numero_jogadas = numero_jogadas + 1; // Incrementa o contador de jogadas

      //Verificando se temos algum ganhador.
      if ((campo[1][1] == campo[1][2]) && (campo[1][2] == campo[1][3]) && (campo[1][3] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[2][1] == campo[2][2]) && (campo[2][2] == campo[2][3]) && (campo[2][3] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[3][1] == campo[3][2]) && (campo[3][2] == campo[3][3]) && (campo[3][3] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[1][1] == campo[2][1]) && (campo[2][1] == campo[3][1]) && (campo[3][1] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[1][2] == campo[2][2]) && (campo[2][2] == campo[3][2]) && (campo[3][2] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[1][3] == campo[2][3]) && (campo[2][3] == campo[3][3]) && (campo[3][3] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[1][1] == campo[2][2]) && (campo[2][2] == campo[3][3]) && (campo[3][3] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[1][3] == campo[2][2]) && (campo[2][2] == campo[3][1]) && (campo[3][1] != 0))
      {
         vencedor = vez;
      }
      else if (numero_jogadas == 9)
      {
         vencedor = 3; // Se j  foram 9 rodadas e ninguâ??m ganhou, o jogo acaba
      }

      if (vez == 2)
      {
         vez = 1;
      }
      else
      {
         vez = 2;
      }

      // Mostrando o campo de jogo final.
      //clrscr;
      System.out.println();
      System.out.println("  "+campo[1][1]+" | "+campo[1][2]+" | "+campo[1][3]);
      System.out.println(" -----------");
      System.out.println("  "+campo[2][1]+" | "+campo[2][2]+" | "+campo[2][3]);
      System.out.println(" -----------");
      System.out.println("  "+campo[3][1]+" | "+campo[3][2]+" | "+campo[3][3]);
      System.out.println();

      if (vencedor == 1)
      {
         JOptionPane.showMessageDialog(null," Parabens Jogador 1! Voce ganhou!");
      }
         else if(vencedor == 2)
      {
         JOptionPane.showMessageDialog(null," Parabens Jogador 2! Voce ganhou!");
      }
      else
      {
         JOptionPane.showMessageDialog(null," Ops... Deu velha...");
      }

     //readkey;
    } while (vencedor!=0);// alterei aqui!! 
  }
}

7 Respostas

R

coloca a pilha de erro ae… informa o erro que ta ocorrendo que fica mais facil

pmlm

Os arrays em Java começam no índice 0.

Assim, se tens um array[3][3], as suas posíções serão [0][0], [0][1], [0][2], [1][0], [1][1], [1][2], [2][0], [2][1] e [2][2]

Andre_Rosa

E porque você acha que está errado? O compilador está emitindo alguma mensagem? Não guarde as informações em segredo. :wink:

dfarias

tá dando o seguinte erro:

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 3
at JavaApplication51.Main.main(Main.java:45)
Java Result: 1

dfarias

pmlm:
Os arrays em Java começam no índice 0.

Assim, se tens um array[3][3], as suas posíções serão [0][0], [0][1], [0][2], [1][0], [1][1], [1][2], [2][0], [2][1] e [2][2]

Erro novamente
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 3
at JavaApplication51.Main.main(Main.java:73)
Java Result: 1

vou postar o código alterado no proximo post

dfarias
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package JavaApplication51;
import java.util.Scanner;
import javax.swing.JOptionPane;

/**
* @author Quelvin Morgado
*/
public class Main
{
    public static void main(String[] args)
    {  
       int campo [][] = new int [3][3];
       int i, j, vencedor, vez, jogada, numero_jogadas;
       boolean jogada_ok;
       String x;
       // Inicializando o campo de jogo.
       for (i=0; i<3; i++)
       {
       for (j=0; j<3; j++)
           {
               campo[i][j] = 0;
           }
       }

       // Exibindo as instru�äes.
       JOptionPane.showMessageDialog(null,"JOGO DA VELHA - v1 - Instrucoes");
       JOptionPane.showMessageDialog(null,"O jogador 1 comeca. Digite o numero de 1 a 9 do teclado "
               + "numerico correspondente a cada uma das 'casas' do campo. "
               + "Ganha o jogador que completar uma linha da horizontal, "
               + "vertical ou diagonal.");

       vencedor = 0;
       vez = 1;
       numero_jogadas = 0;

       while (vencedor == 0)
       do{
        // Desenhando o campo de jogo
      //clrscr; // Limpa a tela
      System.out.println();
      System.out.println("  "+campo[0][0]+" | "+campo[0][1]+" | "+campo[0][2]);
      System.out.println(" -----------");
      System.out.println("  "+campo[1][0]+" | "+campo[1][1]+" | "+campo[1][2]);
      System.out.println(" -----------");
      System.out.println("  "+campo[2][0]+" | "+campo[2][1]+" | "+campo[2][2]);
      System.out.println();
//consegui identifica a parte com erro. Parte acima, 7 linhas

      do {// Aqui teremos uma consistencia.
         x = JOptionPane.showInputDialog(" Digite a jogada, jogador "+vez+": ");
         jogada = Integer.parseInt(x);

         // Verificamos se a jogada â?? v lida.
         if (jogada == 1)
         {
            if (campo[3][1] == 0)
            {
               campo[3][1] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 2)
         {
            if (campo[3][2] == 0)
            {
               campo[3][2] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 3)
         {
            if (campo[3][3] == 0)
            {
               campo[3][3] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 4)
         {
            if (campo[2][1] == 0)
            {
               campo[2][1] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 5)
         {
            if (campo[2][2] == 0)
            {
               campo[2][2] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 6)
         {
            if (campo[2][3] == 0)
            {
               campo[2][3] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 7)
         {
            if (campo[1][1] == 0)
            {
               campo[1][1] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 8)
         {
            if (campo[1][2] == 0)
            {
               campo[1][2] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         if (jogada == 9)
         {
            if (campo[1][3] == 0)
            {
               campo[1][3] = vez;
               jogada_ok = true;
            }
            else
            {
               jogada_ok = false;
            }
         }
         else
         {
            jogada_ok = false;
         }
       }while(jogada_ok = true); // Atâ?? que uma jogada v lida seja feita

      numero_jogadas = numero_jogadas + 1; // Incrementa o contador de jogadas

      //Verificando se temos algum ganhador.
      if ((campo[1][1] == campo[1][2]) && (campo[1][2] == campo[1][3]) && (campo[1][3] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[2][1] == campo[2][2]) && (campo[2][2] == campo[2][3]) && (campo[2][3] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[3][1] == campo[3][2]) && (campo[3][2] == campo[3][3]) && (campo[3][3] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[1][1] == campo[2][1]) && (campo[2][1] == campo[3][1]) && (campo[3][1] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[1][2] == campo[2][2]) && (campo[2][2] == campo[3][2]) && (campo[3][2] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[1][3] == campo[2][3]) && (campo[2][3] == campo[3][3]) && (campo[3][3] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[1][1] == campo[2][2]) && (campo[2][2] == campo[3][3]) && (campo[3][3] != 0))
      {
         vencedor = vez;
      }
      else if ((campo[1][3] == campo[2][2]) && (campo[2][2] == campo[3][1]) && (campo[3][1] != 0))
      {
         vencedor = vez;
      }
      else if (numero_jogadas == 9)
      {
         vencedor = 3; // Se j  foram 9 rodadas e ninguâ??m ganhou, o jogo acaba
      }

      if (vez == 2)
      {
         vez = 1;
      }
      else
      {
         vez = 2;
      }

      // Mostrando o campo de jogo final.
      //clrscr;
       System.out.println();
      System.out.println("  "+campo[0][0]+" | "+campo[0][1]+" | "+campo[0][2]);
      System.out.println(" -----------");
      System.out.println("  "+campo[1][0]+" | "+campo[1][1]+" | "+campo[1][2]);
      System.out.println(" -----------");
      System.out.println("  "+campo[2][0]+" | "+campo[2][1]+" | "+campo[2][2]);
      System.out.println();

      if (vencedor == 1)
      {
         JOptionPane.showMessageDialog(null," Parabens Jogador 1! Voce ganhou!");
      }
         else if(vencedor == 2)
      {
         JOptionPane.showMessageDialog(null," Parabens Jogador 2! Voce ganhou!");
      }
      else
      {
         JOptionPane.showMessageDialog(null," Ops... Deu velha...");
      }

     //readkey;
    } while (vencedor!=0);// alterei aqui!!
  }
}
pmlm

Ainda tens muitas referências à posição 3…

Criado 16 de julho de 2011
Ultima resposta 17 de jul. de 2011
Respostas 7
Participantes 4