#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char palabras[5][10] = {"sol", "solo", "solar", "altura", "hermoso"};
char letra, palabra[10], palabraOculta[10];
int nivel, intentos, letrasRestantes, i, aciertos, comodines;
int longitud;
int niveles = 5;
int juegoTerminado = 0; // Variable para registrar si el juego ha terminado
printf("Bienvenido al juego del ahorcado\n");
for(nivel = 0; nivel < niveles && !juegoTerminado; nivel++) { // Agregamos la condición para que el juego termine si juegoTerminado es verdadero
intentos = 5;
comodines = 3;
palabraOculta[0] = '\0'; // Reinicia la palabra oculta
// Preparar la palabra oculta
strcpy(palabra
, palabras
[nivel
]); for(i = 0; i < longitud; i++) {
palabraOculta[i] = '_';
}
palabraOculta[i] = '\0';
letrasRestantes = longitud;
aciertos = 0;
printf("\nNivel %d\n", nivel
+ 1); printf("Adivina la palabra: %s\n", palabraOculta
);
while(intentos > 0 && letrasRestantes > 0) {
printf("\nIntentos restantes: %d\n", intentos
); printf("Comodines restantes: %d\n", comodines
); printf("Ingresa una letra (o '*' para usar un comodín): "); letra
= tolower(letra
); // Convertir la letra a minúscula
int encontrado = 0;
if (letra == '*') {
if (comodines > 0) {
printf("Seleccione el tipo de comodín:\n"); printf("1. Revelar una letra\n"); printf("2. Revelar dos letras\n"); printf("3. Revelar la definición de la palabra\n"); int tipoComodin;
scanf("%d", &tipoComodin
); switch (tipoComodin) {
case 1:
if (aciertos < longitud) {
for (i = 0; i < longitud; i++) {
if (palabraOculta[i] == '_') {
palabraOculta[i] = palabra[i];
letrasRestantes--;
aciertos++;
printf("Letra revelada: %c\n", palabra
[i
]); break;
}
}
comodines--;
} else {
printf("Ya no hay letras ocultas para revelar.\n"); }
break;
case 2:
if (aciertos < longitud - 1) {
for (i = 0; i < longitud - 1; i++) {
if (palabraOculta[i] == '_' && palabraOculta[i+1] == '_') {
palabraOculta[i] = palabra[i];
palabraOculta[i+1] = palabra[i+1];
letrasRestantes -= 2;
aciertos += 2;
printf("Letras reveladas: %c%c\n", palabra
[i
], palabra
[i
+1]); break;
}
}
comodines--;
} else {
printf("Ya no hay suficientes letras ocultas para revelar.\n"); }
break;
case 3:
printf("La definición de la palabra es: "); // Puedes agregar las definiciones aquí para cada palabra switch(nivel) {
case 0:
printf("Objeto que brilla en el cielo durante el día.\n"); break;
case 1:
printf("Solitario, sin compañía.\n"); break;
case 2:
break;
case 3:
printf("Distancia vertical de un punto a la recta horizontal.\n"); break;
case 4:
printf("De belleza muy agradable y armoniosa.\n"); break;
default:
printf("Definición no disponible.\n"); break;
}
comodines--;
break;
default:
printf("Opción no válida.\n"); break;
}
intentos--;
continue;
} else {
printf("No tienes comodines restantes.\n"); }
} else {
for(i = 0; i < longitud; i++) {
if(palabra[i] == letra && palabraOculta[i] == '_') {
palabraOculta[i] = letra;
letrasRestantes--;
aciertos++;
encontrado = 1;
}
}
if(!encontrado) {
printf("¡Incorrecto! La letra '%c' no está en la palabra.\n", letra
); intentos--;
} else {
}
}
printf("Palabra actual: %s\n", palabraOculta
); }
if(letrasRestantes == 0) {
printf("\n¡Felicidades! Has adivinado la palabra '%s' en el nivel %d.\n", palabra
, nivel
+ 1); } else {
printf("\n¡Lo siento! Te has quedado sin intentos. La palabra era '%s'.\n", palabra
); juegoTerminado = 1; // Si se quedan sin intentos, establecemos juegoTerminado a verdadero para terminar el juego
}
printf("\nPresiona Enter para continuar al siguiente nivel...\n"); getchar(); // Limpiar el búfer del teclado getchar(); // Esperar a que el usuario presione Enter }
if(!juegoTerminado) { // Si juegoTerminado es falso, significa que el jugador ha completado todos los niveles sin quedarse sin intentos
printf("¡Felicidades! Has completado todos los niveles del juego del ahorcado.\n"); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CgppbnQgbWFpbigpIHsKICAgIGNoYXIgcGFsYWJyYXNbNV1bMTBdID0geyJzb2wiLCAic29sbyIsICJzb2xhciIsICJhbHR1cmEiLCAiaGVybW9zbyJ9OwogICAgY2hhciBsZXRyYSwgcGFsYWJyYVsxMF0sIHBhbGFicmFPY3VsdGFbMTBdOwogICAgaW50IG5pdmVsLCBpbnRlbnRvcywgbGV0cmFzUmVzdGFudGVzLCBpLCBhY2llcnRvcywgY29tb2RpbmVzOwogICAgaW50IGxvbmdpdHVkOwogICAgaW50IG5pdmVsZXMgPSA1OwogICAgaW50IGp1ZWdvVGVybWluYWRvID0gMDsgLy8gVmFyaWFibGUgcGFyYSByZWdpc3RyYXIgc2kgZWwganVlZ28gaGEgdGVybWluYWRvCgogICAgcHJpbnRmKCJCaWVudmVuaWRvIGFsIGp1ZWdvIGRlbCBhaG9yY2Fkb1xuIik7CgogICAgZm9yKG5pdmVsID0gMDsgbml2ZWwgPCBuaXZlbGVzICYmICFqdWVnb1Rlcm1pbmFkbzsgbml2ZWwrKykgeyAvLyBBZ3JlZ2Ftb3MgbGEgY29uZGljacOzbiBwYXJhIHF1ZSBlbCBqdWVnbyB0ZXJtaW5lIHNpIGp1ZWdvVGVybWluYWRvIGVzIHZlcmRhZGVybwogICAgICAgIGludGVudG9zID0gNTsKICAgICAgICBjb21vZGluZXMgPSAzOwogICAgICAgIHBhbGFicmFPY3VsdGFbMF0gPSAnXDAnOyAvLyBSZWluaWNpYSBsYSBwYWxhYnJhIG9jdWx0YQoKICAgICAgICAvLyBQcmVwYXJhciBsYSBwYWxhYnJhIG9jdWx0YQogICAgICAgIHN0cmNweShwYWxhYnJhLCBwYWxhYnJhc1tuaXZlbF0pOwogICAgICAgIGxvbmdpdHVkID0gc3RybGVuKHBhbGFicmEpOwogICAgICAgIGZvcihpID0gMDsgaSA8IGxvbmdpdHVkOyBpKyspIHsKICAgICAgICAgICAgcGFsYWJyYU9jdWx0YVtpXSA9ICdfJzsKICAgICAgICB9CiAgICAgICAgcGFsYWJyYU9jdWx0YVtpXSA9ICdcMCc7CgogICAgICAgIGxldHJhc1Jlc3RhbnRlcyA9IGxvbmdpdHVkOwogICAgICAgIGFjaWVydG9zID0gMDsKCiAgICAgICAgcHJpbnRmKCJcbk5pdmVsICVkXG4iLCBuaXZlbCArIDEpOwogICAgICAgIHByaW50ZigiQWRpdmluYSBsYSBwYWxhYnJhOiAlc1xuIiwgcGFsYWJyYU9jdWx0YSk7CgogICAgICAgIHdoaWxlKGludGVudG9zID4gMCAmJiBsZXRyYXNSZXN0YW50ZXMgPiAwKSB7CiAgICAgICAgICAgIHByaW50ZigiXG5JbnRlbnRvcyByZXN0YW50ZXM6ICVkXG4iLCBpbnRlbnRvcyk7CiAgICAgICAgICAgIHByaW50ZigiQ29tb2RpbmVzIHJlc3RhbnRlczogJWRcbiIsIGNvbW9kaW5lcyk7CiAgICAgICAgICAgIHByaW50ZigiSW5ncmVzYSB1bmEgbGV0cmEgKG8gJyonIHBhcmEgdXNhciB1biBjb21vZMOtbik6ICIpOwogICAgICAgICAgICBzY2FuZigiICVjIiwgJmxldHJhKTsKICAgICAgICAgICAgbGV0cmEgPSB0b2xvd2VyKGxldHJhKTsgLy8gQ29udmVydGlyIGxhIGxldHJhIGEgbWluw7pzY3VsYQoKICAgICAgICAgICAgaW50IGVuY29udHJhZG8gPSAwOwogICAgICAgICAgICBpZiAobGV0cmEgPT0gJyonKSB7CiAgICAgICAgICAgICAgICBpZiAoY29tb2RpbmVzID4gMCkgewogICAgICAgICAgICAgICAgICAgIHByaW50ZigiU2VsZWNjaW9uZSBlbCB0aXBvIGRlIGNvbW9kw61uOlxuIik7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIxLiBSZXZlbGFyIHVuYSBsZXRyYVxuIik7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIyLiBSZXZlbGFyIGRvcyBsZXRyYXNcbiIpOwogICAgICAgICAgICAgICAgICAgIHByaW50ZigiMy4gUmV2ZWxhciBsYSBkZWZpbmljacOzbiBkZSBsYSBwYWxhYnJhXG4iKTsKICAgICAgICAgICAgICAgICAgICBpbnQgdGlwb0NvbW9kaW47CiAgICAgICAgICAgICAgICAgICAgc2NhbmYoIiVkIiwgJnRpcG9Db21vZGluKTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRpcG9Db21vZGluKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY2llcnRvcyA8IGxvbmdpdHVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxvbmdpdHVkOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhbGFicmFPY3VsdGFbaV0gPT0gJ18nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWxhYnJhT2N1bHRhW2ldID0gcGFsYWJyYVtpXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldHJhc1Jlc3RhbnRlcy0tOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNpZXJ0b3MrKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiTGV0cmEgcmV2ZWxhZGE6ICVjXG4iLCBwYWxhYnJhW2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW9kaW5lcy0tOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIllhIG5vIGhheSBsZXRyYXMgb2N1bHRhcyBwYXJhIHJldmVsYXIuXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWNpZXJ0b3MgPCBsb25naXR1ZCAtIDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbG9uZ2l0dWQgLSAxOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhbGFicmFPY3VsdGFbaV0gPT0gJ18nICYmIHBhbGFicmFPY3VsdGFbaSsxXSA9PSAnXycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGFicmFPY3VsdGFbaV0gPSBwYWxhYnJhW2ldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFsYWJyYU9jdWx0YVtpKzFdID0gcGFsYWJyYVtpKzFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0cmFzUmVzdGFudGVzIC09IDI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2llcnRvcyArPSAyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJMZXRyYXMgcmV2ZWxhZGFzOiAlYyVjXG4iLCBwYWxhYnJhW2ldLCBwYWxhYnJhW2krMV0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tb2RpbmVzLS07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiWWEgbm8gaGF5IHN1ZmljaWVudGVzIGxldHJhcyBvY3VsdGFzIHBhcmEgcmV2ZWxhci5cbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiTGEgZGVmaW5pY2nDs24gZGUgbGEgcGFsYWJyYSBlczogIik7IC8vIFB1ZWRlcyBhZ3JlZ2FyIGxhcyBkZWZpbmljaW9uZXMgYXF1w60gcGFyYSBjYWRhIHBhbGFicmEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaChuaXZlbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJPYmpldG8gcXVlIGJyaWxsYSBlbiBlbCBjaWVsbyBkdXJhbnRlIGVsIGTDrWEuXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIlNvbGl0YXJpbywgc2luIGNvbXBhw7HDrWEuXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIlJlbGF0aXZvIGFsIHNvbC5cbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRGlzdGFuY2lhIHZlcnRpY2FsIGRlIHVuIHB1bnRvIGEgbGEgcmVjdGEgaG9yaXpvbnRhbC5cbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRGUgYmVsbGV6YSBtdXkgYWdyYWRhYmxlIHkgYXJtb25pb3NhLlxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRGVmaW5pY2nDs24gbm8gZGlzcG9uaWJsZS5cbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW9kaW5lcy0tOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIk9wY2nDs24gbm8gdsOhbGlkYS5cbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGludGVudG9zLS07CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHByaW50ZigiTm8gdGllbmVzIGNvbW9kaW5lcyByZXN0YW50ZXMuXG4iKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IGxvbmdpdHVkOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICBpZihwYWxhYnJhW2ldID09IGxldHJhICYmIHBhbGFicmFPY3VsdGFbaV0gPT0gJ18nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBhbGFicmFPY3VsdGFbaV0gPSBsZXRyYTsKICAgICAgICAgICAgICAgICAgICAgICAgbGV0cmFzUmVzdGFudGVzLS07CiAgICAgICAgICAgICAgICAgICAgICAgIGFjaWVydG9zKys7CiAgICAgICAgICAgICAgICAgICAgICAgIGVuY29udHJhZG8gPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZighZW5jb250cmFkbykgewogICAgICAgICAgICAgICAgICAgIHByaW50ZigiwqFJbmNvcnJlY3RvISBMYSBsZXRyYSAnJWMnIG5vIGVzdMOhIGVuIGxhIHBhbGFicmEuXG4iLCBsZXRyYSk7CiAgICAgICAgICAgICAgICAgICAgaW50ZW50b3MtLTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCLCoUNvcnJlY3RvIVxuIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHByaW50ZigiUGFsYWJyYSBhY3R1YWw6ICVzXG4iLCBwYWxhYnJhT2N1bHRhKTsKICAgICAgICB9CgogICAgICAgIGlmKGxldHJhc1Jlc3RhbnRlcyA9PSAwKSB7CiAgICAgICAgICAgIHByaW50ZigiXG7CoUZlbGljaWRhZGVzISBIYXMgYWRpdmluYWRvIGxhIHBhbGFicmEgJyVzJyBlbiBlbCBuaXZlbCAlZC5cbiIsIHBhbGFicmEsIG5pdmVsICsgMSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcHJpbnRmKCJcbsKhTG8gc2llbnRvISBUZSBoYXMgcXVlZGFkbyBzaW4gaW50ZW50b3MuIExhIHBhbGFicmEgZXJhICclcycuXG4iLCBwYWxhYnJhKTsKICAgICAgICAgICAganVlZ29UZXJtaW5hZG8gPSAxOyAvLyBTaSBzZSBxdWVkYW4gc2luIGludGVudG9zLCBlc3RhYmxlY2Vtb3MganVlZ29UZXJtaW5hZG8gYSB2ZXJkYWRlcm8gcGFyYSB0ZXJtaW5hciBlbCBqdWVnbwogICAgICAgIH0KCiAgICAgICAgcHJpbnRmKCJcblByZXNpb25hIEVudGVyIHBhcmEgY29udGludWFyIGFsIHNpZ3VpZW50ZSBuaXZlbC4uLlxuIik7CiAgICAgICAgZ2V0Y2hhcigpOyAvLyBMaW1waWFyIGVsIGLDumZlciBkZWwgdGVjbGFkbwogICAgICAgIGdldGNoYXIoKTsgLy8gRXNwZXJhciBhIHF1ZSBlbCB1c3VhcmlvIHByZXNpb25lIEVudGVyCiAgICB9CgogICAgaWYoIWp1ZWdvVGVybWluYWRvKSB7IC8vIFNpIGp1ZWdvVGVybWluYWRvIGVzIGZhbHNvLCBzaWduaWZpY2EgcXVlIGVsIGp1Z2Fkb3IgaGEgY29tcGxldGFkbyB0b2RvcyBsb3Mgbml2ZWxlcyBzaW4gcXVlZGFyc2Ugc2luIGludGVudG9zCiAgICAgICAgcHJpbnRmKCLCoUZlbGljaWRhZGVzISBIYXMgY29tcGxldGFkbyB0b2RvcyBsb3Mgbml2ZWxlcyBkZWwganVlZ28gZGVsIGFob3JjYWRvLlxuIik7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCg==