Foros del Web » Programación para mayores de 30 ;) » C/C++ »

AYUDA ahorcado en c++

Estas en el tema de AYUDA ahorcado en c++ en el foro de C/C++ en Foros del Web. hola buenos dias , resulta que he de hacer una practica de c++ con el juego del ahorcado , una opcion ha de ser que ...
  #1 (permalink)  
Antiguo 10/06/2009, 04:11
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
AYUDA ahorcado en c++

hola buenos dias , resulta que he de hacer una practica de c++ con el juego del ahorcado , una opcion ha de ser que introduzcas una palabra y luego jugar y el programa la vaya haciendo , otra opcion es hacer el juego pero con la palabra por defecto "AHORCADO" esta opcion ya la tengo hecha , la que no se hacer es la de poner tu la palabra y jugar , no se si me explico.

Si alguien me puede ayudar , en el siguiente mensaje os escribo como tengo hecho la opcion de jugar pero con la palabra por defecto (AHORCADO) , a ver si alguien amable me puede ayudar
  #2 (permalink)  
Antiguo 10/06/2009, 05:34
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 4 meses
Puntos: 68
Respuesta: AYUDA ahorcado en c++

pues si lo tienes montado con la palabra ahorcado, que te introduzcan una palabra no cambia mucho la cosa, has de usar el método de escritura/lectura, guardarla en una variable y pasarle esa variable.
__________________
No diseñes usando tablas.
  #3 (permalink)  
Antiguo 10/06/2009, 08:37
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Respuesta: AYUDA ahorcado en c++

Claro, como dice hades87, es muy parecido a lo que tenes hecho solo que vas a tener un arreglo vacio para que ingrese el usuario una palabra y despues vas comparando como supuestamente hiciste antes...
Pega el codigo que tenes asi lo van viendo y si tenes algun problema te vamos ayudando (o por lo menos los que mas saben je)

Saludos
  #4 (permalink)  
Antiguo 10/06/2009, 09:37
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: AYUDA ahorcado en c++

esto es lo que tengo , la funcion void palabra es la que tengo medio hecha y no me tira haber si alguien me lo puede "hacer " o ayudar.
gracias:

#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <string.h>
#include <process.h>

typedef struct
{
char Nombre[15];
int Aciertos;
int Error;
int Victorias;

}
DatoJugador;


char resp;
DatoJugador jugadores[3];

void Jugadores(DatoJugador*);
void Palabra(char *, char *);
void Jugar(DatoJugador*);
void Aciertos(DatoJugador*);
void Ranking(DatoJugador *);

/////////////////////////MENU//////////////////////////

void main ()
{
setlocale(LC_ALL, " Spanish");
Jugadores(jugadores);
char palabra_1 [15];
char palabra_2[15];
fflush (stdin);
system ("cls");
do
{
printf ("\n\n Elije una opcion :");
printf ("\n\n 1:Introduce una palabra ");
printf ("\n\n 2: Jugar");
printf ("\n\n 3: Jugador con mas aciertos ");
printf ("\n\n 4: Ranking de jugadores\n");
printf ("\n\n 5: Salir");
resp=getch();
system ("cls");
//fflush (stdin);

switch (resp)
{
case '1':
system("cls");
Palabra(palabra_1,palabra_2);
break;

case '2':
system("cls");
Jugar(jugadores);
break;

case '3':
system("cls");
Aciertos (jugadores);
break;

case '4':
system("cls");
Ranking (jugadores);
break;
}
system ("cls");

}
while(resp!='5');
}

///////////////////////////////////////////////////

void Jugadores(DatoJugador* Jug)// INTRODUCIR EL NOMBRE DE LOS 3 CONCURSANTES


{
printf ("\n\n Bienvenido al programa de la ruleta:");
printf ("\n\n A continuacion sigue los pasos a realizar:");
int i;
for (i=0;i<3;i++)

{
printf ("\n-----------------------------------------");
printf ("\n\n Introduce el nombre de un concursante:");
gets (Jug[i].Nombre);
}
}

//////////////////////////////////////////

void Palabra(char palabra_1 [15] ,char palabra_2[15])//INTRODUCIR PALABRA NUEVA //ESTA FUNCION NO FUNCIONA
//NO RECOGE LA PALABRA INTRODUCIDA
{

int i;
char palabra [15];
printf ("Introduce una palabra nueva:");

gets(palabra);

for (i=0;i<15;i++)
{
palabra_2[i]=palabra[i];
}
strcpy(palabra_1, palabra_2);

}



////////////////////////////////////////////////////

void Jugar(DatoJugador* Jug) //JUGAR
{
int i;
int z;
int x;
int acertar;
int palabra_Acertada;
int fallo;
int Fin;
char respuesta ;
char palabra_1[15]="Ahorcado";//PASAR A GLOBAL Y PEDIR PALABRA DE 1
char palabra_2[15]="--------";
char Abecedario[110]="A a B b C c D d E e F G g H h I i J j K k L l M m N n Ñ ñ O o P p Q q R r S s T t U u V v W w X x Y y Z z ";
Fin =0;
resp= ' ';
palabra_Acertada=0;
i=0;
Jug[0].Aciertos=0 ;
Jug [0].Error;
Jug[1].Aciertos=0;
Jug[1] .Error;
Jug[2].Aciertos=0;
Jug [2].Error;
do
{
do
{
acertar=0;
system("cls");
printf("\n %s ",Abecedario);
printf ("\n %s ", palabra_2);
printf ("\n %s ", Jug[i].Nombre);
fflush(stdin);
printf("Introduce una letra del abecedario:");
scanf ("%c",& resp);

for(z=0;z<15;z++)
{
if (resp==palabra_1[z])
{
acertar=1;
palabra_2[z]=palabra_1[z];
Jug[i].Aciertos++;
}
}
for (x=0;x<110;x++)
{
if (resp==Abecedario[x])
{
Abecedario[x]=32; // en codigo ANSI es el espacio en blanco
}
}
Fin=1; //cuando es 1 se sigue haciendo el bucle do while
for(z=0;z<15;z++)
{
if (palabra_2[z]!=palabra_1[z])
{
Fin=0;
}
}
}
while(acertar==1 && Fin==0);

if (Fin==1)
{
palabra_Acertada=1;
printf("\n\n Enhorabuena , has acertado la palabra");
Jug[i].Victorias++ ;//quitarlo hoy por el de abajo
Jug [i].Error++;
printf ("\n\n Pulsa una tecla para volver al menu principal :");
getch();
}
else
{
i++;
//Jug [i].Error++;

}
if(i==3)
{
i=0;
}

}while(palabra_Acertada==0);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
//

void Aciertos (DatoJugador* Jug)
// FUNCION ACIERTOS JUGADORES
{
int i;
for (i=0;i<3;i++)
{
printf ("\n\n Estos son los datos de los aciertos de los jugadores:");
printf ("\n----------------------------------------------------------");
printf ("\n %s------> ",Jug[i].Nombre);
printf (" %d \n\n ",Jug[i].Aciertos);
}
getch();
}
/////////////////////////////////////////////////////////////////////////////////////////////


void Ranking (DatoJugador * Jug ) //FUNCION RANKING DE LA PARTIDA


{
printf ("\n\n Esta es la opcion que muestra el Ranking:");
printf ("\n----------------------------------------------");
printf ("\n\n A continuacion te ofreceran el resultado total de aciertos y de errores:");

int i;
for (i=0; i<3; i++)


{
fflush (stdin);
printf ("\n %s ",Jug[i].Nombre);
printf ("\n Numero de Partidas Ganadas (VICTORIAS): %d" , Jug[i].Victorias);
printf ("\n Numero de errores en la partida : %d \n " , Jug [i].Error );
//PERFECTO , ERROR ERA QUITAR ; Y LIMPIABA EL NUMERO

//FALLO: AL PRIMER JUGADOR NO LE COGE LOS ERRORES
}
getch ();

}
  #5 (permalink)  
Antiguo 10/06/2009, 11:02
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: AYUDA ahorcado en c++

No estoy seguro si es este tu problema, pero si quieres acceder a palabra_1 y palabra_2 desde la función Jugar, o las tienes que agregar como argumento o tienes que declararlas como globales y poner la función Palabra sin argumentos.
O tal vez solo tienes que llamar a la función palabra desde jugar donde tienes escrita la palabra Ahorcado.

La función palabra no parece tener ningun problema con la excepción de que tal vez cuando inicializas palabra2 quiziste escribir:

Código c:
Ver original
  1. for (i=0;i<15;i++)
  2. {
  3. palabra_2[i]='-';
  4. }

Como te das cuenta que no recoge la palabra introducida???

Espero que te sirva.
  #6 (permalink)  
Antiguo 10/06/2009, 11:43
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: AYUDA ahorcado en c++

No me funciona pero gracias de todas formas , alguien me lo puede mediohacer esa funcion hecha que sepa que funcione , es que la practica es para mañana y llevo desde las 4 de la tarde intentando acabarlo pero no sale.

una buena persona que me ayude por favor!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:25.