elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ahorcado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ahorcado  (Leído 5,389 veces)
[JudasTeam]-BUG

Desconectado Desconectado

Mensajes: 2


¿ Quieres Jugar ?


Ver Perfil WWW
ahorcado
« en: 16 Junio 2011, 09:11 am »

taba el pedo,recorriendo el foro y vi que habia muchos programas de juegosde ahoracado asi qe para no aburrirme hice uno yo tambien,lo mas loco es que despues de programarlo me puse a jugar y estuve un buen rato entretenido,adivinando palabras xD!

Código:
#include <stdio.h>

#define INTENTOS 5                                                              //Numero maximo de intentos
#define ALFABETO "abcdefghijklmnñopqrstuvwxyz"                                  //Caracters permitidos
#define PALABRAS 38

int intentos;                                                                   //Numero de intentos realisados
char LetraEscojida;                                                             //Letras nombradas
char *palabras[PALABRAS]=                                                       /*Palabras para jugar*/
{
     "hola",
     "hello",
     "genital",
     "chupar",
     "disfrutalo",
     "judas",
     "team",
     "bug",
     "retorica",
     "hiphop",
     "asociacion",
     "libre",
     "de",
     "palabras",
     "sobame",
     "la",
     "quena",
     "forro",
     "foro",
     "zorro",
     "tornado",
     "peron",
     "evita",
     "phamtom",
     "el",
     "gauchito",
     "gil",
     "lamela",
     "soy",
     "pro",
     "constitucion",
     "consternado",
     "chojin",
     "manzana",
     "abesedario",
     "argentina",
     "chupete",
     "arina",
};
     
int palabra;                                                                    //Palabra con la que se esta jugando (indise de *palabras[])
int PalabraLen;                                                                 //Longitud de la palabra
char PalabraOculta[100];                                                        //Muestra el numero de giones y letras amedida que la palabra se va adivinando

int Palabra_completada(char *);                                                 //Se ingresa la palabra oculta,si la palabra fue adivinada,debuelve 1,si no debuelve 0
int LetraValida(char *letra);                                                   //si caracter ingresado sea una letra del alfabeto español debuelve 1 ,sino debuelve 0 y borra el caracter
 

int main()
{
   printf("toy al pedo.. programe esto.. si tas al pedo como yo.. jugalo");
   printf("\nsolo se usan letras minusculas");
   printf("\n\n                 SUERTE ! !");
   getchar();
   
   system("cls");                                                               //borrar la pantalla en windows     
 
   int I;                                                                       //contador
   int Descontar;                                                               //FLAG - si no se aserto con la letra ingresada se manda a 1 indicando qeu se descuenta una vida
   palabra=0;
 
   do{   
     
      PalabraLen=strlen(palabras[palabra]);
      intentos=INTENTOS;
     
      memset(PalabraOculta,0,100);
     
      for(I=0;I < PalabraLen;I++)
           PalabraOculta[I]='-';
     
      while(!Palabra_completada(PalabraOculta))
      {                                 
            printf("elige una letra \n     Intentos Restantes %d\n        %s\n%d letras\n",intentos,PalabraOculta,PalabraLen);
            do{
                 scanf("%c",&LetraEscojida);                                    //pido un caracter
                 fflush(stdin);                                                 //borro el \n del flujo ycaulqueir caracter que sobre                       
              }while(!LetraValida(&LetraEscojida));                             //si el caracter es balido salgo del loop
         
            Descontar=1;                                                        //Mando la bandera a 1
            for(I=0;I < PalabraLen;I++)
               {
              if(palabras[palabra][I] == LetraEscojida)
                  {
                    PalabraOculta[I]=LetraEscojida;                             //reemplaso los guines por las letras que corresponden a la palabra (si la hay)                               
                    Descontar=0;                                                //no se descontara una vida
              }
            }   

            if(Descontar)intentos--;                                            //si no se aserto,se descuenta una vida
           
            system("cls");                                                      //borrar la pantalla en windows     
            if(!intentos)                                                       //si no quedan mas intentos (perdio el juego)
            {
                  printf("Perdiste gilaso... \n        la plabra era\n         %s",palabras[palabra]);                                                                             
                  break;                                                        //salgo del loop                                                                                                 
            }                                                             
        }
           if(intentos)
                printf("          %s\n       GASATE! gilaso...",palabras[palabra]);
         
           getchar();
           
           printf("\n Juegas de nuevo 1-Si / 0-No  ");
           scanf("%d",&PalabraLen);                                             //Uso la variable PalabraLen .. porque ta al p2 ..
           fflush(stdin);                                                       //borro el \n del flujo y caulqueier caracter que sobre .. otra vez
           
           if(palabra < (PALABRAS - 1))                                         //Compruevo si se acabo la lista de palabras
              palabra++;                                                        //cambio la palabra 
              else
              palabra=0;                                                        //buelta a empezar
     
     system("cls");                                                             //borrar la pantalla en windows     
     }while(PalabraLen);
   
   return 0;
}

int Palabra_completada(char *palabra)                           
{
    int len=strlen(palabra);                                                    //guarda la longitud de la cadena
    int i;                                                                      //contador
   
    for(i=0;i < len;i++)
       if(palabra[i] == '-')
        return 0;                                                               //la palabra no fue adivinada         
     
        return 1;                                                               //adivino
}

int LetraValida(char *letra)
{
     char *caracter=ALFABETO;                                                   //Guarda la cadena con las letras del alfabeto
     int i=0;                                                                   //Indise que cuenta los caracteres
     int LongitudCadena=strlen(caracter);                                       //Guarda la longitud de la cadena apuntada porc aracter
     
        for(i=0;i < LongitudCadena;i++)
          if(*letra == caracter[i])
           return 1;                                                            //letra valida
           
           *letra=0;
           return 0;                                                            //letra invalida
}


En línea

Dadme 10 hackers y dominaré el mundo en 24 horas...
"Malditos niños, todos son iguales"
Don Pollo

Desconectado Desconectado

Mensajes: 74

/* No comments */


Ver Perfil
Re: ahorcado
« Respuesta #1 en: 16 Junio 2011, 12:55 pm »

"Indise", "remplaso", "aserto", "compruevo", "abesedario", "arina", etc etc.

Si quieres poner tu código a disposición de los demás, intenta por lo menos tener una buena ortografía.

Por cierto, tu ahorcado está bastante limitado ya que sólo puedes jugar con esas 38 palabras, podrías haberlo hecho para que reconociese cualquier palabra y así hacer el juego más divertido.

Aquí te dejo el código de mi ahorcado que hice en una práctica que me mandaron cuando empecé a programar y que sí reconoce cualquier palabra:

Código
  1. #include <stdio.h>
  2.  
  3. #include <string.h>
  4.  
  5. #define MAX 50
  6.  
  7.  
  8.  
  9. void menu () {
  10.  
  11. printf("1.- Introducir palabra.\n");
  12.  
  13. fflush(stdout);
  14.  
  15. printf("2.- Comenzar el juego.\n");
  16.  
  17. fflush(stdout);
  18.  
  19. printf("3.- Finalizar el juego.\n");
  20.  
  21. fflush(stdout);
  22.  
  23. printf("Indique la opcion que desea ejecutar: ");
  24.  
  25. fflush(stdout);
  26.  
  27.  
  28.  
  29. }
  30.  
  31.  
  32.  
  33.  
  34.  
  35. int main (){
  36.  
  37. int opcion,i,cont,tam,cont2,cont3,afirmativo,afirmativo2;
  38.  
  39. char cadE[MAX],cadS[MAX],letra;
  40.  
  41. do{
  42.  
  43. do{
  44.  
  45. menu();
  46.  
  47. scanf("%d",&opcion);
  48.  
  49. while(getchar()!='\n');
  50.  
  51. }while((opcion<1)||(opcion>3));
  52.  
  53. switch(opcion)
  54.  
  55. {
  56.  
  57. case 1:
  58.  
  59. printf("\nIntroduzca la palabra con la que desea comenzar el juego: ");
  60.  
  61. fflush(stdout);
  62.  
  63. scanf("%50s",cadE);
  64.  
  65. afirmativo=1;
  66.  
  67. break;
  68.  
  69. case 2:
  70.  
  71. if (afirmativo!=1){
  72.  
  73. printf("\nEJECUTE PRIMERO EL PASO 1.\n\n");
  74.  
  75. }else{
  76.  
  77. for(i=0;i<strlen(cadE);i++){
  78.  
  79. cadS[i]='-';
  80.  
  81. }
  82.  
  83. cadS[strlen(cadE)]='\0';
  84.  
  85. tam=strlen(cadE);
  86.  
  87. cont=0;
  88.  
  89. cont2=0;
  90.  
  91. do{
  92.  
  93. afirmativo2=0;
  94.  
  95. puts(cadS);
  96.  
  97. printf("Introduzca una letra: ");
  98.  
  99. fflush(stdout);
  100.  
  101. scanf("%c",&letra);
  102.  
  103. while(getchar()!='\n');
  104.  
  105. for(i=0;i<tam;i++){
  106.  
  107. if(cadE[i]==letra){
  108.  
  109. cadS[i]=letra;
  110.  
  111. cont2=cont2+1;
  112.  
  113. afirmativo2=1;
  114.  
  115. cadE[i]='/';
  116.  
  117. }
  118.  
  119. }
  120.  
  121. if(afirmativo2==0){
  122.  
  123. cont=cont+1;
  124.  
  125. cont3=6-cont;
  126.  
  127. printf("\nLETRA INCORRECTA!! LE QUEDAN %d INTENTOS\n\n",cont3);
  128.  
  129. ;
  130.  
  131. }else{
  132.  
  133. printf("\nLETRA CORRECTA!!\n\n");
  134.  
  135. }
  136.  
  137. }while((cont<6)&&(cont2<tam));
  138.  
  139. if(cont==6){
  140.  
  141. printf(cadS);
  142.  
  143. printf("\n\nGAME OVER. INSERT COIN\n\n");
  144.  
  145. fflush(stdout);
  146.  
  147. }else{
  148.  
  149. printf(cadS);
  150.  
  151. printf("\n\nYOU WIN!!\n\n");
  152.  
  153. fflush(stdout);
  154.  
  155. }
  156.  
  157. break;
  158.  
  159. }
  160.  
  161. }
  162.  
  163. }while(opcion!=3);
  164.  
  165. return 0;
  166.  
  167.  
  168.  
  169. }


