Jogo da velha simples

Jogo da velha para ser criado em java.

[code] * 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!!
    }
    }
    [/code]

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

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]

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

tá dando o seguinte erro:

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

[quote=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][/quote]

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

[code]/*

  • 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!!

}
}[/code]

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