Estou com um problema. Meu prof pediu para criar um jogo da forca, até aí tudo bem. Só que o programa além de tudo também deveria imprimir as letras que já foram inseridas a cada rodada também, tanto as certas quanto as erradas. Aqui está meu código:
import java.util.Scanner;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] palavrasArmazenadas = {"floresta", "forca", "cachorro", "filme", "guaxinim", "mamute"};
Random sorteio = new Random();
int palavra = new Random().nextInt(6);
System.out.println(palavra);
String palavraSelecionada = palavrasArmazenadas[palavra];
char[] traco = new char[palavraSelecionada.length()];
for (int i = 0; i < palavraSelecionada.length(); i++) {
traco[i] = '_';
}
int preDefine = palavrasArmazenadas[palavra].length();
int tentativas = 6;
while (preDefine > 0 && tentativas > 0) {
System.out.println();
for (int i = 0; i < palavraSelecionada.length(); i++) {
System.out.print(" " + traco[i] + " ");
}
System.out.println();
System.out.println("Você dispõe agora de " + tentativas + " chances de adivinhar.");
System.out.println("A palavra tem agora " + preDefine + " letras a serem descobertas");
System.out.println("Digite uma letra: ");
char letras = input.next().charAt(0);
boolean right = false;
for (int i = 0; i < traco.length; i++) {
if (palavrasArmazenadas[palavra].charAt(i) == letras) {
traco[i] = letras;
preDefine--;
right = true;
}
}
if (!right) {
tentativas--;
}
}
if (preDefine == 0) {
System.out.println(palavraSelecionada.toUpperCase() +"\nParabéns. Você ganhou!");
} else {
System.out.println("Você foi enforcado. A palavra era " + palavraSelecionada.toUpperCase());
}
}
}
Como eu faço para ele exibir as letras? Tentei colocar um letras ++ em um System.out dentro do for, mas não deu certo. Só exibia a ultima letra que eu digitava.