« Última modificación: 16 Junio 2011, 15:14 pm por Don Pollo » En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: ahorcado
« Respuesta #2 en: 17 Junio 2011, 02:07 am »

Os recomiendo a los 2 que os paséis por este hilo: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Saludos.
En línea

Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: ahorcado
« Respuesta #3 en: 17 Junio 2011, 02:13 am »

Puedo entender que es lo que no debe hacer el del primer post, pero el segundo post? O ando muy perdido o no me ifjo muy bien en que hace que no debería hacer.

Un saludo.
En línea

[JudasTeam]-BUG

Desconectado Desconectado

Mensajes: 2


¿ Quieres Jugar ?


Ver Perfil WWW
Re: ahorcado
« Respuesta #4 en: 17 Junio 2011, 05:37 am »

xD  ni que lo hubiera programado con,ganas lo hice en 2 horas,ya sse q tiiene errores..
En línea

Dadme 10 hackers y dominaré el mundo en 24 horas...
"Malditos niños, todos son iguales"
Don Pollo

Desconectado Desconectado

Mensajes: 74

/* No comments */


Ver Perfil
Re: ahorcado
« Respuesta #5 en: 17 Junio 2011, 15:57 pm »

No me he podido parar a leer detenidamente el post que has comentado, Khronos14, así que, qué se supone que hice que no debería haber hecho? Quizá un uso excesivo de fflush?
En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: ahorcado
« Respuesta #6 en: 17 Junio 2011, 23:01 pm »

No me he podido parar a leer detenidamente el post que has comentado, Khronos14, así que, qué se supone que hice que no debería haber hecho? Quizá un uso excesivo de fflush?

A parte de eso, no es recomendable usar scanf. Si no lo usaras, no tendrías que hacer un fflush. El código es bastante desordenado, la función main no hay por donde cogerla, te pierdes mucho.

Para las condiciones y los bucles, si son de una sola línea no hace falta poner llaves.

Saludos.
En línea

Don Pollo

Desconectado Desconectado

Mensajes: 74

/* No comments */


Ver Perfil
Re: ahorcado
« Respuesta #7 en: 18 Junio 2011, 01:53 am »

A parte de eso, no es recomendable usar scanf. Si no lo usaras, no tendrías que hacer un fflush. El código es bastante desordenado, la función main no hay por donde cogerla, te pierdes mucho.

Para las condiciones y los bucles, si son de una sola línea no hace falta poner llaves.

Saludos.

Ese codigo lo hice en el primer curso de carrera cuando estaba empezando, y a esas alturas es normal hacer ese tipo de cosas, o no?

De todas formas, debería haber puesto comentarios para el que vea el código sepa por donde va la cosa.
« Última modificación: 18 Junio 2011, 01:55 am por Don Pollo » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: ahorcado
« Respuesta #8 en: 18 Junio 2011, 03:54 am »

.
Cada cosa a su tiempo, primero que se aprenda el lenguaje y lo demás como lo que no hay que hacer, estructura, ordenamiento serán ya los últimos, después con TODO lo anterior aprendido se pueden entrar en proyectos, así es como se aprende Prueba-Error ( pequeños programas como este ).

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
C# el ahorcado
.NET (C#, VB.NET, ASP)
Err... 7 15,338 Último mensaje 10 Enero 2011, 15:24 pm
por Khronos14
Juego del ahorcado C#
.NET (C#, VB.NET, ASP)
treblatp 3 12,614 Último mensaje 3 Febrero 2011, 20:18 pm
por Khronos14
Ayuda, programa en C .. El ahorcado....
Programación C/C++
TopoJunior 4 4,602 Último mensaje 15 Febrero 2013, 23:34 pm
por X3R4CK3R
ayuda con ahorcado
Programación C/C++
amy26 2 1,917 Último mensaje 16 Marzo 2013, 21:58 pm
por Puntoinfinito
AYUDA ahorcado en c
Programación C/C++
KIDRAP1 3 2,623 Último mensaje 2 Julio 2013, 20:38 pm
por pacoperico
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines