Dev - C++ - craps

   
Vista:

craps

Publicado por Angel aafvamfv2@hotmail.com (1 intervención) el 21/06/2016 01:05:39
PROJECT
disculpen la molestia pero me han dejado este programa para verificar que es lo que realiza pero no entiendo este error alguien podria decirme que es lo que pasa o como puedo arreglarlo...les dejo el programa escrito para que lo prueben les agradeceria su ayuda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include<stdio.h>
#include<conio.h>
#define GANA 0
#define PIERDE 1
#define CONTINUA 2
int PrimerTiro=1, SumaDados=0, MiPunto=0, EstadoJuego=CONTINUA;
int LanzaDados();
int Juego();
int main()
{
 int Sleep, rand;
 clrscr();
 printf("Alejandro Antonio Frias Vera\n");
 printf("\nCRAPS\n");
 Juego();
 if (EstadoJuego==GANA)
  printf("\n­FELICIDADES!");
 else
  printf("\nLo sentimos acaba de perder");
  Sleep(5000);
 return 0;
}
int LanzaDados()
 {
  int dado1, dado2, suma;
  dado1=1+(rand()%6);
  dado2=1+(rand()%6);
  suma=dado1+dado2;
  return suma;
 }
int Juego()
 {
  int puntos,n_lanzamiento;
  n_lanzamiento=1;
  while(EstadoJuego==CONTINUA)
   {
    puntos=LanzaDados();
    if(PrimerTiro==1)
     {
      printf("\nPrimer lanzamiento:%d",puntos);
      switch(puntos)
       {
	case 7:
	 EstadoJuego=GANA;
	 break;
	case 11:
	 EstadoJuego=GANA;
	 break;
	case 2:
	 EstadoJuego=PIERDE;
	 break;
	case 3:
	 EstadoJuego=PIERDE;
	 break;
	case 12:
	 EstadoJuego=PIERDE;
	 break;
	 default:
	  {
	   PrimerTiro=0;
	   EstadoJuego=CONTINUA;
	   MiPunto=puntos;
	   break;
	  }
 
       }
     }
   else
    {
     n_lanzamiento=n_lanzamiento+1;
     printf("\nLanzamiento numero%d:%d",n_lanzamiento,puntos);
     switch(puntos)
      {
       case 7:EstadoJuego=PIERDE;
       break;
       case ‘MiPunto’:
       EstadoJuego=GANA;
       break;
       default:
	{
	 PrimerTiro=0;
	 EstadoJuego=CONTINUA;
	 MiPunto=puntos;break;
	}
      }
    }
   }
  getch();
  return EstadoJuego;
 }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

craps

Publicado por Xhred (1 intervención) el 21/06/2016 06:36:36
No entiendo muy bien lo que tiene que hacer el programa pero ya elimine el error de esta forma 'MiPunto' en lugar de `MiPunto` pues con el primero el case lo reconoce como variable cosa que con el otro no hacia ya que el programa no sabe que es.

Yo creo que el Lanzadados(); deberia de estar fuera del main porque es una funcion que llamas en el main para que haga el lanzamiento, el clrscr(); y el sleep(5000); a mi me marco error en el Dev C++ por eso los quite ademas de que cada vez que se ejecuta tira el numero 12 y se cierra.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define GANA 0
#define PIERDE 1
#define CONTINUA 2
int PrimerTiro=1, SumaDados=0, MiPunto=0, EstadoJuego=CONTINUA;
int LanzaDados();
int Juego();
int main()
{
int Sleep, rand;
//clrscr();
printf("Alejandro Antonio Frias Vera\n");
printf("\nCRAPS\n");
Juego();
if (EstadoJuego==GANA)
printf("\n­FELICIDADES!");
else
printf("\nLo sentimos acaba de perder");
//Sleep(5000);
return 0;
}
int LanzaDados()
{
int dado1, dado2, suma;
dado1=1+(rand()%6);
dado2=1+(rand()%6);
suma=dado1+dado2;
return suma;
}
int Juego()
{
int puntos,n_lanzamiento;
n_lanzamiento=1;
while(EstadoJuego==CONTINUA)
{
puntos=LanzaDados();
if(PrimerTiro==1)
{
printf("\nPrimer lanzamiento:%d",puntos);
switch(puntos)
{
case 7:
EstadoJuego=GANA;
break;
case 11:
EstadoJuego=GANA;
break;
case 2:
EstadoJuego=PIERDE;
break;
case 3:
EstadoJuego=PIERDE;
break;
case 12:
EstadoJuego=PIERDE;
break;
default:
{
PrimerTiro=0;
EstadoJuego=CONTINUA;
MiPunto=puntos;
break;
}
 
}
}
else
{
n_lanzamiento=n_lanzamiento+1;
printf("\nLanzamiento numero%d:%d",n_lanzamiento,puntos);
switch(puntos)
{
case 7:EstadoJuego=PIERDE;
break;
//error eliminado con los apostrofes
case 'MiPunto':
EstadoJuego=GANA;
break;
default:
{
PrimerTiro=0;
EstadoJuego=CONTINUA;
MiPunto=puntos;break;
}
}
}
}
getch();
return EstadoJuego;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

craps

Publicado por agustin (306 intervenciones) el 21/06/2016 10:54:07
Que yo sepa, los case necesitan valores constantes y tu le estas dando una variable no constante. Creo que eso no está permitido y que al menos tendrías que hacer un cast algo como:
1
case (const int)MiPunto:
A ver que dice alguien que sepa más.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar