[ Foro de C++ ]
hola buenas noches mi problema es que introduzco la palabra y corro el juego pero cuando pongo una sola letra no me aparece solamante gano cuando pongo toda la letra, espero me puedan ayudar , otra molestia esque si puede ser con mi mismo codigo se los agradeceria muchusimo.
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
using namespace std;
char secreta [20];
char usuario [20];
char entrada [20];
int buscar()
{
int val=0;
for (int i=0; i< strlen(secreta); i++)
{
if(secreta[i] == entrada[0])
{
val++;
usuario[i] == entrada[0];
}
}
return val;
}
void ini_us()
{
usuario[0]='\0';
for (int i=0; i<(strlen(secreta)); i++)
{
strcat(usuario, "_");
}
cout << usuario;
}
void establecer_pa()
{
cout << "Escribe la palabra secreta\n";
gets(secreta);
gets(secreta);
system("cls");
return;
}
void juego()
{
int aux,ind;
int errores = 0;
char c;
ini_us();
errores=0;
do
{
cout << "\nErrores: " << errores
<< "\nPalabra: " << usuario
<< "\n\nEscribe una letra o la palabra completa: ";
gets(entrada);
if (strlen(entrada) == 1)
{
c = entrada[0];
aux = buscar();
if (aux == 0)
{
errores ++;
}
}
else
{
ind = strcmp(secreta, entrada);
if (ind != 0)
{
errores ++;
}
else
{
strcpy(usuario, entrada);
}
}
system("pause");
}
while(errores < 5 && strcmp(usuario, secreta) != 0);
if (errores==5)
{
cout << "Perdiste!!\n";
}
else
{
cout << "ganaste!!\n";
}
}
void Menu()
{
int op;
do
{
cout << "Selecciona la opcion deseada \n"
<< "1 Establecer Palabra\n"
<< "2 Jugar\n"
<< "3 Salir\n";
cin >> op;
system("cls");
switch(op)
{
case 1:
establecer_pa();
break;
case 2:
juego();
break;
case 3:
cout << "adios\n";
break;
default:
cout << "Opcion Incorrecta \n";
Sleep(1000);
system("cls");
}
}
while(op != 6);
}
int main()
{
Menu();
return 0;
}
Cuando es una letra, llamas a la función "buscar", que da un valor por defecto 0... pero 0 es una posición, válida, la primera. Deberías dar el valor inicial -1.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)