int main()
{
char word [25];
char c;
int x;
allegro_init(); /* Inicializamos Allegro */
install_keyboard();
ifstream fin("hangword.txt");
if(!fin) { //clrscr();
cout<<"File missing, aborting.nnYou are missing a file of name **hangword.txt**nnLocate it, then place it next to the program file.nn"; system("pause"); return 0;}
for (i=0;!fin.eof();i++) fin.getline(word,25);
fin.close();
do {
x=rand();
}while(x>i || x<0);
ifstream finn("hangword.txt");
for (i=0;!finn.eof();i++)
{finn>>c; finn.getline(word,25); if (x==i) break;}
finn.close();
/* Intentamos entrar a modo grafico */
if (set_gfx_mode(GFX_SAFE,800,640,0,0)!=0){ //tamaño de la pantalla//
set_gfx_mode(GFX_TEXT,0,0,0,0);
allegro_message(
"Incapaz de entrar a modo graficon%sn",
allegro_error);
return 1;
}
/* Si todo ha ido bien: empezamos */
srand(time(0)); /* Valores iniciales */
strcpy(palabra, word[rand()%(NUMPALABRAS+1)]);
oportunidades = MAXINTENTOS;
strcpy(letras,"");
/* Relleno con _ y " " lo que ve Jug. 2 */
for (i=1; i<=strlen(palabra); i++)
if (palabra[i-1]==' ' )
intento[i-1]=' ';
else
intento[i-1]='_';
intento[i]=' '; /* Y aseguro que termine correctamente */
/* Parte repetitiva: */
do {
clear_bitmap(screen);
/* Dibujo lo que corresponde del "patibulo" */
if (oportunidades <=5) PrimerFallo();
if (oportunidades <=4) SegundoFallo();
if (oportunidades <=3) TercerFallo();
if (oportunidades <=2) CuartoFallo();
if (oportunidades <=1) QuintoFallo();
/* Digo cuantos intentos le quedan */
textprintf_ex(screen, font, 80,18, palette_color[15], -1 ,"Te quedan %d intentos", oportunidades);
/* Le muestro c¢mo va */
textprintf_ex(screen, font, 80,32, palette_color[15],-1, intento, oportunidades);
/* Las letras intentadas */
textprintf_ex(screen, font, 20,72, palette_color[14],-1, "Letras intentadas: %s", letras);
/* Y le pido otra letra */
textprintf_ex(screen, font, 20,60, palette_color[14], -1,"Que letra?");
letra = readkey()&0xff;
/* Añado esa letra a las tecleadas*/
strcpy (ficticia,"a"); /* Usando una cadena de texto aux */
ficticia[0]= letra;
strcat (letras, ficticia);
acertado = 0; /* Miro a ver si ha acertado */
for (i=1; i<=strlen(palabra); i++)
if(tolower(letra)== tolower(palabra[i-1]))
{
intento[i-1]= palabra[i-1];
acertado = 1;
}
if (! acertado ) /* Si falló, le queda un intento menos */
oportunidades --;
}
while ( strcmp (intento,palabra) /* Hasta que acierte */
&& (oportunidades>0)); /* o gaste sus oportunidades */
/* Le felicito o le digo cual era */
if ( strcmp (intento,palabra)==0)
textprintf_ex(screen, font, 20,100, palette_color[11],-1, "Acertaste!");
else
{
textprintf_ex(screen, font, 20,100, palette_color[11],-1, "Lo siento. Era: %s", palabra);
QuintoFallo();
}
readkey();
return 0;
}
/* Termino con la "macro" que me pide Allegro */
END_OF_MAIN();