Ir ao conteúdo
  • Cadastre-se

Sávio Guimarães

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

2
  1. @AdrianoSiqueira Amigo Esse Código está relacionado a um jogo da Forca! Eu preciso que As palavras que serão usadas no jogo devem ser retiradas de uma ou mais ARQUIVOS. A forca deve ser DESENHADA no console caso a pessoa erre algo.
  2. package forcap2; public class Aplicacao { private Aplicacao() { } public static void main(String[] args) { Dicionario dicionario = new DicionarioArray(); Forca forca = new ForcaConsole(dicionario); forca.play(); }} package forcap2; public interface Dicionario { public String sorteio(); } package forcap2; import java.io.File; import java.io.FileNotFoundException; import java.util.Random; import java.util.Scanner; public class DicionarioArray implements Dicionario { String[] Palavras; public void DicionarioArray(String[] args){ String[] Leitor; File arq = new File(“Pala.txt”); try { Scanner entrada = new Scanner(arq); Leitor=entrada.nextLine().split(" "); Palavras = Leitor; for(int i = 0; i < Leitor.length;i++){ System.out.println(Leitor[i]); } } catch (FileNotFoundException ex) { System.out.println(“A Palavra não exixte!”); } } @Override public String sorteio() { String[] Leitor; File arq = new File(“src\forcap2\Pala.txt”); try { Scanner entrada = new Scanner(arq); Leitor=entrada.nextLine().split(" "); Palavras = Leitor; Random random = new Random(); int index = random.nextInt(Palavras.length); return Palavras[index]; } // System.out.println(entrada.nextLine()); catch (FileNotFoundException ex) { System.out.println(“A Palavra não exixte!”); } return null; } } package forcap2; import java.util.ArrayList; import java.util.List; public abstract class Forca { private final int TempoMax = 10; private int Tentativas; private final Dicionario dicionario; private List correctLetters; private List incorrectLetters; private String PalavraSecreta; public Forca(Dicionario dicionario) { this.dicionario = dicionario; } public abstract void play(); protected void initialize() { PalavraSecreta = dicionario.sorteio(); correctLetters = new ArrayList<>(); for(int i = 0; i < this.PalavraSecreta.length(); i++) { correctLetters.add('_'); } incorrectLetters = new ArrayList<>(); Tentativas = 1; } protected void check(char letter) { boolean Checarsecreta = false; Tentativas = Tentativas + 1; for(int i = 0; i < PalavraSecreta.length(); i++) { if(PalavraSecreta.charAt(i) == letter) { Checarsecreta = true; correctLetters.set(i, letter); } } if(!Checarsecreta) { incorrectLetters.add(letter); } } protected boolean LetraRepetida(char letter) { return correctLetters.contains(letter) || incorrectLetters.contains(letter); } protected boolean PerdeuJogo() { return Vitoria() || Derrota(); } protected boolean Derrota() { return incorrectLetters.size() == TempoMax; } protected boolean Vitoria() { return !correctLetters.contains(’_’); } protected int getTentativas() { return Tentativas; } protected String getCorrectLetters() { StringBuilder out = new StringBuilder(); for(int i = 0; i < correctLetters.size(); i++) { out.append(correctLetters.get(i)); out.append(" "); } return out.toString(); } protected String getIncorrectLetters() { int i = 0; StringBuilder out = new StringBuilder(); for(; i < incorrectLetters.size(); i++) { out.append(incorrectLetters.get(i)); out.append(" "); } for(; i < TempoMax; i++) { out.append("_"); out.append(" "); } return out.toString(); } protected String getPalavraSecreta() { StringBuilder out = new StringBuilder(); for(int i = 0; i < PalavraSecreta.length(); i++) { out.append(PalavraSecreta.charAt(i)); out.append(" "); } return out.toString(); }} package forcap2; import java.util.Scanner; public class ForcaConsole extends Forca { public ForcaConsole(Dicionario dicionario) { super(dicionario); } @Override public void play() { try (Scanner scanner = new Scanner(System.in)) { boolean readInput = true; String input = null; initialize(); while(!PerdeuJogo()) { System.out.println("Tentativa : " + getTentativas()); System.out.println("Palavra : " + getCorrectLetters()); System.out.println("Forca : " + getIncorrectLetters()); readInput = true; input = null; while(readInput) { System.out.print("Letra : "); input = scanner.nextLine().toUpperCase(); if((input == null) || (input.length() == 0) || (!Character.isAlphabetic(input.codePointAt(0)))) { System.out.println("Erro : forneça um letra válida!"); } else if(LetraRepetida(input.charAt(0))) { System.out.println("Erro : letra já fornecida!"); } else { readInput = false; } } check(input.charAt(0)); System.out.println(); } } System.out.println("Tentativa : " + getTentativas()); System.out.println("Palavra : " + getPalavraSecreta()); System.out.println("Forca : " + getIncorrectLetters()); if(Vitoria()) { System.out.println("Parabéns! Você descobriu!"); } else { System.out.println("Desculpa, não foi dessa vez!"); } } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...