Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Tarefas_3;
- public class EX00
- {
- public static void main(String[] args)
- {
- try
- {
- exec();
- }
- catch (Exception e)
- {
- System.out.println(e.getMessage());
- }
- }
- private static void exec()
- {
- int lin, col, contJog = 1;
- char jog = 'X', ven = 'Z';
- int aux[] = new int[2];
- char tab[][] = new char[3][3];
- // Apresentacao do tabuleiro
- apresentacao(populacao(tab));
- // Estrutura: Vitoria ou Empate
- while (ven != 'E' && ven != 'X' && ven!= 'O')
- {
- System.out.format("\n----- ROUND %d -----\n", contJog);
- System.out.printf("\n# Jogador %c \n", jog);
- aux = entDados();
- lin = aux[0] - 1;
- col = aux[1] - 1;
- if (contJog > 1 && (tab[lin][col] == 'X' || tab[lin][col] == 'O'))
- {
- System.out.println("# Jogada invalida !");
- }
- // Analise: Realizaca da troca do jogador
- else
- {
- if (jog == 'X')
- {
- tab[lin][col] = 'X';
- jog = 'O';
- }
- else
- {
- tab[lin][col] = 'O';
- jog = 'X';
- }
- // Contador de Jogadas
- contJog++;
- }
- // Tabuleiro
- apresentacao(tab);
- // Analise
- ven = analiseJogo(contJog, tab);
- if (ven == 'E' || ven == 'X' || ven == 'O')
- {
- System.out.printf("# %s \n", relatorio(ven));
- }
- }
- }
- // Inserir valores
- private static int [] entDados()
- {
- int map[] = new int[2];
- boolean flag = Boolean.TRUE;
- do
- {
- System.out.print("# Linha: ");
- map[0] = Integer.parseInt(System.console().readLine());
- System.out.print("# Coluna: ");
- map[1] = Integer.parseInt(System.console().readLine());
- if ( (map[0] >= 1 && map[0] <= 3) && (map[1] >= 1 && map[1] <= 3) )
- {
- flag = false;
- }
- else
- {
- System.out.println("\n# Preencha novamente !");
- }
- } while(flag);
- return map;
- }
- // Metodo: Apresentação do Tabuleiro
- private static void apresentacao(char tab[][])
- {
- System.out.println("\n### TABULEIRO ###");
- for (int i = 0; i < 3; i++)
- {
- for (int j = 0; j < 3; j++)
- {
- System.out.printf(" %c ", tab[i][j]);
- if (j != 2)
- {
- System.out.print(" | ");
- }
- else
- {
- System.out.print(" \n");
- }
- }
- }
- System.out.print("#################\n");
- }
- // Funcao: População do Tabuleiro
- private static char [][] populacao(char tab[][])
- {
- for (int i = 0; i < 3; i++)
- {
- for (int j = 0; j < 3; j++)
- {
- tab[i][j] = '-';
- }
- }
- return tab;
- }
- // Funcao: Empate e Vitoria
- private static char analiseJogo(int contJog, char tab[][])
- {
- // Empate
- if (contJog > 9)
- {
- return 'E';
- }
- else
- {
- // Vitoria: Linhas Horizontais
- for (int k = 0; k < 3; k++)
- {
- if ( (tab[k][0] == tab[k][1]) && (tab[k][1] == tab[k][2]) )
- {
- return tab[k][0];
- }
- else if ( (tab[0][k] == tab[1][k]) && (tab[1][k] == tab[2][k]) )
- {
- return tab[0][k];
- }
- }
- // Vitoria: Linhas Diagonal
- if ((tab[0][0] == tab [1][1]) && (tab[1][1] == tab[2][2]))
- {
- return tab[0][0];
- }
- if ((tab[0][2] == tab[1][1]) && (tab[1][1] == tab[2][0]))
- {
- return tab[0][2];
- }
- }
- return 'Z';
- }
- // Funcao: Relatorio
- private static String relatorio(char ven)
- {
- switch (ven)
- {
- case 'E':
- return "Empate";
- case 'X':
- return "Venceu jogador X";
- case 'O':
- return "Venceu jogador O";
- default:
- return "";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement