SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Johanyx en Lunes 18 de Febrero de 2002, 10:07

Título: Re: ALGUIEN DISPONE DEL JUEGO DEL AHORCADO EN C?????
Publicado por: Johanyx en Lunes 18 de Febrero de 2002, 10:07
Hola!!! Tengo problemas con una practica que me han mandado tengo que realizar un programa en C del juego del ahorcado y no me apaño a la hora de mostrar * donde hay letras y que no se repita... en fin en todo ¡HELP! Estoy echo un lio:(:(:(:(:(
Título: Re: ALGUIEN DISPONE DEL JUEGO DEL AHORCADO EN C?????
Publicado por: tenesor en Lunes 18 de Febrero de 2002, 20:01
Bueno, aqui te lo pongo. Pero este codigo NO ES PARA QUE LO COPIES :D, simplemente mira en lo que tengas duda y haz tu version!!!

Saludos,
   Tenesor

|-------------------------------------------|

/* PROGRAMA REALIZADO POR JONATHAN VILLANUEVA TAVIRA EN LA
UNIVERSIDAD DEL SOL
   AREA DE INGENIERIA NOVIEMBRE DEL 2000 CUERNAVACA,MORELOS,MEXICO*/



#include <stdio.h>               /*LIBRERIA POR DEFAULT*/
#include <stdlib.h>              /*LIBRERIA PARA MANEJAR EL RANDOM*/
#include <ctype.h>               /*LIBRERIA PARA MANEJAR EL ISALPHA*/
#include <conio.h>               /*LIBRERIA DE GRAFICOS*/
#include <string.h>              /*LIBRERIA PARA MANEJAR EL STRLEN*/
#include <dos.h>                 /*LIBRERIA PARA MANEJAR EL DELAY*/

char palabras[10][10];           /*ARREGLO DONDE GUARDO LOS NOMBRES*/
char palabra[10],respuesta[10];  /*VARIABLE DONDE IRE ALMACENANDO LAS
LETRAS*/
char letra,opc,catego;                  /*VARIABLE QUE ALMACENO LA
LETRA*/

int i,j,y,elegida,longitud,opor,a;

int presenta(void);
int categoria(void);
int elegir(int);
int imprime(void);

void main(void)
{

presenta();
do{
    categoria();
    textbackground(BLUE);  /*COLOR DE FONDO AZUL*/
    textcolor(WHITE);      /*COLOR DE LETRA BLANCO*/
    clrscr();              /*LIMPIO PANTALLA*/

    switch(catego){
    case '1':
    gotoxy(1,1);printf("CATEGORIA:FRUTAS");
    break;
    case '2':
    gotoxy(1,1);printf("CATEGORIA:DEPORTES");
    break;
    case '3':
    gotoxy(1,1);printf("CATEGORIA:PAISES");
    break;
    }

    i=j=y=elegida=longitud=opor=a=0;   /*INICIALIZO LAS VARIABLES CON
CERO*/

   for(i=0;i<10;i++)
   {
       respuesta=NULL;        /*CON ESTE FOR LIMPIO LA CADENA*/
   }

   /*DESPLIEGO JUEGO DEL AHORCADO*/
   gotoxy(32,1);
   printf("JUEGO DEL AHORCADO");

   /*ESTE FOR DESPLIEGA EL ALFABETO*/
   for(i=0;i<26;i++)
   {
      gotoxy(i*2+18,4);
      printf("%c",65+i);
   }


       /*ESTA FUNCION CARGA LOS NOMBRES AL ARREGLO*/


       /*ESTA FUNCION ELIGE UN NUMERO ALEATORIO PARA ESCOGER UNA
PALABRA*/
       randomize();
       j=random(9);

       /*FUNCION QUE ELIGE ALEATORIAMENTE LA PALABRA*/
       elegir(j);
       longitud=strlen(palabra);
       imprime();


   do{
     gotoxy(25,9);
     printf("A D I V I N A   L A  P A L A B R A");
     gotoxy(28,12);
     printf("E L I G E  L A  L E T R A=>>");

          do{
        letra=toupper(getch());     /*CON ESTE DO NO ADMITO
NUMEROS*/
     }while(!isalpha(letra) );

     gotoxy(10+opor*3,22);
     printf("%c",letra);

     gotoxy(25,15);
     printf("MAXIMO 20 INTENTOS INTENTO[%d]",opor+1);


     for(i=0;i<longitud;i++)
        {
         if(letra==palabra)
         {
       gotoxy(15+i*4+18,19);
       printf("%c",letra);
       respuesta=letra;
          }
        }

        y=strcmp(palabra,respuesta);

        if(y==0){
      gotoxy(32,23);
      printf("C  O  R  R  E  C  T  O");
           }


      opor++;
   }while(opor<20 && y!=0);

    if(opor==20)
    {
       gotoxy(26,23);
       textcolor(RED);
       cprintf("**INCORRECTO LA PALABRA ERA** %s",palabra);
    }


    gotoxy(28,25);
    printf("¨DESEA VOLVER A JUGAR[S/N]=>>?");

    do{
      opc=toupper(getch());
    }while(opc!='S' && opc!='N');

}while(opc!='N');

   presenta();
   clrscr();
   exit(1);
   return;

}



cargarfrutas()
{

  strcpy(palabras[0],"MANZANA");
  strcpy(palabras[1],"NARANJA");
  strcpy(palabras[2],"SANDIA");
  strcpy(palabras[3],"FRESA");
  strcpy(palabras[4],"TORONJA");
  strcpy(palabras[5],"MANGO");
  strcpy(palabras[6],"PLATANO");
  strcpy(palabras[7],"UVAS");
  strcpy(palabras[8],"GUAYABA");
  strcpy(palabras[9],"CIRUELA");
  return 0;

}


elegir(int pal)
{
  strcpy(palabra,palabras[pal]);
  return 0;


}

imprime()
{
 for(i=1;i<=longitud;i++){
    gotoxy(15+i*4+14,20);printf("_");
    }
    return 0;
}


presenta()
{


   textbackground(CYAN);
   textcolor(WHITE);
   clrscr();
   gotoxy(25,12);
   cprintf("JUEGO DEL AHORCADO 2-NOV-2000");
   gotoxy(30,13);
   cprintf("ESPERA UN MOMENTO...");
   delay(2000);
   return 0;



}

cargardeportes()
{
  strcpy(palabras[0],"FUTBOL");
  strcpy(palabras[1],"BASEBALL");
  strcpy(palabras[2],"GOLF");
  strcpy(palabras[3],"TENNIS");
  strcpy(palabras[4],"GIMNASIA");
  strcpy(palabras[5],"PINPON");
  strcpy(palabras[6],"SOCCER");
  strcpy(palabras[7],"NATACION");
  strcpy(palabras[8],"MARATON");
  strcpy(palabras[9],"CICLISMO");
  return 0;

}

cargarpaises()
{
strcpy(palabras[0],"JAPON");
  strcpy(palabras[1],"COREA");
  strcpy(palabras[2],"FRANCIA");
  strcpy(palabras[3],"ITALIA");
  strcpy(palabras[4],"MEXICO");
  strcpy(palabras[5],"CANADA");
  strcpy(palabras[6],"USA");
  strcpy(palabras[7],"ARGENTINA");
  strcpy(palabras[8],"BRASIL");
  strcpy(palabras[9],"PARAGUAY");
  return 0;




}


categoria()
{
  textbackground(RED);
  textcolor(WHITE);
  clrscr();
  gotoxy(25,1);
  cprintf("***C A T E G O R I A S***");
  gotoxy(30,5);
  cprintf("1.-F R U T A S");
  gotoxy(30,8);
  cprintf("2.-D E P O R T E S");
  gotoxy(30,11);
  cprintf("3.-P A I S E S");
  gotoxy(30,15);
  cprintf("ELIGE TU OPCION=>>");

  do{
    catego=getch();
  }while(catego!='1' && catego!='2' && catego!='3');

  switch(catego){
   case '1':cargarfrutas();
   break;
   case '2':cargardeportes();
   break;
   case '3':cargarpaises();
   break;
   }
   return 0;
}


[Modificado el 2/18/02 por tenesor]
Título: Re: ALGUIEN DISPONE DEL JUEGO DEL AHORCADO EN C?????
Publicado por: ibito en Lunes 18 de Febrero de 2002, 23:26
Y como harias eso pero que las palabras esten en un documento de texto?
Título: Re: ALGUIEN DISPONE DEL JUEGO DEL AHORCADO EN C?????
Publicado por: tenesor en Martes 19 de Febrero de 2002, 03:04
Bueno, eso es simple. Lo unico que se ha de hacer es hacer tres ficheros (puedes utilizar de texto y que los lea el usuario o puedes utilizar binarios para que sean ilegibles:)), cada fichero es una categoria. En cada categoria metes las palabras que quieras. Y en las funciones en las que eliges una palabra, lees todas en un array y con un numero aleatorio eliges la palabra que esta almacenada en esa variable del array de esa categoria.

No se si se entiende lo que quiero decir, pero si me pongo (ahora estoy un poquillo liado pero es simple y rapido) ya mandare el codigo fuente del ahoracado con ficheros:)

Saludos,
   Tenesor
Título: ALGUIEN DISPONE DEL JUEGO DEL AHORCADO EN C?????
Publicado por: Johanyx en Miércoles 20 de Febrero de 2002, 09:48
GRACIAS TIOS SOYS LA LECHE!!! vaya peaso se program!! solo me queda retocarlo como lo harias para no tener variables globales y hacerlo con locales, deberia de meterle apuntadores???? como se hace con apuntadores

MERCI!!! soys cojonudos;);););)