Cómo crear un juego de ahorcado con Java

Escrito por amber d. walker | Traducido por mayra nava
  • Comparte
  • Twittea
  • Comparte
  • E-mail

Todos recuerdan el juego de adivinación de palabras Ahorcado desde niños. Un jugador elige de forma secreta una palabra. El otro jugador tiene que adivinar las letras que pueden estar en la palabra. Si está bien, las letras se agregan. Pero si está mal, se dibuja otra parte del cuerpo del ahorcado. Este tutorial te enseñará a saber cómo crear un juego de ahorcado sencillo que pueda ser jugado por dos personas utilizando el lenguaje de programación Java.

Nivel de dificultad:
Moderado

Otras personas están leyendo

Necesitarás

  • Computadora
  • Java Runtime Environment
  • Kit de desarrollo de Java
  • Editor de texto o IDE Java

Lista completaMinimizar

Instrucciones

  1. 1

    Construye las repeticiones principales del juego. Crea una clase llamada Main, y escribe las siguientes funciones principales.

    class Main { static boolean playingGame = true; static ArrayList<String> triedLetters = new ArrayList<String>(); static int guesses = 0; static String secretWord;

    public static int main(String[] args) { secretWord = askForWord(); while (playingGame) { printBodyAndTriedLetters(); printWordSoFar(); getLetter(); if (gameStatus() == 1) { System.out.println("You win!"); return 0; } else if (gameStatus() == -1) { System.out.println("You lose! Secret word was: " + secretWord); return 0; } System.out.println(); System.out.println(); System.out.println(); } } }

    Esto establece la estructura del juego y te proporciona cinco funciones que necesitas para escribir para completar el juego: askForWord(), printBodyAndTriedLetters(), printWordSoFar(), getLetter() and gameStatus().

  2. 2

    Escribe la función askForWord. Esta función es muy sencilla. Utiliza la clase BufferedReader que viene con Java para obtener una palabra secreta desde la consola, y luego imprime aproximadamente cien líneas para ocultar la palabra.

    public static String askForWord() { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("What is the secret word: "); String word = in.readLine().toLowerCase(); for (int x = 0; x < 100; x++) { System.out.println(); } return (word); } (Ver Referencia 1)

  3. 3

    Escribe la función printBodyAndTriedLetters(). Para esto, vas a imprimir las partes del cuerpo del ahorcado en base al número de intentos que el jugador ha tenido, e imprimir todas las letras de intento.

    public static void printBodyAndTriedLetters() { // If zero guesses, none of these will evaluate as true. // If two, then both the first and second will evaluate as true. if (guesses >= 1) System.out.print("HEAD "); if (guesses >= 2) System.out.print("BODY "); if (guesses >= 3) System.out.print("LEFT ARM "); if (guesses >= 4) System.out.print("RIGHT ARM "); if (guesses >= 5) System.out.print("LEFT LEG "); if (guesses >= 6) System.out.print("RIGHT LEG ");

    // Si quieres que las letras se impriman en orden alfabético. Collections.sort(triedLetters); for ( String letter : triedLetters ) { System.out.print(letter + " "); } System.out.println(); }

  4. 4

    Escribe printWordSoFar(). Si quieres comparar cada letra de la palabra con las letras de intento e imprimir los aciertos. Si no se encuentran coincidencias, deberás imprimir un la línea de subrayado ("_").

    public static void printWordSoFar() { for (int x = 0; x < secretWord.length(); x++) { String letter = secretWord.substring(x); boolean found = false; for (String t : triedLetters ) { if (letter.startsWith(t)) { System.out.print(t); found = true; } } if (!found) System.out.print("_"); } }

  5. 5

    Escribe getLetter(). Esto es más sencillo de lo que parece. La letra será probada por gameStatus, así que todo lo que necesitas hacer aquí es volver a usar el código del paso 2 para recuperar una letra del usuario.

  6. 6

    Escribe gameStatus(). Para hacer esto, vuelve a usar el código en printWordSoFar() para comprobar si una letra existe o no. Sólo necesitas cambiarlo por una forma pequeña: para comprobar si las repeticiones han sido exitosas en cada iteración. Lo siguiente funcionará:

    public static void gameStatus() { boolean solved = true; for (int x = 0; x < secretWord.length(); x++) { String letter = secretWord.substring(x); boolean found = false; for (String t : triedLetters ) { if (letter.startsWith(t)) { found = true; } } if (!found) solved = false; } // If solved, return 1. // If not solved and game over, return -1. // If none of the above, return 0. if (solved) return 1; else if (!solved && guesses >= 6) return -1; else return 0; }

No dejes de ver

Referencias

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles