USANDO METODOS EN C# EXAMEN CRAPS

Logo_C_Sharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/* CRAPS

Un jugador tira 2 dados,

Cada dado tiene 6 caras, COn sus numeros del 1-6 en cada cara

Una vez que los dados dejen de moverse, se calcula la suma de los puntos en los dos lados. Si la suma es 7 u 11
en el primero tiro el jugador gana

Si la suma es 3,2,12 en el primer tiro el jugador pierde

Si la suma es 4,5,6,8,9,10 en el primer tiro esta se convierte en el punto del jugador.

Para ganar.El jugador debe seguir tirando los dados hasta que salga otra vez su punto (Es decir, que tire ese mismo valor de punto)

*/
namespace Craps
{
    class Program
    {
     
      
        //PROGRAMA PARA GENERAR NUMEROS ALEATORIOS, PARA USARLA EN EL METODO TIRAR DADO

        private Random numerosAleatorios = new Random();

        private enum Estado { CONTINUA, GANO, PERDIO }
      
        private enum nombresDados{DOS_UNOS=2,
            TRES=3,SIETE=7,ONCE=11,DOCE=12}

        //METODO EJECUTA EL JUEGO CE CRAPS
        public void Jugar()
        {
            //PRIMER TIRO DEDOS
            Estado EstadoJuego=Estado.CONTINUA;

            int puntos=0;
            int sumaDeDados=tirarDados();

            //DETERMINA EL ESTADO DE JUEGO Y EL PUNTO CON BASE EN EL PRIMER TIRO

        switch((nombresDados)(sumaDeDados))
            {
            case nombresDados.SIETE:

            case nombresDados.ONCE:
                 EstadoJuego = Estado.GANO;
                break;
            case nombresDados.DOCE:
            case nombresDados.TRES:
            case nombresDados.DOS_UNOS:
                EstadoJuego = Estado.PERDIO;
                break;
            default: EstadoJuego = Estado.CONTINUA; //NO GANO NI PERDIO, ENTONCES HAY QUE RECORDAR EL PUNTO
                break;
      

                //AUN NO TERMINA
                puntos = sumaDeDados;

                Console.WriteLine("{0}",puntos);
                break;
            }

                //MIENTRAS EL JUEGO NO TERMINE

                while (EstadoJuego == Estado.CONTINUA)
                    {
                        sumaDeDados = tirarDados(); //TIRA LOS DATOS OTRA VEZ
                        if (sumaDeDados == puntos)
                          
                            EstadoJuego = Estado.GANO;
                          
                        if(sumaDeDados==(int) nombresDados.SIETE) //PIERDES SE CAE 7 ANTES DEL PUNTO
                              
                                    EstadoJuego=Estado.PERDIO;
                                  
                              
                      
                 
              
                    }//FIN DEL WHILE

            //MUESTRA MENSAJE
            
          
        if (EstadoJuego == Estado.GANO)
        {
            Console.WriteLine("PERDISTE");
        }
        if (EstadoJuego == Estado.PERDIO)
        {
            Console.WriteLine("GANASTE");
        }
        }

        //TIRAR DADO
        public int tirarDados()
        {
            //ELIGE VALORES ALEATORIOS PARA LOS DADOS
            int dado1 = numerosAleatorios.Next(1, 7);
            int dado2 = numerosAleatorios.Next(1, 7);

            int suma = dado1 + dado2;

            //MUESTRA EL RESULTADO DE ESTE TIRO
            Console.WriteLine("DADO UNO= {0}" + dado1+ " DADO DOS{1}" + dado2+ "SUMA={2}" + suma);

            return suma;

        }
      
      
        static void Main(string[] args)
        {
            Program AAAA=new Program();

            AAAA.Jugar();
            Console.ReadLine();
        
         
        }
    }
}

0