elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programando un Craps en C...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Programando un Craps en C...  (Leído 12,917 veces)
Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Programando un Craps en C...
« Respuesta #10 en: 11 Septiembre 2011, 23:01 pm »

Aqui te lo dejo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int dados (void);
  5.  
  6. int main ()
  7. {
  8.    int estadojuego, mispuntos, puntosbanca, apuesta, opcion;
  9.    printf ("---------\n| Craps |\n---------\n\n\n");
  10.    while (opcion != 10)
  11.    {
  12.  
  13.    mispuntos = 1000;
  14.    puntosbanca = 20000;
  15.  
  16.    printf ("La apuesta minima es de 5 dolares. ¿Cuanto quieres apostar?: ");
  17.    scanf ("%d", &apuesta);
  18.  
  19.    etiqueta:
  20.    estadojuego = dados ();
  21.  
  22.    switch (estadojuego)
  23.    {
  24.           case 1:
  25.                {
  26.                printf ("\nHas ganado.");
  27.                mispuntos += apuesta;
  28.                puntosbanca -= apuesta;
  29.                printf ("\nTus puntos actuales son %d", mispuntos);
  30.                break;
  31.                }
  32.           case 2:
  33.                {
  34.                printf ("\nHas perdido.\n");
  35.                mispuntos -= apuesta;
  36.                puntosbanca -= apuesta;
  37.                printf ("\nTus puntos actuales son %d ", mispuntos);
  38.                break;
  39.                }
  40.           case 0:
  41.                {
  42.                printf ("\nNo gana nadie.");
  43.                break;
  44.                }
  45.    }
  46.  
  47.    printf ("\n1.- Apostar el triple.\n2.- Empezar nueva partida.\n3.- Finalizar partida.\n\nElija su opcion: ");
  48.    scanf ("%d", &opcion);
  49.    switch (opcion)
  50.    {
  51.           case 1:
  52.                {
  53.                apuesta *= 3;
  54.                goto etiqueta;
  55.                break;
  56.                }
  57.           case 2:
  58.                {
  59.                break;
  60.                }
  61.           case 3:
  62.                {
  63.                opcion = 10;
  64.                break;
  65.                }
  66.    }
  67.  
  68.    }
  69.    return 0;
  70. }
  71.  
  72. int dados(void)
  73. {
  74.    unsigned short int dado1, dado2, tirada, estadojuego;
  75.    dado1 = 1 + (rand()%6);
  76.    dado2 = 1 + (rand()%6);
  77.    tirada = dado1 + dado2;
  78.    printf("Lanzamiento de los dados %d + %d = %d\n", dado1, dado2, tirada);
  79.    switch(tirada)
  80.      {
  81.                  case 7:
  82.                       {
  83.                       estadojuego = 1;
  84.                       break;
  85.                       }
  86.                  case 11:
  87.                       {
  88.                       estadojuego = 1;
  89.                       break;
  90.                       }
  91.                  case 2:
  92.                       {
  93.                       estadojuego = 2;
  94.                       break;
  95.                       }
  96.                  case 3:
  97.                       {
  98.                       estadojuego = 2;
  99.                       break;
  100.                       }
  101.                  case 12:
  102.                       {
  103.                       estadojuego = 2;
  104.                       break;
  105.                       }
  106.                  default:
  107.                       {
  108.                       estadojuego = 0;
  109.                       break;
  110.                       }
  111.      }
  112.    return estadojuego;
  113. }
  114.  

Unas cosas con las que alomejor te lias:

-Se le asigna el valor de 1000 a "mispuntos" porque es con lo que empieza el usuario mientras que la banca comienza con 20000.
-Cuando el jugador elige finalizar la partida se cambia el valor de "opcion" a 10, lo cual hace que ya no se cumpla la condición del while (opcion != 10), asi que acaba el programa.
-Cuando elige la opción "Apostar el triple" se va a "etiqueta" para que el bucle no comience desde el principio con lo cual conseguimos que se mantengan los puntos obtenidos hasta ahora. La función "goto" está desaconsejada, pero la he usado para hacer el code sencillo y no liarte con bucles anidados.
-También falta implementar un par de condiciones para que cuando el jugador llegue a 0 puntos se acabe la partida (ya que no puede apostar más), pero viendo que eso no venía incluido en tu primer code dejaré que lo hagas por ti mismo.

Cualquier duda que tengas pregunta. Saludos.


« Última modificación: 11 Septiembre 2011, 23:26 pm por Alien-Z » En línea

Principios en C

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Programando un Craps en C...
« Respuesta #11 en: 11 Septiembre 2011, 23:08 pm »

Gracias!!!!!!!!!!!!! en verdad, oie una ultima pregunta el "goto" porque lo puedo cambiar?? porque no me dejan usarlo....


En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Programando un Craps en C...
« Respuesta #12 en: 11 Septiembre 2011, 23:17 pm »

Gracias!!!!!!!!!!!!! en verdad, oie una ultima pregunta el "goto" porque lo puedo cambiar?? porque no me dejan usarlo....

Vale, lo puse intentando hacer el código lo más sencillo posible y evitar que te liaras, pero tienen toda la razón con no permitirte usar "goto", está totalmente desaconsejado. Para tener el mismo efecto debes crear un bucle (while o for) y cuando quieras que finalice el bucle cambias el valor de la condición; tienes un ejemplo muy claro en el mismo código:

Código
  1. while (opcion != 10)
  2.    {
  3.     ...
  4.     case 3:
  5.                {
  6.                opcion = 10;
  7.                break;
  8.                }
  9.    }

Ahi por ejemplo, en el caso de que el usuario ingrese "3" (finalizar la partida) el valor de "opcion" pasa a ser "10" y por tanto deja de cumplirse la condición del bucle que es: while (opcion != 10), es decir, "Siempre que opcion no valga 10".
En línea

Principios en C

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Programando un Craps en C...
« Respuesta #13 en: 11 Septiembre 2011, 23:27 pm »

ok, gracias... intentare esto de nuevo...
te agradezco en verdad!!
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programando server
Programación Visual Basic
amtapias 4 1,530 Último mensaje 4 Marzo 2006, 18:52 pm
por sch3m4
Programando con gtk+
Programación C/C++
Khronos14 5 3,652 Último mensaje 6 Enero 2011, 18:54 pm
por paju1986
juego de craps (1000)tiradas , histograma de frecuencia y tiradas..
Programación C/C++
manuel_venezuela 2 4,287 Último mensaje 3 Agosto 2011, 20:31 pm
por manuel_venezuela
hp programando
Programación General
bengy 1 2,338 Último mensaje 5 Agosto 2011, 11:07 am
por Debci
ayuda en programa craps
Programación C/C++
AngelMix 4 2,543 Último mensaje 21 Junio 2016, 01:38 am
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines