#include <stdio.
h>
#include <stdlib.h>
#include <time.h>
#define MAX_WORDS 20
#define MAX_ERRORS 10
void la_personita(int errores) {
printf(" |--------|\n");
if (errores > 0) printf(" | 0\n");
if (errores > 1) printf(" | |\n");
if (errores > 3) printf(" | /|");
if (errores > 4) printf("\\\n");
else printf("\n");
if (errores > 5) printf(" | /\n");
if (errores > 6) printf(" | / \\\n");
printf(" |\n");
}
void mostrar_palabra(const char *palabra, int *adivinadas, int longitud) {
for (int i = 0; i < longitud; i++) {
if (adivinadas[i]) {
printf("%c ", palabra[i]);
} else {
printf("_ ");
}
}
printf("\n");
}
void jugar() {
const char *palabras[MAX_WORDS] = {
"programa", "computadora", "algoritmo", "funcion", "variable",
"ciclo", "condicion", "arreglo", "estructura", "datos",
"lenguaje", "compilador", "depuracion", "sintaxis", "biblioteca",
"objeto", "clase", "metodo", "instancia", "herencia"
};
srand(time(0));
int indice_palabra = rand() % MAX_WORDS;
const char *palabra_elegida = palabras[indice_palabra];
int longitud_palabra = 0;
while (palabra_elegida[longitud_palabra] != '\0') {
longitud_palabra++;
}
int adivinadas[longitud_palabra];
for (int i = 0; i < longitud_palabra; i++) {
adivinadas[i] = 0;
}
int errores = 0;
char letra;
while (errores < MAX_ERRORS) {
la_personita(errores);
mostrar_palabra(palabra_elegida, adivinadas, longitud_palabra);
printf("Introduce una letra: ");
scanf(" %c", &letra);
if (letra < 'a' || letra > 'z') {
printf("Error: Introduce solo una letra.\n");
continue;
}
int encontrado = 0;
for (int i = 0; i < longitud_palabra; i++) {
if (palabra_elegida[i] == letra) {
adivinadas[i] = 1;
encontrado = 1;
}
}
if (!encontrado) {
errores++;
}
int todas_adivinadas = 1;
for (int i = 0; i < longitud_palabra; i++) {
if (!adivinadas[i]) {
todas_adivinadas = 0;
break;
}
}
if (todas_adivinadas) {
printf("¡Felicidades! Has adivinado la palabra: %s\n", palabra_elegida);
break;
}
}
if (errores == MAX_ERRORS) {
la_personita(errores);
printf("Has perdido. La palabra era: %s\n", palabra_elegida);
}
}
int main() {
jugar();
return 0;
}