PROGRAMA EN C, EL JUEGO DEL AHORCADO:

 

Este fichero ,tal y como está construido, necesita de otro fichero que que se llama escribe.c, en el programa que haremos no lo introduciremos, pero de momento lo pongo como tengo de ejemplo (utilizando los dos ficheros);

 

Fichero escribe.c (Codigo)

 

void escribe(int color,int x, int y, char[20] cadena)

{

            gotoxy(x,y);

            textcolor(color);

//          printf("%s",cadena);

 

}

 

 

Fichero ahorcado.c (Codigo)

 

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <time.h>

#include <escribe.c>

 

void main()

{

 

 char matriz[10][20]={"helicoptero","naranja","helice","jardinero","electricista","calendario","taladro","cometa","saltamontes","antena"};

 int plantilla[1][20],abc=0,x=37,y=21;

 char abecedario[34];

 int palabra,numpalabras=10,adivina,fallos,longpalabra,longadivina,salir;

 char repetir='s';

 int acierto; //Variable booleana: 1 significa que acert¢ una

                                                            // o m s letras, 0 que no

 int i,j;

 char letra[1];

 

 

 //////// PRESENTACION MENU PRINCIPAL

 ///////////////////////////////////////

 

 clrscr();

 printf("\n\t=======================================");

 printf("\n\t           JUEGO DEL AHORCADO");

 printf("\n\t=======================================");

 printf("");

 printf("\n\tInstrucciones: El ordenador pensar  una palabra y t£ tienes 10");

 printf("\n\tintentos para acertarla. En cada intento podr s elegir una letra.");

 printf("\n\tSi la palabra a adivinar la contiene, aparecer  en su corres-");

 printf("\n\tpondiente posici¢n. Sino, tendr s un intento menos.Hasta agotar");

 printf("\n\tlos 10. ­­­­BUENA SUERTE!!!");

 printf("\n\n");

 printf("\nPulsa una tecla para empezar...");

 getch();

             //Busca una palabra aleatoriamente

  do

  {

             clrscr();

             randomize();

             acierto=0;

             fallos=0;

             longpalabra=0;

             longadivina=0;

             salir=0;

             adivina=random(numpalabras-1)+1;

             for (i=0;matriz[adivina][i]!='\0';i++)

             {

                        plantilla[1][i]=0;

                        longpalabra++;

             }

             plantilla[1][i]='\0';

//          gotoxy(12,13);

             escribe(15,12,13);

             cprintf("Palabra a adivinar: ");

 

             //Presentamos la linea inicial punteada con tantos espacios como letras

             for (i=0;matriz[adivina][i]!='\0';i++)

             {

                        printf(" _ ");

 

             }

                        do

                        {

                                   //gotoxy(10,15);

                                   escribe(15,10,15);

                                   cprintf("Introduce una letra: "); scanf("%s",&letra);

                                   //gotoxy(12,13);

                                   escribe(15,12,13);

                                   cprintf("Palabra a adivinar: ");

                                   for (i=0;matriz[adivina][i]!='\0';i++)

                                   {

                                               if (matriz[adivina][i]==letra[0])

                                               {

                                                           plantilla[1][i]=1;

                                                           printf(" %c ",matriz[adivina][i]);

                                                           acierto=1;

                                               }

                                               else

                                               {

                                                           if (plantilla[1][i]==1)

                                                           {

                                                                       printf(" %c ",matriz[adivina][i]);

                                                           }

                                                           else

                                                           {

                                                                       printf(" _ ");

                                                           }

                                               }

                                   }

                                   //gotoxy(21,21);

                                   escribe(15,21,21);

                                   cprintf("Letras cogidas: ");

                                   abecedario[abc]=letra[0];

                                   x++;

                                   //gotoxy(x,y);

                                   escribe(15,x,y);

                                   printf("%c",abecedario[abc]);

                                   abc++;

                                   if (acierto==0)

                                   {

                                               fallos++;

                                               switch (fallos)

                                               {

                                                           case 1:

                                                                       escribe(6,5,9);

                                                                       cprintf("___________");

                                                           break;

                                                           case 2:

                                                                       escribe(6,5,8);

                                                                       cprintf("|");

                                                                       escribe(6,5,7);

                                                                       cprintf("|");

                                                                       escribe(6,5,6);

                                                                       cprintf("|");

                                                                       escribe(6,5,5);

                                                                       cprintf("|");

                                                                       escribe(6,5,4);

                                                                       cprintf("|");

                                                                       escribe(6,5,3);

                                                                       cprintf("|");

                                                                       escribe(6,5,2);

                                                                       cprintf("|");

                                                           break;

                                                           case 3:

                                                                       //gotoxy(5,1);

                                                                       escribe(6,5,1);

                                                                       cprintf("__________");

                                                           break;

                                                           case 4:

                                                                       //gotoxy(11,2);

                                                                       escribe(6,11,2);

                                                                       cprintf("|");

                                                           break;

                                                           case 5:

                                                                       //gotoxy(11,3);

                                                                       escribe(11,11,3);

                                                                       cprintf("0");

                                                           break;

                                                           case 6:

                                                                       //gotoxy(9,4);

                                                                       escribe(11,9,4);

                                                                       cprintf("--+--");

                                                           break;

                                                           case 7:

                                                                       //gotoxy(11,5);

                                                                       escribe(11,11,5);

                                                                       cprintf("|");

                                                           break;

                                                           case 8:

                                                                       //gotoxy(10,6);

                                                                       escribe(11,10,6);

                                                                       cprintf("/");

                                                           break;

                                                           case 9:

                                                                       //gotoxy(12,6);

                                                                       escribe(11,12,6);

                                                                       cprintf("\\");

                                                           break;

                                               }

                                   }

                                   longadivina=0;

                                   for (j=0;plantilla[1][j]!='\0';j++)

                                   {

                                               if (plantilla[1][j]==1)

                                                           longadivina=longadivina+plantilla[1][j];

                                   }

                                   acierto=0;

                                   if (fallos==9)

                                               salir=1;

                                   if (longadivina==longpalabra)

                                               salir=1;

                        }

                        while (salir==0);

                        if (fallos==9)

                        {

                                   gotoxy(35,5);

                                   printf("LO SIENTO...... No acertaste.");

                                   gotoxy(35,7);

                                   printf("La palabra era ");puts(matriz[adivina]);

                                   gotoxy(35,9);

                                   printf("¨Quieres intentarlo otra vez?(s/n) ");

                                   repetir=getch();

                        }

                        else

                        {

                                   gotoxy(35,5);

                                   printf("­­­FELICIDADES!!! Acertaste!!");

                                   gotoxy(35,7);

                                   printf("¨Quieres intentarlo otra vez?(s/n) ");

                                   repetir=getch();

                        }

            }

            while (repetir=='s');

}