Olá pessoal, espero que possam me ajudar, estou montando um jogo da força do desafio 7 do Caelum, mas não estou conseguindo impedir que a letra possa ser repetida e nem a possibilidade de montar um loop para jogar novamente. Segue o código:
import java.util.ArrayList;
import java.util.Random;
import javax.swing.JOptionPane;
public class Telajogo {
private static String palavra =null;
private String dica = null;
public Telajogo (int n) {
palavra = new Dicionario().getPalavra(n);
dica = new Dicionario().getDica(n);
}
public static void main(String[] args){
Random r = new Random();
int random = r.nextInt((10 -1) + 1) +1;
boolean acertou = false;
ArrayList<String> letraIdentica = new ArrayList<String>();
int qtd=0;
int contarErros = 0;
String senha, tenta;
String boneco = "\0";
Telajogo jogo = new Telajogo(random);
String v = Telajogo.palavra;
char[] formarPalavra = palavra.toCharArray();
String apresentaPalavra="\0";
for(int y = 0; y < formarPalavra.length; y++){
formarPalavra[y] = '_';
apresentaPalavra += formarPalavra[y] + " ";
}
JOptionPane.showMessageDialog(null," Inicio do Jogo \n");
for(int j = 0; j <formarPalavra.length + 7 ; j++)
{
acertou = false;
senha = JOptionPane.showInputDialog(null,"Tentativa: " + (j+1) + " de " +
(formarPalavra.length + 7) + "\n" + apresentaPalavra + "\nDigite a letra:");
apresentaPalavra= "\0";
for(int i = 0; i < formarPalavra.length; i++)
{
tenta = v.substring(i,i+1);
if(senha.trim().equalsIgnoreCase(tenta))
{
letraIdentica.add(senha);
if(!letraIdentica.contains(senha)) {JOptionPane.showMessageDialog(null," já possui a letra \n");
} else
acertou = true;
qtd++;
formarPalavra[i] = senha.charAt(0);
apresentaPalavra = apresentaPalavra + formarPalavra[i] + " ";
if (qtd == formarPalavra.length)
{
JOptionPane.showMessageDialog(null, "Você Ganhou! PalavraCompleta: " + v + "\nTotal de Tentativas: " + (j+1) );
System.exit(0);
}
}else
{
apresentaPalavra += formarPalavra[i] + " ";
}
}
if(acertou == false){
contarErros++;
boneco = "\0";
switch(contarErros)
{
case 1:
boneco = " __ O \n";
boneco += "|\t \n";
boneco += "|\t \n";
boneco += "|\t \n";
break;
case 2:
boneco = " __ O \n";
boneco += "| | \n";
boneco += "|\n";
boneco += "|\n";
break;
case 3:
boneco = " __ O \n";
boneco += "| -|\n";
boneco += "|\n";
boneco += "|\n";
break;
case 4:
boneco = " __ O \n";
boneco += "| -|-\n";
boneco += "| \n";
boneco += "|\n";
break;
case 5:
boneco = " __ O \n";
boneco += "| -|-\n";
boneco += "| | \n";
boneco += "| \n";
break;
case 6: boneco = "Dica: " + jogo.dica+"\n\n";
boneco += " __ O \n";
boneco += "| -|-\n";
boneco += "| | \n";
boneco += "| \n";
break;
case 7:
boneco = " __ O \n";
boneco += "| -|-\n";
boneco += "| | | \n";
boneco += "| \n";
break;
}
JOptionPane.showMessageDialog(null, boneco + "\nVocê ERROU " +
contarErros + " vez(es)");
if(contarErros>= 7)
{
JOptionPane.showMessageDialog(null, "PERDEU! FIM DO JOGO" );
System.exit(0);
}
}
}
}
}