#include <stdio.h>
#include <string.h>

#define TRUE 1
#define FALSE 0

void dibujarCuerda(){
	printf("_____\n");
	printf("    |\n");
}

void dibujarCabeza(){
	printf("    O\n");
}

void dibujarTronco(){
	printf("|");
}

void dibujarBrazoIzq(){
	printf("   /");
}

void dibujarBrazoDer(){
	printf("\\\n");
}

void dibujarPiernaIzq(){
	printf("   /");
}

void dibujarPiernaDer(){
	printf(" \\\n");
}

void dibujarMuneco(int numPartes){
	switch(numPartes){
		case 1:
			dibujarCuerda();
		break;
		case 2:
			dibujarCuerda();
			dibujarCabeza();
		break;
		case 3:
			dibujarCuerda();
			dibujarCabeza();
			dibujarBrazoIzq();
		break;
		case 4:
			dibujarCuerda();
			dibujarCabeza();
			dibujarBrazoIzq();
			dibujarTronco();
		break;
		case 5:
			dibujarCuerda();
			dibujarCabeza();
			dibujarBrazoIzq();
			dibujarTronco();
			dibujarBrazoDer();
		break;
		case 6:
			dibujarCuerda();
			dibujarCabeza();
			dibujarBrazoIzq();
			dibujarTronco();
			dibujarBrazoDer();
			dibujarPiernaIzq();
		break;
		case 7:
			dibujarCuerda();
			dibujarCabeza();
			dibujarBrazoIzq();
			dibujarTronco();
			dibujarBrazoDer();
			dibujarPiernaIzq();
			dibujarPiernaDer();
		break;
	}
	printf("\n");
}

int lonCad(char *cad){
	int i=0;
	while(cad[i] != '\0'){
		i++;
	}
	return i;
}

int buscarCarEnCad(char *cad, char c, int *numExitos){
	int i=0, encontrado=FALSE;
	while(i < lonCad(cad)){
		if( cad[i] == c ){
			encontrado = TRUE;
			cad[i] = 'X';
			(*numExitos)++;
		}
		i++;
	}
	return encontrado;
}

void mostrarPalabra(char *cado, char *cadc){
	int i=0;
	while(i < lonCad(cadc)){
		if(cado[i] == 'X')
			printf("%c",cadc[i]);
		else
			printf("-");
		i++;
	}
	printf("\n");
}

int main(int argc, char *argv[]){
	int num, lon, numExitos=0, numFallos=0;
	char palabra[30], copia[30];
	char c='x';
	int exito=0;

	strcpy(palabra, argv[1]);
	strcpy(copia, palabra);

	while(numFallos <= 7 && numExitos < lonCad(palabra)){
		system("clear");
		dibujarMuneco(numFallos);
		mostrarPalabra(palabra, copia);
		printf("Ingrese una letra: ");
		do{
			scanf("%c", &c);
		} while ( c == '\n' );
		exito = buscarCarEnCad(palabra, c, &numExitos);
		if(!exito)
			numFallos++;
	}
	if (numExitos >= lonCad(palabra))
		printf("GANO %s\n", copia);
	else
		printf("PERDIO %s\n", copia);
		

	return 0;
}

