• Miércoles 8 de Mayo de 2024, 02:42

Autor Tema:  Codigo De Un Ahorcado Principiante  (Leído 1524 veces)

Pinneaple

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Codigo De Un Ahorcado Principiante
« en: Jueves 20 de Marzo de 2008, 01:17 »
0
Necesito que alguien me ayude a realizar un juego de ahorcado, en realidad es simple, introduzco una palabra, el sistema borra la pantalla, luego introduzco la letra, se escanea la letra en la palabra, si esta, se imprime en la pantalla las posiciones donde se encuentray si no esta, solo aparece un espacio, debo de hacer esto hasta que aparezcan todas las letras o falle 5 veces, se supone que lo debo hacer con la libreria string.h, mas no se que hacer, este es  mi comienzo.
El programa en general, con 2 opciones principales, el juego del ahorcado ,y otra aplicacion, pero la otra ya la tengo, esta es la parte dificil.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
  char palabra[30],letra;
  int cantidad;
  int count;
  int count2=0;
  int intentos;
 
  printf("Dame la palabra\n\n");
  //scanf("%s",&palabra);//
  gets(palabra);
  strlwr(palabra);


  count=0;
  system("CLS");
  printf("Dame una letra\n\n");
  scanf("%c",&letra);

  do
{
  if(palabra[count]==letra)
  {
  printf("%c",letra);
  }
 printf(" ");
count++;
}while(palabra[count]!='\x0');
             
  system("PAUSE");   
  return 0;
}

Hasta ahora, si esta la letra, si me la imprime, y si no esta pone el espacio, pero si creo un do - while para repetir el proceso hasta que sean 5 intentos, necesito que las letras que seleccione se guarden en un arreglo?, que hago ahi?

Se supone que debe de repetirse esto hasta que complete la palabra, o falle 5 veces, y solo nos pidieron que investigaramos que funciones tiene la libreria string.h, asi que si alguien me ofrece algo de ayuda, se lo agradeceria.

Notese que solo se tiene que usar la libreria string.h, no la dos.h ni la conio.h, ni ninguna otra, ya que aun no las he usado.

Gracias de antemano a todos.

carmamezo

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
Re: Codigo De Un Ahorcado Principiante
« Respuesta #1 en: Jueves 20 de Marzo de 2008, 11:59 »
0
Hola,

podrías hacer lo siguiente, crear un arreglo de igual dimensión que la palabra que buscas y la inicializas a espacios.  Una vez hecho eso, puedes ir rellenando este arreglo con las letras correctas en su correspondiente posición...  Por ejemplo de esta manera:
Código: Text
  1.  
  2.   char palabra[30],solucion[30],fallidas[30]={&#34;&#34;},letra;
  3.   unsigned int intentos,i,ok,j=0;
  4.  
  5.   printf(&#34;&#092;n&#092;tIntroduce palabra: &#34;);
  6.   gets(palabra);
  7.   strlwr(palabra);
  8.   system(&#34;Cls&#34;);
  9.  
  10.   for(i=0;i&#60;strlen(palabra);i++)
  11.     solucion[i]='_';
  12.   solucion[i]='&#092;0';
  13.  
  14.   intentos=0;
  15.   while((intentos&#60;5) && (strcmp(palabra,solucion)!=0))
  16.   {
  17.     system(&#34;Cls&#34;);
  18.     printf(&#34;&#092;n&#092;tPalabra: %s&#34;,solucion);
  19.     printf(&#34;&#092;n&#092;n&#092;tIntentos fallidos: %s&#34;,fallidas);
  20.     printf(&#34;&#092;n&#092;tNumero de fallos: %d&#34;,intentos);
  21.     printf(&#34;&#092;n&#092;tIntroduce letra: &#34;);
  22.     scanf(&#34;%c&#34;,&letra);
  23.     fflush(stdin);
  24.     ok=0;
  25.     for(i=0;i&#60;strlen(palabra);i++)
  26.     {
  27.       if(palabra[i]==letra)
  28.       {
  29.         solucion[i]=palabra[i];
  30.         ok++;
  31.       }
  32.     }
  33.     if(ok==0)
  34.     {
  35.       fallidas[j]=letra;
  36.       intentos ++;
  37.       j++;
  38.     }
  39.  
  40.   }
  41.   system(&#34;Cls&#34;);
  42.   printf(&#34;&#092;n&#092;tPalabra: %s&#34;,solucion);
  43.   printf(&#34;&#092;n&#092;n&#092;tIntentos: %s&#34;,fallidas);
  44.   printf(&#34;&#092;n&#092;tFallos: %d&#34;,intentos);
  45.  
  46.   printf(&#34;&#092;n&#092;n&#092;n&#092;n&#092;tLa palabra correcta es: %s&#34;,palabra);
  47.   if(strcmp(palabra,solucion)!=0)
  48.     printf(&#34;&#092;n&#092;n&#092;tLo siento, no has encontrado la palabra&#34;);
  49.   else
  50.     printf(&#34;&#092;n&#092;n&#092;tENHORABUENA!!&#34;);
  51.  
  52.   fflush(stdin);
  53.   printf(&#34;&#092;n&#092;n&#092;tPulsa &#60;enter&#62; para terminar&#34;);
  54.   getchar();
  55.  
  56.  
Ten en cuenta que aqui hay funciones de la librería string.h y otras que no.  Es una posible solución, pero recuerda que AQUI NO SE HACEN TAREAS (que es una de las respuestas más comunes del foro).  Espero que te sirva como comienzo para no empezar con mal pie en esto de la programación...

Un saludo.
 :lightsabre:
No hay tonto más molesto que el ingenioso.