Leita

mail@pastecode.io avatar
unknown
java
7 months ago
11 kB
5
Indexable
Never
package ahorcadoGame;// Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`,
// then press Enter. You can now see whitespace characters in your code.

import java.util.Scanner;

class ahorcadoGame {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // Lista de películas
        String[] peliculas = {"titanic", "avatar", "friends", "breaking bad", "inception", "star wars",
                "forrest gump", "the godfather", "the shawshank redemption", "jurassic park",
                "matrix", "sins", "Batman", "pulp fiction",
                "the silence of the lambs", "the lion king", "the wizard of oz", "fight club",
                "barbie", "casablanca"};

        // Palabra a adivinar
        String palabraSecreta = seleccionarPalabra(peliculas);
        palabraSecreta = palabraSecreta.toLowerCase();
        char[] palabraOculta = new char[palabraSecreta.length()];
        for (int i = 0; i < palabraOculta.length; i++) {
            if (palabraSecreta.charAt(i) != ' ') {
                palabraOculta[i] = '_';
            } else {
                palabraOculta[i] = ' ';
            }

        }
        System.out.println(palabraSecreta);

        // Partes del muñeco
        int fallosLetra = 0;
        int fallosPalabra = 0;
        int intentosPalabra = 0;
        boolean adivinado = false;
        // Bucle del juego
        // Bucle del juego
        while (fallosLetra < 6 && intentosPalabra < 3 && !adivinado) {
            // Mostrar palabra oculta
            System.out.println("Película: " + new String(palabraOculta));

            // Mostrar partes del muñeco
            mostrarPartesAhorcado(fallosLetra + fallosPalabra);


            // Pedir letra al usuario
            System.out.println("Ingresa una letra o una palabra completa");
            String entrada = sc.nextLine();

            // Verificar si es una letra o palabra
            if (entrada.length() == 1) {
                // Es una letra
                char letra = entrada.charAt(0);
                letra = Character.toLowerCase(letra);
                boolean acertado = false;

                // Verificar si la letra está en la película
                for (int i = 0; i < palabraSecreta.length(); i++) {
                    if (palabraSecreta.charAt(i) == letra) {
                        palabraOculta[i] = letra;
                        acertado = true;
                    }
                }

                // Actualizar fallos
                if (!acertado) {
                    fallosLetra++;
                    System.out.println("Letra incorrecta. Intentos restantes: " + (6 - fallosLetra));
                } else {
                    System.out.println("¡Letra correcta!");
                }
            } else {
                entrada = entrada.toLowerCase();
                // Es una palabra
                if (entrada.equals(palabraSecreta)) {
                    System.out.println("¡Felicidades! Has adivinado la película.");
                    adivinado = true;  // Cambiar el valor de la variable para salir del bucle
                } else {
                    fallosPalabra++;
                    intentosPalabra++;
                    System.out.println("Palabra incorrecta. Intentos restantes: " + (3 - fallosPalabra));
                }
            }

            // Verificar si se adivinó la película
            if (new String(palabraOculta).equals(palabraSecreta)) {
                System.out.println("¡Felicidades! Has adivinado la película.");
                adivinado = true;  // Cambiar el valor de la variable para salir del bucle
            }
        }

// Verificar si se agotaron los intentos
        if (fallosLetra == 6 || intentosPalabra == 3) {
            System.out.println("¡Has agotado tus intentos! La película era: " + palabraSecreta);
        }

        // Verificar si se agotaron los intentos
        if (fallosLetra == 6 || intentosPalabra == 3) {
            System.out.println("¡Has agotado tus intentos! La película era: " + palabraSecreta);
            mostrarPartesAhorcado(fallosPalabra + fallosLetra);

        }

        sc.close();
    }

    static String seleccionarPalabra(String[] palabras) {
        return palabras[(int) (Math.random() * palabras.length)];
    }

    static void mostrarPartesAhorcado(int fallosLetra) {
        if (fallosLetra > 0) {
            System.out.println("\nPartes del Ahorcado:");
            switch (fallosLetra) {
                case 1:
                    System.out.println(""
                            + "|      |  \r\n"
                            + "|      |\r\n"
                            + "|   -------\r\n"
                            + "|  | - -   |\r\n"
                            + "|  | o     |\r\n"
                            + "|   -------");
                    break;
                case 2:
                    System.out.println(" "
                            + "|     |\r\n"
                            + "|     |\r\n"
                            + "|  ------- \r\n"
                            + "| |  - -  | \r\n"
                            + "| |   o   | \r\n"
                            + "|  -------\r\n"
                            + "|    |  \n"
                            + "|    |   \n"
                            + "|    |   \n"
                            + "|    |   \n");

                    break;
                case 3:
                    System.out.println(" "
                            + "|       |\r\n"
                            + "|       |\r\n"
                            + "|   -------\r\n"
                            + "|  |  - -   |\r\n"
                            + "|  |   o    |\r\n"
                            + "|   -------\r\n"
                            + "|     | \r\n"
                            + "|     |  \\\r\n"
                            + "|     |   \\\r\n"
                            + "|     |    \\\r\n"
                            + "|     |     \r\n"
                            + "|\r\n");
                    break;
                case 4:
                    System.out.println("  "
                            + "|      |\r\n"
                            + "|      |\r\n"
                            + "|   -------\r\n"
                            + "|   |  - - |\r\n"
                            + "|   |   o  |\r\n"
                            + "|   -------\r\n"
                            + "|     /|\r\n"
                            + "|    / | \\\r\n"
                            + "|   /  |  \\\r\n"
                            + "|  /   |   \\\r\n"
                            + "|      |           ");
                    break;
                case 5:
                    System.out.println("  "
                            + "|      |\r\n"
                            + "|      |\r\n"
                            + "|   -------\r\n"
                            + "|   |  - - |\r\n"
                            + "|   |   o  |\r\n"
                            + "|   -------\r\n"
                            + "|     /|\r\n"
                            + "|    / | \\\r\n"
                            + "|   /  |  \\\r\n"
                            + "|  /   |   \\\r\n"
                            + "|      |\r\n"
                            + "|        \\\r\n"
                            + "|         \\\r\n"
                            + "|          \\\r\n"
                    );
                    break;
                case 6:
                    System.out.println("  "
                            + "|      |\r\n"
                            + "|      |\r\n"
                            + "|   -------\r\n"
                            + "|   |  X X |\r\n"
                            + "|   |   o  |\r\n"
                            + "|   -------\r\n"
                            + "|     /|\r\n"
                            + "|    / | \\\r\n"
                            + "|   /  |  \\\r\n"
                            + "|  /   |   \\\r\n"
                            + "|     /|\r\n"
                            + "|    /   \\\r\n"
                            + "|   /     \\\r\n"
                            + "|  /       \\\r\n");
                    break;
                default:
                    break;
            }

        }

        static void mostrarPartesAhorcado ( int fallosPalabra){
            if (fallosPalabra > 0) {
                System.out.println("\nPartes del Ahorcado:");
                switch (fallosPalabra) {


                    case 1:
                        System.out.println(" "
                                + "|       |\r\n"
                                + "|       |\r\n"
                                + "|   -------\r\n"
                                + "|  |  - -   |\r\n"
                                + "|  |   o    |\r\n"
                                + "|   -------\r\n"
                                + "|     | \r\n"
                                + "|     |  \\\r\n"
                                + "|     |   \\\r\n"
                                + "|     |    \\\r\n"
                                + "|     |     \r\n"
                                + "|\r\n");
                        break;
                    case 2:
                        System.out.println("  "
                                + "|      |\r\n"
                                + "|      |\r\n"
                                + "|   -------\r\n"
                                + "|   |  - - |\r\n"
                                + "|   |   o  |\r\n"
                                + "|   -------\r\n"
                                + "|     /|\r\n"
                                + "|    / | \\\r\n"
                                + "|   /  |  \\\r\n"
                                + "|  /   |   \\\r\n"
                                + "|      |           ");
                        break;


                    case 3:
                        System.out.println("  "
                                + "|      |\r\n"
                                + "|      |\r\n"
                                + "|   -------\r\n"
                                + "|   |  X X |\r\n"
                                + "|   |   o  |\r\n"
                                + "|   -------\r\n"
                                + "|     /|\r\n"
                                + "|    / | \\\r\n"
                                + "|   /  |  \\\r\n"
                                + "|  /   |   \\\r\n"
                                + "|     /|\r\n"
                                + "|    /   \\\r\n"
                                + "|   /     \\\r\n"
                                + "|  /       \\\r\n");
                        break;
                    default:
                        break;

                }

            }

        }
    }
}
Leave a Comment