• Lunes 29 de Abril de 2024, 05:36

Autor Tema:  Juego del ahorcado en C++  (Leído 16107 veces)

arezubi

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Juego del ahorcado en C++
« en: Miércoles 18 de Marzo de 2009, 19:46 »
0
Buenas!

Necesito hacer un ahorcado para clase. Lo tengo q hacer con archivos. El usuario tiene que poder añadir más palabras y que las palabras a la hora de jugar sean aleatorias.

Tengo alguna idea de como hacerlo, pero si me podeis ayudar con ideas os lo agradeceria.

Saludos

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Juego del ahorcado en C++
« Respuesta #1 en: Jueves 19 de Marzo de 2009, 03:10 »
0
No se hacen tareas.

Postea lo que hayas hecho, y con gusto se te puede ir ayudando, pero no pidas que lo hagan por ti.

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

arezubi

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Juego del ahorcado en C++
« Respuesta #2 en: Domingo 22 de Marzo de 2009, 21:37 »
0
Ya tengo algo de codigo. Terngo funciones y el principal. Me falta controlar el juego. De momento me da un error y aun depurando no lo encuentro. Mañana por la mañana subo el código que tengo, q lo tengo en el ordenador de clase  ^_^

arezubi

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Juego del ahorcado en C++
« Respuesta #3 en: Lunes 23 de Marzo de 2009, 12:33 »
0
Bueno paso el codigo que tengo. El problema que tengo de momento es que en la funcion de obtener palabra, que supuestamente es aleatoria, me da la misma palabra. La funcion de añadir palabra, si me funciona, lo unico que tengo que poner la eleccion para q pueda añadir mas de una palabra y q salga cuando quiera.

Código: C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. // Variables que representan los punteros
  5.  
  6. FILE *F_palabras;
  7.  
  8. char archivo_ahorcado[100]="/cygdrive/c/Ahorcado/palabras.txt";
  9.  
  10. int palabras_dichas[50]; // Variable donde almaceno las preguntas que voy haciendo
  11. int *p_dichas=&palabras_dichas[0];
  12. int numero_palabras=0;  // Número de preguntas que vamos haciendo
  13.  
  14.  
  15.  
  16. //Función que nos devolvera el archivo y en caso de q no se encuntre saldrá.
  17. FILE* abrir_archivo(FILE *F_archivo, char* p_nombre_archivo, char* modo)
  18. {
  19.    
  20.     F_archivo=fopen(p_nombre_archivo, modo);
  21.            
  22.     if(F_archivo==NULL)      
  23.     {
  24.         printf("No se encuentran el fichero %s!", p_nombre_archivo);
  25.         exit(-1);
  26.  
  27.     }
  28.    
  29.     return(F_archivo);
  30.    
  31. }
  32. int n_palabras()
  33. {
  34.     char buffer[200];
  35.     int contador=0;
  36.    
  37.     F_palabras=abrir_archivo(F_palabras, archivo_ahorcado,"rt");
  38.    
  39.     while(fgets(buffer, 200, F_palabras))
  40.     {
  41.         contador++;
  42.     }
  43.  
  44.     fclose(F_palabras);
  45.    
  46.     return(contador);
  47.  
  48. }
  49. void obten_palabra()
  50. {
  51.     char buffer[200];
  52.     int total_palabras;
  53.     total_palabras=n_palabras();
  54.     int i=(rand()%(total_palabras-numero_palabras))+1;
  55.     int j, x;
  56.    
  57.     F_palabras=abrir_archivo(F_palabras, archivo_ahorcado,"rt");
  58.    
  59.     for(j=0; j<i ;j++)
  60.     {
  61.         fgets(buffer, 200, F_palabras);
  62.        
  63.         for(x=0; x<numero_palabras; x++)
  64.         {
  65.             if(palabras_dichas[x]==j+1)
  66.             {
  67.                 i++;
  68.             }
  69.         }
  70.        
  71.     }
  72.    
  73.     printf("%s", buffer);
  74.    
  75.     *p_dichas=i;
  76.     p_dichas++;
  77.     numero_palabras++;  // Sumamos  1 al número de preguntas que hemos hecho
  78.    
  79.     fclose(F_palabras);
  80.    
  81. }
  82. void jugar()
  83. {
  84.    
  85. }
  86. void introduce()
  87. {
  88.     char nueva_palabra[30];
  89.     char buffer[30];
  90.     int opcion, encontrado=0, salir;
  91.     F_palabras=abrir_archivo(F_palabras, archivo_ahorcado, "at");
  92.    
  93.     do
  94.     {
  95.         do
  96.         {
  97.  
  98.             encontrado=0;
  99.             printf(" Escriba "salir" para dejar de introducir elementos.nn");
  100.             scanf("%s", nueva_palabra);
  101.             printf("La palabra que quieres introducir es:%sn",nueva_palabra);
  102.             printf("Pulsa 1 si es correcto.n");
  103.             scanf("%d",&opcion);
  104.             if(opcion==1)
  105.             {
  106.                 F_palabras=abrir_archivo(F_palabras, archivo_ahorcado, "rt");
  107.                 while(fgets(buffer, 80, F_palabras)!=NULL)
  108.                 {
  109.                     if(strncmp(buffer,nueva_palabra,strlen(nueva_palabra))==0)
  110.                     {
  111.                         printf("Esta palabra esta en el registro.n");
  112.                         encontrado=1;
  113.  
  114.                     }
  115.                 }
  116.                 fclose(F_palabras);
  117.  
  118.             }
  119.         }while(encontrado==1);
  120.                 F_palabras=abrir_archivo(F_palabras, archivo_ahorcado, "at");
  121.                 fprintf(F_palabras,"n%s", nueva_palabra);
  122.                 printf("La palabra que has introducido ha sido guardada en el registro correctamenten");
  123.                
  124.     }while(strncmp(nueva_palabra, "salir", 5)!=0);
  125.     fclose(F_palabras);
  126. }
  127. void instrucciones()
  128. {
  129.     char buffer[100];
  130.     char archivo_instrucciones[100]="/cygdrive/c/Ahorcado/instrucciones.txt";
  131.     FILE *f_instrucciones;
  132.     f_instrucciones=abrir_archivo(f_instrucciones, archivo_instrucciones,"rt");
  133.    
  134.      while(fgets(buffer, 60, f_instrucciones))
  135.     {
  136.         printf("%s", buffer);
  137.     }
  138.     fclose(f_instrucciones);
  139. }
  140.  
  141.  
  142.  
  143. int main()
  144. {
  145.     int opcion;
  146.    
  147.     printf("|||||||||||||||||||||||||||||||||||||||||||||||");
  148.     printf("||||||||||||Juego del ahorcado|||||||||||||||||");
  149.     printf("|||||||||||||||||||||||||||||||||||||||||||||||");
  150.    
  151.     printf("n1. Jugarn");
  152.     printf("2. Introducir nuevas palabrasn");
  153.     printf("3. Instruccionesn");
  154.     scanf("%d",&opcion);
  155.    
  156.     if(opcion==1)
  157.     {
  158.         obten_palabra();
  159.     }
  160.     else if(opcion==2)
  161.     {
  162.         introduce();
  163.     }
  164.     else if(opcion==3)
  165.     {
  166.         instrucciones();
  167.     }
  168.     else
  169.     {
  170.         printf("Adiosn");
  171.     }
  172. }
  173.