Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

257
Vistas
Errores del juego del ahorcado

Aquí está mi programa hasta ahora:

 import java.util.Arrays; public class HangmanWord { private String[] possibleWords = {"laptop", "college", "programing"}; private String word; private char[] progress; private int wrongCount = 0; public HangmanWord() { int randomPossibleWord = (int) (Math.random() * possibleWords.length-1); String word = possibleWords[randomPossibleWord]; char[] progress = new char[word.length()]; Arrays.fill(progress,'-'); } public void display() { System.out.print(progress); System.out.println(); } public boolean guess(char c) { boolean matchFound = false; for (int i = 0; i < word.length(); i++ ) { if (word.charAt(i) == c ) { progress[i] = c; matchFound = true; } } return false; } public boolean isSolved() { for (int i = 0; i < progress.length; i++ ) { if(progress[i] == '-'){ return false; } } return true; } public int getWrongCount() { return wrongCount; } public String getWord() { return word; } } public class Hangman { public static void main(String[] args) { int MAX_INCORRECT = 5; System.out.println("Welcome to Hangman."); HangmanWord wordObj = new HangmanWord(); System.out.print("Here is your word: "); wordObj.display(); } }

Mi salida debería ser algo como esto:

 Welcome to Hangman. Here is your word: ------

Sin embargo, recibo los siguientes errores:

 Welcome to Hangman. Here is your word: Exception in thread "main" java.lang.NullPointerException at java.io.Writer.write(Writer.java:127) at java.io.PrintStream.write(PrintStream.java:503) at java.io.PrintStream.print(PrintStream.java:653) at HangmanWord.display(HangmanWord.java:16) at Hangman.main(Hangman.java:9)
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Está redefiniendo la palabra variable y el progreso en su constructor. Simplemente debe usarlos sin declararlos como nuevas variables porque ya están definidos. Actualmente los está definiendo localmente, el constructor funciona pero usa esas variables locales definidas y no las variables de palabra y progreso de su objeto, por lo tanto, cuando deje el alcance y llame a display (), usará la matriz de progreso de su objeto que nunca se inicializó.

Cámbielo a lo siguiente para que no esté redefiniendo la palabra de las variables y progrese así

 public HangmanWord() { int randomPossibleWord = (int) (Math.random() * possibleWords.length-1); word = possibleWords[randomPossibleWord]; progress = new char[word.length()]; Arrays.fill(progress,'-'); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda