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
Pues en la variable donde guardas la palabra "Ahorcado" haces que se guarde la palabra que escribas y ya.
no me funciona o al menos no he sabido hacerlo esto ultimo que me has dicho , me puede ayudar alguien porfavor es para mañana.

os lo tendre en cuenta gente el que me ayudeee!!!!

gracias
Pega aquí el código que llevas y será más fácil ayudarte.
#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_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++ ;
printf ("\n\n Pulsa una tecla para volver al menu principal :");
getch();
}
else
{
Jug [i].Error++;
i++;

}
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---Solucionado: Jug [i].Error va antes del i++!!!!
}
getch ();

}
Usa la etiqueta code, por dios.
esa cual es la etiqueta code , no me suena ni la conozco
Para poner código aquí, usa la etiqueta code, está a la derecha de la negrita, cursiva... Para que se guarde la indentación y sea legible.
#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_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++ ;
         printf ("\n\n Pulsa una tecla para volver al menu principal :");
         getch();
      }
      else
         {
            Jug [i].Error++;
            i++;
            
         }
            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---Solucionado: Jug [i].Error va antes del i++!!!!
   }
   getch ();

}

8 respuestas