All pastes #594711 Raw Edit

Something

public text v1 · immutable
#594711 ·published 2007-06-29 01:46 UTC
rendered paste body
import java.util.Random;

public class JogoVelha {
  public static void main ( String args[] ) {
    int n1 = 0; String out1 = " ";
    int n2 = 0; String out2 = " ";
    int n3 = 0; String out3 = " ";
    int n4 = 0; String out4 = " ";
    int n5 = 0; String out5 = " ";
    int n6 = 0; String out6 = " ";
    int n7 = 0; String out7 = " ";
    int n8 = 0; String out8 = " ";
    int n9 = 0; String out9 = " ";
    
    System.out.println("Bem-vindo ao Jogo da Velha");
    System.out.println("Você representa o símbolo 'x', e o computador o 'o'");
    System.out.println("Observe a tabela do Jogo da Velha, cada quadrado tem um número");
    System.out.println("  Ex: '3' pertence ao 1º quadrado da 3º coluna, e assim por diante");
    
    String symbol = "";
    String venceu = "nao";
    int x = 0;
    while (x <= 9) {
      int d = 0;
      System.out.println("~~~~~~~~~~       ~~~~~~~~~~");
      System.out.println("1 | 2 | 3        "+out1+" | "+out2+" | "+out3);
      System.out.println("4 | 5 | 6   =>   "+out4+" | "+out5+" | "+out6);
      System.out.println("7 | 8 | 9        "+out7+" | "+out8+" | "+out9);
      System.out.println("~~~~~~~~~~       ~~~~~~~~~~");
      
      if (venceu != "nao") { //Anuncia o vencedor
        if (venceu == "x") { System.out.println("Você ganhou o Jogo da Velha! Parabéns!!!"); }
        else { System.out.println("Que feio! Você perdeu o Jogo da Velha para um computador!!!"); }
        x = 10;
      }
      else { //Continua o jogo
        x = x + 1;
        
        if (x > 9) { //Deu velha!
          System.out.println("Ninguém conseguiu ganhar no Jogo da Velha ¬¬");
          System.out.println(" como consolo, pelo menos você não perdeu :)");
        }
        else {
          
          if ((x % 2) == 1) {
            symbol = "x";
            System.out.println("Sua vez de jogar, digite um número");
            d = Keyboard.readInt();
            
            //Alerta de erro caso numero digitado seja invalido ou repetido
            while (d<1 || d>9 || d==n1 || d==n2 || d==n3 || d==n4 || d==n5 || d==n6 || d==n7 || d==n8 || d==n9) {
              if (d<1 || d>9) { System.out.println("Ops! Número inválido, você deve digitar um número entre 1 e 9"); }
              else { System.out.println("Ops! O Número "+d+" já foi digitado. Digite outro número"); }
              d = Keyboard.readInt();
            }
          }
          else {
            symbol = "o";
            System.out.println("O computador está jogando...");
            
            //Estratégia do computador
            while (d==n1 || d==n2 || d==n3 || d==n4 || d==n5 || d==n6 || d==n7 || d==n8 || d==n9) {
              
              Random generator = new Random();
              d = generator.nextInt(9) + 1;
             
              /*
              //estrategias favoraveis a fazer o computador ganhar
              if (out3=="o" && out9=="o" && n6==0) { d = 6; }
              else if (out4=="o" && out6=="o" && n5==0) { d = 5; }
              else if (out7=="o" && out3=="o" && n5==0) { d = 5; }
              else if (out6=="o" && out5=="o" && n4==0) { d = 4; }
              else if (out2=="o" && out1=="o" && n3==0) { d = 3; }
              else if (out5=="o" && out8=="o" && n2==0) { d = 2; }
              else if (out7=="o" && out9=="o" && n8==0) { d = 8; }
              else if (out2=="o" && out5=="o" && n8==0) { d = 8; }
              //estrategias a fim de evitar que o usuario ganhe
              else if (out1=="x" && out2=="x" && n3==0) { d = 3; }
              else if (out3=="x" && out6=="x" && n9==0) { d = 9; }
              else if (out7=="x" && out9=="x" && n8==0) { d = 8; }
              else if (out1=="x" && out9=="x" && n5==0) { d = 5; }
              else if (out7=="x" && out5=="x" && n3==0) { d = 3; }
              else if (out2=="x" && out3=="x" && n1==0) { d = 1; }
              else if (out9=="x" && out5=="x" && n1==0) { d = 1; }
              else if (out5=="x" && out6=="x" && n4==0) { d = 4; }
              else if (out3=="x" && out7=="x" && n5==0) { d = 5; }
              else if (out4=="x" && out6=="x" && n5==0) { d = 5; }

              //"randomico"
              else if (n2 == 0) { d = 2; }
              else if (n7 == 0) { d = 7; }
              else if (n6 == 0) { d = 6; }
              else if (n1 == 0) { d = 1; }
              else if (n4 == 0) { d = 4; }
              else if (n3 == 0) { d = 3; }
              else if (n5 == 0) { d = 5; }
              else if (n9 == 0) { d = 9; }
              else if (n2 == 0) { d = 2; }
              else if (n4 == 0) { d = 4; }
              else if (n8 == 0) { d = 8; }
              */
              
            }
          }
          
          //Grava o numero digitado
          if (d == 1) { n1 = 1; out1 = symbol; }
          if (d == 2) { n2 = 2; out2 = symbol; }
          if (d == 3) { n3 = 3; out3 = symbol; }
          if (d == 4) { n4 = 4; out4 = symbol; }
          if (d == 5) { n5 = 5; out5 = symbol; }
          if (d == 6) { n6 = 6; out6 = symbol; }
          if (d == 7) { n7 = 7; out7 = symbol; }
          if (d == 8) { n8 = 8; out8 = symbol; }
          if (d == 9) { n9 = 9; out9 = symbol; }
          
          //Verifica se alguém venceu
          String tmp = "";
          int k = 1;
          while (k <= 2) {
            if (k == 1) { tmp = "x"; } else { tmp = "o"; }
            
            //horizontal
            if (out1==tmp && out2==tmp && out3==tmp) { venceu = tmp; }
            if (out4==tmp && out5==tmp && out6==tmp) { venceu = tmp; }
            if (out7==tmp && out8==tmp && out9==tmp) { venceu = tmp; }
            
            //vertical
            if (out1==tmp && out4==tmp && out7==tmp) { venceu = tmp; }
            if (out2==tmp && out5==tmp && out8==tmp) { venceu = tmp; }
            if (out3==tmp && out6==tmp && out9==tmp) { venceu = tmp; }
            
            //perpendicular
            if (out1==tmp && out5==tmp && out9==tmp) { venceu = tmp; }
            if (out3==tmp && out5==tmp && out7==tmp) { venceu = tmp; }
            
            k = k + 1;
          }
        }
      }
    }
    System.out.println("Fim do Jogo");
  }
  public static void Teste ( String Msg ) {
    System.out.println(Msg);
  }
}