Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: STANHMAL en 6 Julio 2010, 02:01 AM

Título: [C] un pequeño error. [Solucionado]
Publicado por: STANHMAL en 6 Julio 2010, 02:01 AM
Holas

Primero el Code después explico:


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

enum Estatus {continua, gana, pierde};

int tiradados(void);

int main()
{
int suma, punto;
enum Estatus juego;

srand(time(NULL));

suma = tiradados();

switch(suma) {
case 7:
case 11:
juego = gana;
break;

case 2:
case 3:
case 12:
juego = pierde;
break;

default:
juego = continua;
punto = suma;
printf("Su punto es: %d\n", punto);
break;
}

while (juego == gana) {
suma = tiradados;

if (suma == punto) {
juego = gana;
}
else {
if (suma == 7) {
juego = pierde;
}
}
}

if (juego == gana) {
printf("Ganaste; Felicitaciones 8D\n");
}
else {
printf("Perdiste; Mejor suerte para la proxima.\n");
}

return 0;
}

int tiradados(void)
{

int dado1, dado2, sumada;

dado1 = 1 + (rand() % 6);
dado2 = 1 + (rand() % 6);
sumada = dado1 + dado2;

printf("Tiraste: %d + %d = %d\n", dado1, dado2, sumada);

return sumada;
}


Se supone que este es el juego craps.

El problema viene siendo, que cuando gano no me sale el mensaje de que gane, solamente se queda ahí; Tampoco cuando me sale un número diferente a 1, 2, 3, 11, y 12, no me deja seguir tirando, me dice, perdiste.
Título: Re: [C] un pequeño error.
Publicado por: do-while en 6 Julio 2010, 02:08 AM
¿Es posible que haya por ahi algun bucle infinito?  :silbar:

¡Saludos!
Título: Re: [C] un pequeño error.
Publicado por: STANHMAL en 6 Julio 2010, 02:15 AM
 :-X

ya encontré el error.

modifique esto:


while (juego == gana) {
suma = tiradados;


por esto:


while (juego == continua) {
suma = tiradados();


:rolleyes:

Gracias por responder.

$4!u2
Título: Re: [C] un pequeño error.
Publicado por: .:BlackCoder:. en 6 Julio 2010, 02:16 AM
Ta feito el codigo y no consco ese juego pero pes... una de las cosas que vi es que hay una parte en la que llamas a una funcion sin  ponerle los ()

Saludos

EDITO
Q bueno q te diste cuenta  :)