1 / 1
May 2010

After some time getting WA I give up and come here to get some help XD
I really dont know what I'm doing wrong now =/

import java.util.Scanner;
public class Main{
   public String checaJogo(String[] jogo){
      String retorno="no";
	  String[][] jogoGrid = new String[3][3];
      int qtX=0, qtO=0, qtDot=0;
      for(int x = 0; x < 3; x++){
         for(int y = 0; y < 3; y++){
			jogoGrid[x][y] = String.valueOf(jogo[x].charAt(y));
            switch(jogo[x].charAt(y)){
               case 'X': qtX++; break;
               case 'O': qtO++; break;
               case '.': qtDot++; break;
            }
         }
      }
      if (qtO <= qtX){
         if ((qtX - qtO) < 2){
            if((qtO + qtX + qtDot) == 9){
			int[] vitoria = checarVitoria(jogoGrid);
                               //If X and O wins its not valid, X can win two times 
                              /* XOX
                                  OXO
                                  XOX
                              */
				if((vitoria[0] > -1 && vitoria[1] == 0) || (vitoria[0] == 0 && vitoria[1] > -1)){
					retorno = "yes";
				}
            }
         }
      }
      return retorno;
   }
   public int pegaJogador(String jogador){
		return (jogador.equalsIgnoreCase("X")) ? 0 : 1;
   }
//Check if someone win
   public int[] checarVitoria(String[][] jogo){
		int[] vitoria= new int[2];
		vitoria[0] = 0;
		vitoria[1] = 0;
		String jogador="";
		if(!jogo[0][0].equals(".")){
			jogador=jogo[0][0];
			if(jogador.equals(jogo[0][1])){
				if(jogador.equals(jogo[0][2])){
					vitoria[pegaJogador(jogador)]++;
				}
			}
			if(jogador.equals(jogo[1][1])){
				if(jogador.equals(jogo[2][2])){
					vitoria[pegaJogador(jogador)]++;
				}
			}
			if(jogador.equals(jogo[1][0])){
				if(jogador.equals(jogo[2][0])){
					vitoria[pegaJogador(jogador)]++;
				}
			}
		}
			if(!jogo[1][0].equals(".")){
				jogador = jogo[1][0];
				if(jogador.equals(jogo[1][1])){
					if(jogador.equals(jogo[1][2])){
						vitoria[pegaJogador(jogador)]++;
					}
				}
			}
			if(!jogo[2][0].equals(".")){
				jogador =  jogo[2][0];
				if(jogador.equals(jogo[2][1])){
					if(jogador.equals(jogo[2][2])){
						vitoria[pegaJogador(jogador)]++;
					}
				}
				if(jogador.equals(jogo[1][1])){
					if(jogador.equals(jogo[0][2])){
						vitoria[pegaJogador(jogador)]++;
					}
				}
			}
			if(!jogo[0][1].equals(".")){
				jogador = jogo[0][1];
				if(jogador.equals(jogo[1][1])){
					if(jogador.equals(jogo[2][1])){
						vitoria[pegaJogador(jogador)]++;
					}
				}
			}
			if(!jogo[0][2].equals(".")){
				jogador = jogo[0][2];
				if(jogador.equals(jogo[1][2])){
					if(jogador.equals(jogo[2][2])){
						vitoria[pegaJogador(jogador)]++;
					}
				}
			}
    	return vitoria;
}
   public static void main(String[] args){
      int inputs = 0;
      String resultado="";
      String[] out;
      Main m = new Main();
      String[] jogo = new String[3];
      Scanner teclado = new Scanner(System.in);
      inputs = teclado.nextInt();
      while(inputs-- > 0){
         for(int x = 0; x < 3; x++){
            jogo[x] = teclado.next().toUpperCase();
         }
         System.out.println();
         resultado += m.checaJogo(jogo)+"-";
        // System.out.println(m.checaJogo(jogo));
      }      
      out = resultado.split("-");
      for(int x = 0; x < out.length; x++){
         System.out.println(out[x]);
      }
   }
}

Suggested Topics

Want to read more? Browse other topics in JAVA based languages or view latest topics.