예제 #1
0
 private void btnPedirCartaJ2_Click(object sender, EventArgs e)
 {
     Jugador2.Cartas.Add(Procesos.pedirCarta());
     for (int i = 2; i < Jugador2.Cartas.Count; i++)
     {
         PictureBox nuevo = new PictureBox();
         nuevo.Location = new Point(X_POSICION_J2 - (i - 2) * ESPACIO_NUMERO, Y_POSICION_J2);
         nuevo.Size     = new Size(ANCHO_CARTA, ALTURA_CARTA);
         nuevo.Image    = Jugador2.Cartas.ElementAt(i).Imagen;
         Controls.Add(nuevo);
         nuevo.Image   = Jugador2.Cartas.ElementAt(i).Imagen;
         nuevo.Visible = true;
         Controls.Add(nuevo);
         lbPuntageJ2.Text = "Puntaje: " + Procesos.contarPuntaje(Jugador2.Cartas);
     }
     if (!pasado1)
     {
         btnPasarJ2.Enabled      = false;
         btnPedirCartaJ2.Enabled = false;
         btnPasarJ1.Enabled      = true;
         btnPedirCartaJ1.Enabled = true;
         finJuego();
     }
     if (pasado1 && pasado2)
     {
         finJuego();
     }
 }
예제 #2
0
 static void Main()
 {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     Procesos.iniciarArreglo();
     Application.Run(new MenuPrincipal());
 }
예제 #3
0
        private void btnHecho_Click(object sender, EventArgs e)
        {
            validar();
            if (nombreJ1Listo && nombreJ2Listo && apuestaJ1Listo && apuestaJ2Listo)
            {
                //Si los campos estan llenos aqui se les da el nombre a los GroupBox del tablero
                //donde se pasa los nombres de los jugadores y sus apuestas
                //por ultimo se abre un formulario de tablero

                Tablero nuevoTablero = new Tablero();
                //ESTA SECCION EDITA LOS CAMPOES VISIBLES
                nuevoTablero.gbOpcionesJ1.Text = txtNombreJ1.Text;
                nuevoTablero.gbOpcionesJ2.Text = txtNombreJ2.Text;

                nuevoTablero.txtApuestaJ1.Text = txtApuestaJ1.Text;
                nuevoTablero.txtApuestaJ2.Text = txtApuestaJ2.Text;

                //ESTA SECCIÓN EDITA LOS CAMPOES DE LOS OBJETOS JUGADOR
                nuevoTablero.Jugador1              = new Jugador(txtNombreJ1.Text);
                nuevoTablero.Jugador2              = new Jugador(txtNombreJ2.Text);
                nuevoTablero.Jugador1.Apuesta      = Convert.ToInt32(txtApuestaJ1.Text);
                nuevoTablero.Jugador2.Apuesta      = Convert.ToInt32(txtApuestaJ2.Text);
                nuevoTablero.Jugador1.DineroTotal -= Convert.ToInt32(txtApuestaJ1.Text);
                nuevoTablero.Jugador2.DineroTotal -= Convert.ToInt32(txtApuestaJ2.Text);

                //DA LAS CARTAS INICIALES A LOS JUGADORES
                Procesos.cartasIniciales(nuevoTablero);


                nuevoTablero.Show();
                Close();
            }
        }
예제 #4
0
        /// <summary>
        /// El metodo determina el jugador ganador
        /// </summary>
        /// <param name="j1">Primer jugador a comparar</param>
        /// <param name="j2">Segundo jugador a comparar</param>
        /// <returns>El jugador ganador</returns>
        private Jugador jugadorGanador(Jugador j1, Jugador j2)
        {
            Jugador jugadorGanador = null;
            int     puntageJ1      = Procesos.contarPuntaje(Jugador1.Cartas);
            int     puntageJ2      = Procesos.contarPuntaje(Jugador2.Cartas);

            if ((puntageJ1 > 21) && (puntageJ2 > 21))
            {
                if (puntageJ1 > puntageJ2)
                {
                    jugadorGanador = Jugador2;
                }
                else if (puntageJ2 > puntageJ1)
                {
                    jugadorGanador = Jugador1;
                }
                else
                {
                    jugadorGanador = null;
                }
            }
            else if (puntageJ1 > 21)
            {
                jugadorGanador = Jugador2;
            }
            else if (puntageJ2 > 21)
            {
                jugadorGanador = Jugador1;
            }
            else if (puntageJ1 == 21)
            {
                jugadorGanador = Jugador1;
            }
            else if (puntageJ2 == 21)
            {
                jugadorGanador = Jugador2;
            }
            else if (puntageJ1 > puntageJ2)
            {
                jugadorGanador = Jugador1;
            }
            else if (puntageJ2 > puntageJ1)
            {
                jugadorGanador = Jugador2;
            }
            return(jugadorGanador);
        }
예제 #5
0
        private void btnApostarJ1_Click(object sender, EventArgs e)
        {
            if (txtApuestaJ1.Text != "")
            {
                if (Convert.ToInt32(txtApuestaJ1.Text) <= 100000 &&
                    Convert.ToInt32(txtApuestaJ1.Text) <= Jugador1.DineroTotal)
                {
                    Jugador1.Apuesta      = Convert.ToInt32(txtApuestaJ1.Text);
                    Jugador1.DineroTotal -= Convert.ToInt32(txtApuestaJ1.Text);
                    lbDineroJ1.Text       = "Dinero: " + Jugador1.DineroTotal;

                    if (Program.TipoJuego == Program.DOS_JUGADORES)//SI LA PARTIDA ES DE DOS JUGADORES
                    {
                        txtApuestaJ2.Enabled = true;
                        btnApostarJ2.Enabled = true;
                        btnApostarJ1.Enabled = false;
                        txtApuestaJ1.Enabled = false;
                    }
                    else if (Program.TipoJuego == Program.UN_JUGADOR)
                    {
                        int apuesta;
                        do
                        {
                            apuesta = n.Next(1, 100001);
                        } while (apuesta > Jugador2.DineroTotal);

                        Jugador2.Apuesta      = apuesta;
                        Jugador2.DineroTotal -= Jugador2.Apuesta;
                        lbDineroJ2.Text       = "Dinero: " + Jugador2.DineroTotal;

                        Procesos.cartasIniciales(this);
                        //HABILITA LAS OPCIONES DE JUEGO

                        btnPasarJ1.Enabled      = true;
                        btnPedirCartaJ1.Enabled = true;
                    }
                }
                btnApostarJ1.Enabled = false;
            }
            else
            {
                MessageBox.Show("Apuesta inválida", "Haga una apuesta válida", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #6
0
        private void btnPedirCartaJ1_Click(object sender, EventArgs e)
        {
            Jugador1.Cartas.Add(Procesos.pedirCarta());
            for (int i = 2; i < Jugador1.Cartas.Count; i++)
            {
                PictureBox nuevo = new PictureBox();
                nuevo.Location = new Point(X_POSICION_J1 + (i - 2) * ESPACIO_NUMERO, Y_POSICION_J1);
                nuevo.Size     = new Size(ANCHO_CARTA, ALTURA_CARTA);
                nuevo.Image    = Jugador1.Cartas.ElementAt(i).Imagen;
                nuevo.Visible  = true;
                Controls.Add(nuevo);
                nuevo.BringToFront();
                lbPuntageJ1.Text = "Puntaje: " + Procesos.contarPuntaje(Jugador1.Cartas);
            }

            if (!pasado2)
            {
                btnPasarJ1.Enabled      = false;
                btnPedirCartaJ1.Enabled = false;
            }
            //SI ESTAN JUGANDO DOS PERSONAS DA PASO A LA SEGUNDA
            if (Program.TipoJuego == Program.DOS_JUGADORES && !pasado2)
            {
                btnPasarJ2.Enabled      = true;
                btnPedirCartaJ2.Enabled = true;
            }
            else if (Program.TipoJuego == Program.UN_JUGADOR) //SI ES INDIVIDUAL GENERA LA JUGADA DEL PC
            {
                if (n.Next(0) % 2 == 0 && Jugador2.Puntaje < 21)
                {
                    btnPedirCartaJ2_Click(null, null);
                }
                else
                {
                    btnPasarJ2_Click(null, null);
                }
                finJuego();
            }

            if (pasado1 && pasado2)
            {
                finJuego();
            }
        }
예제 #7
0
        private void btnApostarJ2_Click(object sender, EventArgs e)
        {
            if (Convert.ToInt32(txtApuestaJ2.Text) <= 100000 && txtApuestaJ2.Text != "" &&
                Convert.ToInt32(txtApuestaJ2.Text) <= Jugador2.DineroTotal)
            {
                btnApostarJ2.Enabled  = false;
                txtApuestaJ2.Enabled  = false;
                Jugador2.Apuesta      = Convert.ToInt32(txtApuestaJ1.Text);
                Jugador2.DineroTotal -= Convert.ToInt32(txtApuestaJ2.Text);
                lbDineroJ2.Text       = "Dinero: " + Jugador2.DineroTotal;

                Procesos.cartasIniciales(this);
                //HABILITA LAS OPCIONES DE JUEGO
                btnPasarJ1.Enabled      = true;
                btnPasarJ2.Enabled      = true;
                btnPedirCartaJ1.Enabled = true;
                btnPedirCartaJ2.Enabled = true;
            }
            else
            {
                MessageBox.Show("Ingrese una apuesta válida", "Apuesta Inválida", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #8
0
 private void txtApuestaJ2_KeyPress(object sender, KeyPressEventArgs e)
 {
     Procesos.validarNumero(e);
 }
예제 #9
0
        /// <summary>
        /// Condiciones para que el juego finalice
        /// Se llama cada que hay posibilidad de que el juego termine
        /// </summary>
        public void finJuego()
        {
            if (((Procesos.contarPuntaje(Jugador1.Cartas) >= 21) && (Procesos.contarPuntaje(Jugador2.Cartas) >= 21)) || pasado2 || pasado1)
            {
                btnPasarJ1.Enabled      = false;
                btnPedirCartaJ1.Enabled = false;
                btnPasarJ2.Enabled      = false;
                btnPedirCartaJ2.Enabled = false;

                DialogResult resultado;

                if (jugadorGanador(Jugador1, Jugador2) != null)
                {
                    resultado = MessageBox.Show("El jugador ganador es " + jugadorGanador(Jugador1, Jugador2).Nombre +
                                                "\nComenzar un juego nuevo?", "Fin del juego", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                    jugadorGanador(Jugador1, Jugador2).Ganadas++;
                    if (jugadorGanador(Jugador1, Jugador2).Equals(Jugador1))
                    {
                        Jugador1.DineroTotal += Jugador2.Apuesta + Jugador1.Apuesta;
                        Jugador1.TempGanadas++;
                        if (Jugador1.TempGanadas == 2)
                        {
                            Jugador1.TempGanadas  = 0;
                            Jugador1.Ganadas     *= 2;
                            Jugador1.DineroTotal *= 2;
                        }
                    }
                    else if (jugadorGanador(Jugador1, Jugador2).Equals(Jugador2))
                    {
                        Jugador2.DineroTotal += Jugador2.Apuesta + Jugador1.Apuesta;
                        Jugador2.TempGanadas++;
                        if (Jugador2.TempGanadas == 2)
                        {
                            Jugador2.TempGanadas  = 0;
                            Jugador2.Ganadas     *= 2;
                            Jugador1.DineroTotal *= 2;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Estamos experimentando problemas, intenta jugar más tarde");
                    }
                    Jugador1.Apuesta = 0;
                    Jugador2.Apuesta = 0;
                }
                else
                {
                    resultado = MessageBox.Show("Hay un empate entre ambos jugadores \nComenzar un juego nuevo ?", "Fin del juego", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
                }

                if (resultado == DialogResult.No)
                {
                    Close();
                }
                else
                {
                    limpiarTablero();
                }
            }
        }
예제 #10
0
 private void txtNombreJ2_KeyPress(object sender, KeyPressEventArgs e)
 {
     Procesos.validarTexto(e);
 }