#include<stdio.h>
#include<conio.h>

char ventana (int ancho,int largo,int color_g,int color_borde,char titulo[],
int color_titulo,int posx,int posy);

void main() {
  int cabeza[5][7],pelo[2][7],piernad[5][9],soga[12][7];
  textbackground(0);
  clrscr();
  ventana(80,24,7,1,"Juego del Ahorcado",14,1,1);

// Pintar soga.
  soga[0][3]='Û';soga[1][3]='Û';soga[2][3]='Û';soga[3][3]='Û';soga[4][3]='Û';
  soga[5][2]='Û';soga[5][4]='Û';soga[6][1]='Û';soga[6][5]='Û';soga[7][0]='Û';
  soga[7][6]='Û';soga[8][0]='Û';soga[8][6]='Û';soga[9][0]='Û';soga[9][6]='Û';
  soga[10][1]='Û';soga[10][5]='Û';soga[11][2]='Û';soga[11][3]='Û';
  soga[11][4]='Û';

  for (int f=2,y=2;f<12;f++,y++) {
    gotoxy(60,y);
    for (int c=0;c<7;c++) {
      if (soga[f][c]=='Û') {
	textcolor(14);
	cprintf ("%c",soga[f][c]);
      }
      else {
	textcolor(7);
	cprintf ("Û");
      }
    }
  }

// pintar cabeza
  cabeza[0][1]='Û';cabeza[0][2]='Û';cabeza[0][3]='Û';cabeza[0][4]='Û';
  cabeza[0][5]='Û';cabeza[1][0]='Û';cabeza[1][1]='Û';cabeza[1][2]='Û';
  cabeza[1][3]='Û';cabeza[1][4]='Û';cabeza[1][5]='Û';cabeza[1][6]='Û';
  cabeza[2][0]='Û';cabeza[2][1]='Û';cabeza[2][2]='Û';cabeza[2][3]='Û';
  cabeza[2][4]='Û';cabeza[2][5]='Û';cabeza[2][6]='Û';
  cabeza[3][1]='Û';cabeza[3][2]='Û';cabeza[3][3]='Û';cabeza[3][4]='Û';
  cabeza[3][5]='Û';cabeza[4][2]='Û';cabeza[4][3]='Û';cabeza[4][4]='Û';
  for (f=0,y=6;f<5;f++,y++) {
    gotoxy(60,y);
    for (int c=0;c<7;c++) {
      if (cabeza[f][c]=='Û') {
	textcolor(6);
	cprintf ("%c",cabeza[f][c]);
      }
      else {
	textcolor(14);
	cprintf ("Û");
      }
    }
  }

// Pintar pelo
  pelo[0][0]='Û';pelo[0][1]='Û';pelo[0][2]='Û';pelo[0][3]='Û';
  pelo[0][4]='Û';pelo[0][5]='Û';pelo[0][6]='Û';pelo[1][0]='Û';
  pelo[1][6]='Û';
  for (f=0,y=5;f<2;f++,y++) {
    gotoxy(60,y);
    for (int c=0;c<7;c++) {
      if (pelo[f][c]=='Û') {
	textcolor(0);
	cprintf ("%c",pelo[f][c]);
      }
      else {
	textcolor(6);
	cprintf ("Û");
      }
    }
  }
// Pintar cara alegre.
  // Pintar ojos
  textbackground(6);textcolor(0);
  gotoxy (62,7);cprintf ("O");
  gotoxy (64,7);cprintf ("O");
  // Pintar nariz.
  gotoxy(63,8);cprintf("U");
  // Pintar boca.
  gotoxy(62,9);cprintf("À");
  gotoxy(64,9);cprintf("Ù");
  gotoxy(63,9);cprintf("-");

// Pintar cara triste.
  // Pintar ojos
  textbackground(6);textcolor(0);
  gotoxy (62,7);cprintf ("*");
  gotoxy (64,7);cprintf ("*");
  // Pintar nariz.
  gotoxy(63,8);cprintf("U");
  // Pintar boca.
  gotoxy(62,9);cprintf("+");
  gotoxy(64,9);cprintf("+");
  gotoxy(63,9);cprintf("+");

// Pintar cuerpo.
  ventana(11,5,6,6,"",6,58,12);

// Pintar pierna.
  piernad[0][0]='Û';piernad[0][1]='Û';piernad[0][2]='Û';piernad[0][3]='Û';
  piernad[1][1]='Û';piernad[1][2]='Û';piernad[1][3]='Û';piernad[1][4]='Û';
  piernad[2][2]='Û';piernad[2][3]='Û';piernad[2][4]='Û';piernad[2][5]='Û';
  piernad[3][3]='Û';piernad[3][4]='Û';piernad[3][5]='Û';piernad[3][6]='Û';
  piernad[4][4]='Û';piernad[4][5]='Û';piernad[4][6]='Û';piernad[4][7]='Û';
  // Derecha
  for (f=0,y=17;f<5;f++,y++) {
    gotoxy(64,y);
    for (int c=0;c<9;c++) {
      if (piernad[f][c]=='Û') {
	textcolor(6);
	cprintf ("%c",piernad[f][c]);
      }
      else {
	textcolor(7);
	cprintf ("Û");
      }
    }
  }

  // Izquierda.
  for (f=0,y=17;f<5;f++,y++) {
    gotoxy(54,y);
    for (int c=8;c>=0;c--) {
      if (piernad[f][c]=='Û') {
	textcolor(6);
	cprintf ("%c",piernad[f][c]);
      }
      else {
	textcolor(7);
	cprintf ("Û");
      }
    }
  }

// Pintar brazos.
  // Derecho
  for (f=0,y=12;f<4;f++,y++) {
    gotoxy(69,y);
    for (int c=0;c<9;c++) {
      if (piernad[f][c]=='Û') {
	textcolor(6);
	cprintf ("%c",piernad[f][c]);
      }
      else {
	textcolor(7);
	cprintf ("Û");
      }
    }
  }

  // Izquierda.
  for (f=0,y=12;f<4;f++,y++) {
    gotoxy(49,y);
    for (int c=8;c>=0;c--) {
      if (piernad[f][c]=='Û') {
	textcolor(6);
	cprintf ("%c",piernad[f][c]);
      }
      else {
	textcolor(7);
	cprintf ("Û");
      }
    }
  }


getch();
}

char ventana (int ancho,int largo,int color_g,int color_borde,char titulo[80],
int color_titulo,int posx,int posy) {
  int x,y,cony,conx;
  char dib;
  dib='Û';
  for (cony=0,y=posy;cony<largo;cony++,y++){
    for (conx=0,x=posx;conx<ancho;conx++,x++) {
      gotoxy(x,y);
      if (x==posx || y==posy || y==(posy+(largo-1)) || x==(posx+1)
      || x==(posx+(ancho-2)) || x==(posx+(ancho-1)))
	textcolor(color_borde);
      else
	textcolor(color_g);
      cprintf ("%c",dib);
    }
  }
  gotoxy((posx+2),posy);
  textcolor(color_titulo);
  textbackground(color_borde);
  cprintf("%s",titulo);
  return(0);
}
