/// <summary> /// al apretar Jugar en este form se abrira un form ruleta y se armara la partida y los nuevos datos del jugador /// segun si el random perdio o gano. solo se podra abrir un form de ruleta si no existe uno ya corriendo y /// si todos los datos son correctos /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnJugar_Click(object sender, EventArgs e) { if (!invoked) { try { if ((this.victima = Casino.BuscarJugador(this.ca, txtBoxIDAJugar.Text)) != null) { try { int cantidadJ; cantidadJ = int.Parse(txtCantidadAJugar.Text); if (cantidadJ < 0) { throw new FormatException(); } ETipoMoneda money = (ETipoMoneda)cmbBoxAJugar.SelectedItem; int ganancia = Moneda.SacarGanancia(money); if (this.victima.CantidadMonedasSegunTipo(money) >= cantidadJ) { if ((rdoButtonBoleto.Checked && this.victima.Boletos.Cantidad > 0) || rdoButtonBoleto.Checked == false) { /*base del form*/ this.ruleta = new FormRule(); this.ruleta.frenacion += spinStop; this.invoked = true;//si ya se abrio una ruleta y no se cerro de ninguna forma no se puede generar otro form ruleta.Show(); this.InicioThread(); /**/ if ((rdoButtonBoleto.Checked && this.victima.Boletos.Cantidad > 0)) { BoletoChances apuesto = new BoletoChances(1); this.victima -= apuesto; } Moneda apostada = new Moneda(Moneda.SacarPrecio(money), cantidadJ, money, ganancia); this.segunda = new Jugada(this.victima); this.winLo = ganoperdio.Next(0, 50); if (this.winLo > 35)/*15 veces mas de perder que de ganar*/ { this.segunda.Varianza = Jugada.CalcularVarianza(apostada, cantidadJ, ETipoTransaccion.gana); apostada.Cantidad = apostada.Cantidad * ganancia; this.victima += apostada; this.segunda.Movimiento = ETipoTransaccion.gana; } else { this.segunda.Movimiento = ETipoTransaccion.pierde; this.segunda.Varianza = Jugada.CalcularVarianza(apostada, cantidadJ, ETipoTransaccion.pierde); this.victima -= apostada; } this.victima.Saldo = this.victima.SacarSaldo(this.victima.Billetera); } else { MessageBox.Show("No le alcanzan los boletos"); } } else { MessageBox.Show("No tiene las monedas suficientes para jugar"); } } catch (FormatException) { throw new cantidadInvalidaException(); } } else { MessageBox.Show("No se encuentra ese dni en la lista de jugadores disponibles"); } }
/// <summary> /// Al apretar el botn aceptar se efectua una compra si los datos estan correctos y se genera la nueva informacion del /// usuario /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAceptar_Click(object sender, EventArgs e) { try { string seleccionado; this.participante = Casino.BuscarJugador(this.ca, txtBoxIDJugador.Text); if (this.participante == null) { this.participante = new Jugador(txtBoxIDJugador.Text); } try { if (int.Parse(txtBoxCantidadMonedas.Text) > 0) { seleccionado = cmbBoxTipoMoneda.SelectedItem.ToString(); int cant = int.Parse(txtBoxCantidadMonedas.Text); this.primera = new Jugada(participante); if (seleccionado != "PLUSCHANCESTICKET") { Moneda moni = null; switch (cmbBoxTipoMoneda.SelectedItem) { case ETipoMoneda.bronce: moni = new Moneda(Moneda.SacarPrecio(ETipoMoneda.bronce), cant, ETipoMoneda.bronce, Moneda.SacarGanancia(ETipoMoneda.bronce));//gana 3 veces mas participante += moni; break; case ETipoMoneda.oro: moni = new Moneda(Moneda.SacarPrecio(ETipoMoneda.oro), cant, ETipoMoneda.oro, Moneda.SacarGanancia(ETipoMoneda.oro));//gana 3 veces mas participante += moni; break; case ETipoMoneda.plata: moni = new Moneda(Moneda.SacarPrecio(ETipoMoneda.plata), cant, ETipoMoneda.plata, Moneda.SacarGanancia(ETipoMoneda.plata));//gana 3 veces mas participante += moni; break; } this.primera.Varianza = Jugada.CalcularVarianza(moni, cant, ETipoTransaccion.compra); this.DialogResult = DialogResult.OK; } else { try { BoletoChances boletonew = new BoletoChances(cant); this.participante += boletonew; this.primera.Varianza = BoletoChances.GastoBoleto(cant, Moneda.SacarPrecio(ETipoMoneda.bronce)); this.DialogResult = DialogResult.OK; } catch (insuficienteParaBoletoException) { throw new insuficienteParaBoletoException($" Usted tiene en total {this.participante.CantidadMonedasSegunTipo(ETipoMoneda.bronce)} monedas de bronce"); } } this.participante.Saldo = participante.SacarSaldo(participante.Billetera); this.primera.Movimiento = ETipoTransaccion.compra; this.Close(); } else { throw new cantidadInvalidaException(); } } catch (FormatException) { throw new cantidadInvalidaException(); } } catch (insuficienteParaBoletoException ex) { MessageBox.Show(ex.Message); } catch (dniInvalidoException ex) { MessageBox.Show(ex.Message); } catch (cantidadInvalidaException ex) { MessageBox.Show(ex.Message); } }