Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * @author Antônio Gonçalves, Leticia W. de Oliveira, Luciano Clécio, Sabrina Miranda
- * Turma Entra-21 Java, Noturno Professor, Rodrigo Busato
- */
- import java.util.Scanner;
- public class Principal {
- String[][] v = new String[3][3]; // Tabuleiro
- Scanner scanner = new Scanner(System.in);
- int l, c; // Linhas e Colunas
- String j1; // Jogador 1
- String j2; // Jogador 2
- int p1 = 0, p2 = 0; // Placar 1 Placar 2
- String resp = "sim"; // Condição para continuar o jogo
- boolean result = false;
- int jogadas = 0; // Contador de Jogadas
- public static void main (String[] args){
- Principal p = new Principal();
- p.velha();
- }
- /**
- * Metodo para criar o tabuleiro
- *
- */
- public void tabuleiro(){
- System.out.println("\t"+v[0][0] + " | " + v[0][1] + " | "+v[0][2]);
- System.out.println("\t"+"---------");
- System.out.println("\t"+v[1][0] + " | " + v[1][1] + " | "+v[1][2]);
- System.out.println("\t"+"---------");
- System.out.println("\t"+v[2][0] + " | " + v[2][1] + " | "+v[2][2]+"\n");
- }
- // Metodo para validar linha ou coluna caso elas estejam incorretas
- public void valida(int line){
- while(line < 0 || line > 2){
- System.out.println("Linha ou coluna inválida, digite novamente de 0 a 2: ");
- line = scanner.nextInt();
- }
- }
- // Metodo para Validar a posição caso ela já tenha sido preenchida
- public void validaLinhaColuna(){
- while(v[l][c] != " "){
- System.out.println("Essa posição já está preechida, informe outra linha: ");
- l = scanner.nextInt();
- System.out.println("Informe a coluna: ");
- c = scanner.nextInt();
- }
- }
- // Metodo para determinar o vencedor, verifica todos os resultados de vitórias possiveis e da o resultado do vencedor ao final
- public boolean vitoria(String simb){
- if((v[0][0] == simb && v[0][1] == simb && v[0][2] == simb) ||
- (v[1][0] == simb && v[1][1] == simb && v[1][2] == simb) ||
- (v[2][0] == simb && v[2][1] == simb && v[2][2] == simb) ||
- (v[0][0] == simb && v[1][1] == simb && v[2][2] == simb) ||
- (v[0][2] == simb && v[1][1] == simb && v[2][0] == simb) ||
- (v[0][0] == simb && v[1][0] == simb && v[2][0] == simb) ||
- (v[0][1] == simb && v[1][1] == simb && v[2][1] == simb) ||
- (v[0][2] == simb && v[1][2] == simb && v[2][2] == simb)){
- if(simb == "X"){
- System.out.println(j1+", é o vencedor! Parabéns!\n");
- tabuleiro();
- p1++; // Contador do Placar jogador 1
- result = true;
- }else if(simb == "O"){
- System.out.println(j2+", é o vencedor! Parabéns!\n");
- tabuleiro();
- p2++; // Contador do Placar jogador 2
- result = true;
- }
- }
- else if(jogadas == 9){
- System.out.println("EMPATE");
- tabuleiro();
- result = true;
- }
- return result;
- }
- // Metodo para exibir placar
- public void placar(){
- System.out.println("PLACAR");
- System.out.println("\t"+j1+": "+p1+" vitória(s)");
- System.out.println("\t"+j2+": "+p2+" vitória(s)");
- }
- // Metodo principal do jogo
- public void velha(){
- System.out.println("Informe o nome do jogador 1: ");
- j1 = scanner.next();
- System.out.println("Informe o nome do jogador 2: ");
- j2 = scanner.next();
- while(resp == "s"){
- result = false;
- jogadas = 0;
- v[0][0] = " ";
- v[0][1] = " ";
- v[0][2] = " ";
- v[1][0] = " ";
- v[1][1] = " ";
- v[1][2] = " ";
- v[2][0] = " ";
- v[2][1] = " ";
- v[2][2] = " ";
- tabuleiro(); // Chamada tabuleiro, imprime a situacao atual do jogo
- // Preenchendo as posicoes com linhas e colunas informadas por cada jogador
- while( result == false){
- System.out.println(j1+", informe a linha de 0 a 2: ");
- l = scanner.nextInt();
- valida(l);
- System.out.println(j1+", informe a coluna de 0 a 2: ");
- c = scanner.nextInt();
- valida(c);
- validaLinhaColuna();
- v[l][c] = "X";
- jogadas++;
- if(result == false){ // Condicao para que o X seja vitorioso, caso ocorra um break é dado para dar continuidade ao metodo
- vitoria("X");
- if(result == true){
- break;
- }
- }
- tabuleiro();
- System.out.println(j2+", informe a linha de 0 a 2: ");
- l = scanner.nextInt();
- valida(l);
- System.out.println(j2+", informe a coluna de 0 a 2: ");
- c = scanner.nextInt();
- valida(c);
- validaLinhaColuna();
- v[l][c] = "O";
- jogadas++;
- System.out.println(jogadas);
- if(result == false){ // Condicao para que o O seja vitorioso, caso ocorra um break é dado para dar continuidade ao metodo
- vitoria("O");
- if(result == true){
- break;
- }
- }
- tabuleiro();
- }
- placar(); // Imprime o Placar
- System.out.println("Deseja jogar novamente? Digite 's/n' "); // Opção para que o jogador possa jogar novamente, ou sair do jogo
- resp = scanner.next();
- }
- System.out.println("Obrigado por jogar!"); // Saida do Jogo
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment