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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


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


Desconectado Desconectado

Mensajes: 2.294


Ver Perfil
[consulta] ahorcado :B
« en: 1 Febrero 2011, 08:14 am »

wenas, hace como 1 mes se me ocurrio hacer un ahorcado y bue, al principio pense q habia terminado de pensarlo y de pensarlo bien, al parecer me ekivoke ;D
bue el tema es que no se me ocurre como mostrar el caracter ingresado si es valido, x ejemplo

z_ _ _ _ a
ingresa r y muestre
z _ r r a
esto es lo que tengo hasta ahora
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. main () {
  4.     char palabra[10][10]={{"cabina"},
  5.                           {"olas"},
  6.                           {"zorra"},
  7.                           {"heladera"},
  8.                           {"p0rno"},
  9.                           {"mosca"},
  10.                           {"monitor"},
  11.                           {"pelota"},
  12.                           {"viento"},
  13.                           };
  14.    char letra[1];
  15.     int c,random,x,longitud,intentos=5;
  16.     srand(time(NULL));
  17.     random=(rand()%9);
  18.     longitud=strlen(palabra[random])-1;
  19.     printf("##################################\n");
  20.     printf("       palabra a encontrar\n");
  21.     printf("##################################\n");
  22.     printf("intentos : %d\n",intentos);
  23.     printf("%c",palabra[random][0]);
  24.     for(c=1;c<=longitud-1;c++) {
  25.                    printf(" _ ");
  26. }
  27.     printf("%c\n",palabra[random][longitud]);
  28.     printf("ingrese su letra: ");
  29.     scanf("%s",letra);
  30.     printf("Tu letra es: %s\n",letra);    
  31.     for (x=1;x<=longitud-2;x++){
  32. if (letra[0]==palabra[random][x]) printf("adivinaste la letra %s\n",letra);
  33. }
  34.     getchar();
  35.     }
  36.  
el tema tambien esta que no manejo punteros , por temas de tiempo esto lo hago para distrarme cuando no trabajo o estoy diseniando :3
saludos


En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: [consulta] ahorcado :B
« Respuesta #1 en: 1 Febrero 2011, 12:28 pm »

Estas intentando hacer un ahorcado y por lo que veo, no tienes mucha idea de programar.

1º.- La función main se define como int y debe devolver un valor.
2º.- Defines letra como un array cuando puedes hacer esto:

Código
  1. char letra;
  2. scanf("%c", &letra);

3º.- Para hacer el ahorcado tienes que hacer búsquedas en las cadenas, y lo más normal es hacerlo con punteros.  En la cabecera string.h tienes funciones como strlen, strcpy, strstr, etc...

4º.- La lista de palabras la puedes definir así:

Código
  1. char  * palabra[]= {"cabina",
  2.                    "olas",
  3.                    "heladera",
  4.                    "p0rno",
  5.                    "mosca",
  6.                    "monitor",
  7.                    "pelota",
  8.                    "viento"};
  9.  

Saludos.


En línea

Darioxhcx


Desconectado Desconectado

Mensajes: 2.294


Ver Perfil
Re: [consulta] ahorcado :B
« Respuesta #2 en: 1 Febrero 2011, 19:52 pm »

aver, trankilo señor anderson
1º vos hablas sobre el return para main ? na
2º si el usuario escriba , mas de 1 caracter va a funcionar mal si no me ekivoko , o no ?
 
3 y 4 , si gracias
me iluminase y me dio una gran idea señor anderson, gracias por mostrarme el camino
En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: [consulta] ahorcado :B
« Respuesta #3 en: 1 Febrero 2011, 20:41 pm »

¿A qué viene lo de señor anderson?  :huh:

1º.- Si, me refiero al return del main. La función main hay que definirla para que devuelva un int, y finalizando el programa con un return 0 le comunicas al sistema operativo que tu aplicación se ejecutó con éxito.

2º.- Si, sólo te recoge un caracter. Lo que tu hacias con %s no te debería funcionar.
Para coger todos los caracteres hasta que se pulse enter, tienes que hacer algo como esto:

Código
  1. char buff[10];
  2. scanf("%[^\n]", buff);

Saludos.
En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: [consulta] ahorcado :B
« Respuesta #4 en: 1 Febrero 2011, 20:56 pm »

alguna vez deje a medias un ahorcado en c haaaace muuuchisimo tiempo, cuando apenas comenzaba, antes de dejar de programar y ahora retomarlo... el caso es que lo voy a buscar, te lo voy a pasar para que lo estudies y saques tus propias conclusiones de como deberías hacerlo...

--EDIT--
Aquí está, está escrito usando las librerias ncurses (espero no sea problema) y las palabras son leidas desde un archivo de texto que se debe llamar palabras.txt aunque eres libre de cambiarlo es por eso que la cantidad de palabras es irrelevante, ya que el ciclo acaba cuando no hay nada más que leer, lo único que falto implementar (aparte de acabarlo XD) fue la selección aleatoria de palabras..... El código es muy viejo y está super incompleto, pero creo que debería servir como una idea general (es bueno que lo leas entiandas y hagas el tuyo porque no creo que el mio te sirva de mucho) de como deberias hacerlo: http://www.mediafire.com/?datuf1pr4x92ill

Espero sirva de algo saludos
« Última modificación: 1 Febrero 2011, 21:08 pm por gankutsuo » En línea

Nork

Desconectado Desconectado

Mensajes: 196



Ver Perfil
Re: [consulta] ahorcado :B
« Respuesta #5 en: 1 Febrero 2011, 21:08 pm »

Así rápido se me ocurre una manera que quizá te sirva. Crear un array de boleanos del mismo tamaño que la palabra y cada vez que acierte una letra pones la posición del array de boleanos a 1 y así muestras las letras que lleva (la posición que este a 1 correspondrá a la letra de la palabra a mostrar. Si no muestras '_').

Ex:

array auxiliar de boleanos:   0 0 0 0 0
palabra a adivinar:              h  e l  l  o

Si el usuario introduce la h ->

array auxiliar de boleanos:   1 0 0 0 0
palabra a adivinar:              h  e l  l  o

Si el usuario introduce la l ->

array auxiliar de boleanos:   1 0 1 1 0
palabra a adivinar:              h  e l  l  o

S4ludos!
« Última modificación: 1 Febrero 2011, 21:09 pm por Nork » En línea

C' Est La Vie
Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: [consulta] ahorcado :B
« Respuesta #6 en: 1 Febrero 2011, 23:47 pm »

Así rápido se me ocurre una manera que quizá te sirva. Crear un array de boleanos del mismo tamaño que la palabra y cada vez que acierte una letra pones la posición del array de boleanos a 1 y así muestras las letras que lleva (la posición que este a 1 correspondrá a la letra de la palabra a mostrar. Si no muestras '_').

Ese método es muy chorizo... la forma "normal" de hacerlo es usando las funciones de cadenas para buscar coincidencias, no tiene más ciencia.

Saludos.
En línea

Nork

Desconectado Desconectado

Mensajes: 196



Ver Perfil
Re: [consulta] ahorcado :B
« Respuesta #7 en: 2 Febrero 2011, 00:03 am »

Ese método es muy chorizo... la forma "normal" de hacerlo es usando las funciones de cadenas para buscar coincidencias, no tiene más ciencia.

Saludos.

No sé que será para ti chorizo pero la idea que le he dado no tiene nada que ver con lo que dices... usando funciones de cadenas, como dices, puedes ver si esta la letra para luego marcar el 1 en el array de boleanos. Si no, ¿cómo sabes las que lleva acertadas? de algún modo tienes que anotarlo.
En línea

C' Est La Vie
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: [consulta] ahorcado :B
« Respuesta #8 en: 2 Febrero 2011, 05:07 am »

¡Buenas!

Ya se que no se hacen trabajos, pero ya que se ha dejado un enlace, en este otro enlace tienes el codigo que acabo de colgar. Maneja structs, funciones, punteros y memoria dinamica. Evidentemente, se puede mejorar mucho cargando los datos desde un fichero, eso si quieres lo haces tu, ya que el hecho de utilizar vectores te limita la cantidad de datos. Si no tienes claro como funciona todo eso y las funciones de la biblioteca estandar que se manejan, no se si lo podras seguir, pero espero que te sirva de orientacion y que lo completes con el codigo que dejo gankutsuo.

Si no entiendes el codigo, te tocara estudiar. Hay algun comentario, pero no todo esta explicado, por lo tanto tendras que revisarlo linea a linea.

¡Saludos!

Por cierto, si no cambias de actitud poca ayuda mas vas a conseguir en esta vida.
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Darioxhcx


Desconectado Desconectado

Mensajes: 2.294


Ver Perfil
Re: [consulta] ahorcado :B
« Respuesta #9 en: 2 Febrero 2011, 06:33 am »

te entiendo do-while , capas q si mi actitud no fue de las mejores, pero creo yo, que cuando tengo que dar opinion sobre el trabajo o lo realizado x alguien q necesita ayuda, eso mismo , necesita ayuda y/o orientacion , lo que pedi fue una idea de como seguir o como realizar el objetivo, no me van a servir comentarios como "ta todo mal , empesa de nuevo"  , si no me decis en que estoy mal o como minimo, como plantear la solucion, y se q no se hacen las tareas, o es una tarea ni trabajo de universidad ni nada x el estilo, eso lo hago x hoobie en mis ratos libres
voy a mirar los 2 codigos y si tengo tiempo libre a ver si entiendo sobre los fucking punteros q me terminaron haciendo kilombo cuando los vi :3
gracias
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
novato en C# juego del ahorcado
.NET (C#, VB.NET, ASP)
NeoXero 2 13,019 Último mensaje 30 Mayo 2007, 15:19 pm
por »~^~«CkNU!»~^~«
C# el ahorcado
.NET (C#, VB.NET, ASP)
Err... 7 15,855 Último mensaje 10 Enero 2011, 15:24 pm
por Khronos14
Juego del ahorcado C#
.NET (C#, VB.NET, ASP)
treblatp 3 12,931 Último mensaje 3 Febrero 2011, 20:18 pm
por Khronos14
ahorcado
Programación C/C++
[JudasTeam]-BUG 8 6,023 Último mensaje 18 Junio 2011, 03:54 am
por BlackZeroX
ahorcado en c
Programación C/C++
chivis cristian 1 3,113 Último mensaje 11 Diciembre 2011, 20:26 pm
por [L]ord [R]NA
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines