Estoy haciendo un programa donde en un array debo esconder una frase y darle opcion al jugador de adivinarla sea entrando letras o palabras (algo asi como ahorcado - hangman). Cada vez que el jugador entra una letra, esta se debe colocar en el sitio(s) correcto(s) o decirle al jugador que la letra o palabra no esta en la frase.
Tengo varios problemas con el codigo. Cuando lo ejecuto me aparece la pantalla pidiendo la entrada de datos pero para que aparezca la letra a veces tengo que teclear dos veces y otras no aparece. No se que estoy haciendo mal. por favor me ayudan con esto. Gracias
Código:
import javax.swing.JOptionPane; import java.util.Arrays; public class Hangmantry { public static void main(String [ ] args) { String phrase = "Life is a field of unlimited possibilities", wordtoguess="------------------------------------------", phrasetoguess, guess=""; int x=0, y=0, c=0; char[ ] dashes = wordtoguess.toCharArray(); char[ ] compare = phrase.toCharArray(); do{ phrasetoguess=JOptionPane.showInputDialog("word or letter?"); if (phrasetoguess.equalsIgnoreCase("phrase")) {guess=JOptionPane.showInputDialog("Guess the phrase"); if (guess.equalsIgnoreCase(phrase)) System.out.println("Life is a field of unlimited possibilities\nYou got it!");} else { c=0; x=0; y++; String player=JOptionPane.showInputDialog("Enter a letter or phrase"); do{ if (player.charAt(0)==phrase.charAt(x)) { dashes[x]=player.charAt(0); c++; } x++; }while((player.charAt(0)!=phrase.charAt(x-1))&&(x!=42)); for (int z=0; z<42; z++) {System.out.print(dashes[z]);} System.out.println(); } }while((y<10)&&(!Arrays.equals(dashes, compare))&&(!guess.equalsIgnoreCase(phrase))); System.exit(0); } }