Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Aula;
- import java.util.List;
- import java.util.Arrays;
- import java.util.ArrayList;
- import java.util.Random;
- import java.util.Scanner;
- public class EX26
- {
- public static void main(String[] args)
- {
- try (Scanner ent = new Scanner(System.in))
- {
- // Lista de caracteres
- List<Character> lista = new ArrayList<>();
- // Variaveis
- int erro = 0;
- char letra;
- // Vetores
- char [] palavra = sorteioPalavra();
- char [] tabuleiro = montagemTabuleiro(palavra);
- // Analise: erro < 7 e palavra diferente da do tabuleiro
- while (erro < 7 && !Arrays.equals(tabuleiro, palavra))
- {
- // Chamada de metodo
- mostrarTabuleiro(tabuleiro);
- System.out.print("\n# Letra: ");
- letra = inserirLetra(ent);
- if (acertou(palavra, letra))
- {
- tabuleiro = atualizaTabuleiro(tabuleiro, palavra, letra);
- }
- else
- {
- erro++;
- }
- if (listaErros(lista, letra))
- {
- System.out.print("# Lista de letras escolhidas: ");
- apresentaListaErro(lista);
- }
- //listaErros(lista, letra);
- System.out.println("-> Letras restantes: " + letrasRestantes(tabuleiro) + "\n");
- }
- if (erro >= 7)
- {
- System.out.println("# Voce perdeu !");
- }
- else
- {
- System.out.println("# Voce venceu !");
- System.out.printf("# Palavra: %s", mostrarPalavra(palavra) + "\n");
- }
- }
- }
- // Funcao: Retornando vetor com a palavra em caractere
- private static char [] sorteioPalavra()
- {
- // Instanciação
- Random rd = new Random();
- // Sorteando [1-10]
- int sorteio = rd.nextInt(10) + 1;
- // Estrutura: Escolha do 'Array' pela variavel Random sorteio
- switch (sorteio)
- {
- case 1:
- return new char [] {'U','V','A'};
- case 2:
- return new char [] {'B','A','N','A','N','A'};
- case 3:
- return new char [] {'A','B','A','C','A','X','I'};
- case 4:
- return new char [] {'M','A','N','G','A'};
- case 5:
- return new char [] {'M','A','R','A','C','U','J','A'};
- case 6:
- return new char [] {'L','A','R','A','N','J','A'};
- case 7:
- return new char [] {'M','O','R','A','N','G','O'};
- case 8:
- return new char[] {'L','I','M','A','O'};
- case 9:
- return new char [] {'A','C','E','R','O','L','A'};
- case 10:
- return new char [] {'C','A','Q','U','I'};
- default:
- break;
- }
- return null;
- }
- // Funcao: Retornando a palavra escolhida
- private static String mostrarPalavra(char[] palavra)
- {
- String word = "";
- for (int i = 0; i < palavra.length; i++)
- {
- word += palavra[i];
- }
- return word;
- }
- // Funcao: Retornando vetor com a montagem inicial do tabuleiro
- private static char[] montagemTabuleiro(char[] palavra)
- {
- // Vetor auxiliar do tabuleiro
- char [] aux = new char[palavra.length];
- for (int i = 0; i < palavra.length; i++)
- {
- aux[i] = '-';
- }
- return aux;
- }
- // Metodo: Mostrar o tabuleiro
- private static void mostrarTabuleiro(char [] tabuleiro)
- {
- for (int i = 0; i < tabuleiro.length; i++)
- {
- System.out.format(" %c", tabuleiro[i]);
- }
- }
- // Funcao: Inserindo na lista as letras escolhidas
- private static boolean listaErros(List<Character> lista, char letra)
- {
- if(!lista.contains(letra))
- {
- // Adiciona caracteres à lista
- lista.add(letra);
- }
- return true;
- }
- // Metodo: Apresentacao da lista de letras escolhidas
- private static void apresentaListaErro(List<Character> lista)
- {
- // Imprime os caracteres da lista
- for (Character i : lista)
- {
- System.out.format(" %c ", i);
- }
- }
- // Funcao: Retorno de quando a letra esta em um das posicoes da palavra
- private static boolean acertou(char[] palavra, char letra)
- {
- for (int i = 0; i < palavra.length; i++)
- {
- if (palavra[i] == letra)
- {
- return true;
- }
- }
- return false;
- }
- // Funcao: Atualizacao e a forma da apresentacao do tabuleiro
- private static char[] atualizaTabuleiro(char[] tabuleiro, char [] palavra, char letra)
- {
- for (int i = 0; i < tabuleiro.length; i++)
- {
- if (palavra[i] == letra)
- {
- tabuleiro[i] = letra;
- }
- }
- return tabuleiro;
- }
- // Funcao: Letras que ainda faltam serem adivinhadas
- private static int letrasRestantes(char[] tabuleiro)
- {
- int count = 0;
- for (char i : tabuleiro)
- {
- if (i == '-')
- {
- count++;
- }
- }
- return count;
- }
- // Funcao: Insercao da letra
- private static char inserirLetra(Scanner ent)
- {
- return Character.toUpperCase(ent.next().charAt(0));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement