legostr

Untitled

Feb 1st, 2013
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.95 KB | None | 0 0
  1. /**
  2.  * @author Antônio Gonçalves, Leticia W. de Oliveira, Luciano Clécio, Sabrina Miranda
  3.  * Turma Entra-21 Java, Noturno Professor, Rodrigo Busato
  4.  */
  5. import java.util.Scanner;
  6.  
  7.  
  8. public class Principal {
  9.    
  10.     String[][] v = new String[3][3]; // Tabuleiro
  11.     Scanner scanner = new Scanner(System.in);
  12.     int l, c; // Linhas e Colunas
  13.     String j1; // Jogador 1
  14.     String j2; // Jogador 2
  15.     int p1 = 0, p2 = 0; // Placar 1 Placar 2
  16.     String resp = "sim"; // Condição para continuar o jogo
  17.     boolean result = false;
  18.     int jogadas = 0; // Contador de Jogadas
  19.    
  20.    
  21.     public static void main (String[] args){
  22.         Principal p = new Principal();
  23.         p.velha();
  24.    
  25.     }
  26.     /**
  27.      * Metodo para criar o tabuleiro
  28.      *
  29.      */
  30.     public void tabuleiro(){
  31.         System.out.println("\t"+v[0][0] + " | " + v[0][1] + " | "+v[0][2]);
  32.         System.out.println("\t"+"---------");
  33.         System.out.println("\t"+v[1][0] + " | " + v[1][1] + " | "+v[1][2]);
  34.         System.out.println("\t"+"---------");
  35.         System.out.println("\t"+v[2][0] + " | " + v[2][1] + " | "+v[2][2]+"\n");
  36.     }
  37.     // Metodo para validar linha ou coluna caso elas estejam incorretas
  38.     public void valida(int line){
  39.         while(line < 0 || line > 2){
  40.             System.out.println("Linha ou coluna inválida, digite novamente de 0 a 2: ");
  41.             line = scanner.nextInt();
  42.         }
  43.     }
  44.     // Metodo para Validar a posição caso ela já tenha sido preenchida
  45.     public void validaLinhaColuna(){
  46.         while(v[l][c] != " "){
  47.             System.out.println("Essa posição já está preechida, informe outra linha: ");
  48.             l = scanner.nextInt();
  49.             System.out.println("Informe a coluna: ");
  50.             c = scanner.nextInt();
  51.         }
  52.     }
  53.     // Metodo para determinar o vencedor, verifica todos os resultados de vitórias possiveis e da o resultado do vencedor ao final
  54.     public boolean vitoria(String simb){
  55.         if((v[0][0] == simb && v[0][1] == simb && v[0][2] == simb) ||
  56.                 (v[1][0] == simb && v[1][1] == simb && v[1][2] == simb) ||
  57.                 (v[2][0] == simb && v[2][1] == simb && v[2][2] == simb) ||
  58.                 (v[0][0] == simb && v[1][1] == simb && v[2][2] == simb) ||
  59.                 (v[0][2] == simb && v[1][1] == simb && v[2][0] == simb) ||
  60.                 (v[0][0] == simb && v[1][0] == simb && v[2][0] == simb) ||
  61.                 (v[0][1] == simb && v[1][1] == simb && v[2][1] == simb) ||
  62.                 (v[0][2] == simb && v[1][2] == simb && v[2][2] == simb)){
  63.            
  64.             if(simb == "X"){
  65.                 System.out.println(j1+", é o vencedor! Parabéns!\n");
  66.                 tabuleiro();
  67.                 p1++; // Contador do Placar jogador 1
  68.                 result = true;
  69.             }else if(simb == "O"){
  70.                 System.out.println(j2+", é o vencedor! Parabéns!\n");
  71.                 tabuleiro();
  72.                 p2++; // Contador do Placar jogador 2
  73.                 result = true;
  74.             }
  75.            
  76.         }
  77.             else if(jogadas == 9){
  78.                 System.out.println("EMPATE");
  79.                 tabuleiro();
  80.                 result = true;
  81.         }
  82.         return result;
  83.     }
  84.     // Metodo para exibir placar
  85.     public void placar(){
  86.         System.out.println("PLACAR");
  87.         System.out.println("\t"+j1+": "+p1+" vitória(s)");
  88.         System.out.println("\t"+j2+": "+p2+" vitória(s)");
  89.     }
  90.     // Metodo principal do jogo
  91.     public void velha(){
  92.         System.out.println("Informe o nome do jogador 1: ");
  93.         j1 = scanner.next();
  94.        
  95.         System.out.println("Informe o nome do jogador 2: ");
  96.         j2 = scanner.next();
  97.        
  98.         while(resp == "s"){
  99.             result = false;
  100.             jogadas = 0;
  101.             v[0][0] = " ";
  102.             v[0][1] = " ";
  103.             v[0][2] = " ";
  104.             v[1][0] = " ";
  105.             v[1][1] = " ";
  106.             v[1][2] = " ";
  107.             v[2][0] = " ";
  108.             v[2][1] = " ";
  109.             v[2][2] = " ";
  110.            
  111.             tabuleiro(); // Chamada tabuleiro, imprime a situacao atual do jogo
  112.            
  113.             // Preenchendo as posicoes com linhas e colunas informadas por cada jogador
  114.             while( result == false){
  115.            
  116.                 System.out.println(j1+", informe a linha de 0 a 2: ");
  117.                 l = scanner.nextInt();
  118.        
  119.                 valida(l);
  120.                
  121.                 System.out.println(j1+", informe a coluna de 0  a 2: ");
  122.                 c = scanner.nextInt();
  123.                
  124.                 valida(c);
  125.                
  126.                 validaLinhaColuna();
  127.                
  128.                 v[l][c] = "X";
  129.                 jogadas++;
  130.                
  131.                 if(result == false){ // Condicao para que o X seja vitorioso, caso ocorra um break é dado para dar continuidade ao metodo
  132.                     vitoria("X");
  133.                     if(result == true){
  134.                         break;
  135.                     }
  136.                 }
  137.                
  138.                 tabuleiro();
  139.                            
  140.                 System.out.println(j2+", informe a linha de 0 a 2: ");
  141.                 l = scanner.nextInt();
  142.                
  143.                 valida(l);
  144.                
  145.                 System.out.println(j2+", informe a coluna de 0  a 2: ");
  146.                 c = scanner.nextInt();
  147.                
  148.                 valida(c);
  149.                
  150.                 validaLinhaColuna();
  151.                
  152.                 v[l][c] = "O";
  153.                 jogadas++;
  154.                
  155.                 System.out.println(jogadas);
  156.                
  157.                 if(result == false){ // Condicao para que o O seja vitorioso, caso ocorra um break é dado para dar continuidade ao metodo
  158.                     vitoria("O");
  159.                     if(result == true){
  160.                         break;
  161.                     }
  162.                 }
  163.                
  164.                 tabuleiro();
  165.                
  166.             }
  167.             placar(); // Imprime o Placar
  168.            
  169.            
  170.             System.out.println("Deseja jogar novamente? Digite 's/n' "); //  Opção para que o jogador possa jogar novamente, ou sair do jogo
  171.             resp = scanner.next(); 
  172.            
  173.         }
  174.         System.out.println("Obrigado por jogar!"); //  Saida do Jogo
  175.     }
  176. }
Advertisement
Add Comment
Please, Sign In to add comment