×
Ir ao conteúdo
  • Cadastre-se

Java Como faço para esse código salvar ou carregar em arquivos e fazer o boneco?


Sávio Guimarães

Posts recomendados

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!"); }

}
}
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Amigo, por favor tente seguir essas recomendações:

  • Quando postar um código, por favor use o botão code ' < > ' presente no editor do fórum, ele ajuda na legibilidade do código e evita possíveis perdas de caracteres.
  • Se seu problema é relacionado a um exercício, poste o enunciado para termos uma ideia do objetivo e dos requisitos.
  • Procure informar o que seu código deveria fazer e o que ele está fazendo. E se possível os passos que devemos seguir para reproduzir o erro.

Parecem coisas bobas, mas isso ajuda demais quem quer ajudar você.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Sobre desenhar a forca, eu não faço ideia de como fazer. Eu executei seu código e ele não finaliza mesmo acertando a palavra. A estrutura também está um pouco complexa.

 

Vou deixar um pacote com uma abordagem diferente, veja se ajuda em alguma coisa.

Forca.zip

Link para o comentário
Compartilhar em outros sites

  • Rio McCloud alterou o título para Como faço para esse código salvar ou carregar em arquivos e fazer o boneco?

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Curso de Hacker Ético

LANÇAMENTO!

CLIQUE AQUI E CONFIRA!

* Este curso não é ministrado pela equipe do Clube do Hardware.