/// <summary> /// constructor con parametros /// </summary> /// <param name="precio">precio de la moneda</param> /// <param name="canti">cantidad de esa moneda</param> /// <param name="tipo">Tipo de moneda</param> /// <param name="ganancia">ganancia el promedio de cuanto se gana (cuantas veces se gana)</param> public Moneda(int precio, int canti, ETipoMoneda tipo, int ganancia) { this.precio = precio; this.cantidad = canti; this.moneda = tipo; this.ganancia = ganancia; }
/// <summary> /// busca una moneda en la billetera de un jugador si no esta devuelve null, sino la moneda /// </summary> /// <param name="j">jugador</param> /// <param name="tipo">tipo de moneda</param> /// <returns>null si no esta sino la moneda</returns> public static Moneda BuscarMoneda(Jugador j, ETipoMoneda tipo) { Moneda aux = null; foreach (Moneda item in j.Billetera) { if (item.Moneyda == tipo) { aux = item; break; } } return(aux); }
/// <summary> /// devuelve la cantidad de monedas segun su tipo que tiene ese jugador en la billetera /// </summary> /// <param name="t"></param> /// <returns></returns> public int CantidadMonedasSegunTipo(ETipoMoneda t) { int rtn = 0; foreach (Moneda item in this.billetera) { if (item.Moneyda == t) { rtn = item.Cantidad; break; } } return(rtn); }
/// <summary> /// devuelve el precio de cada moneda /// </summary> /// <param name="tipo">tipo de moneda</param> /// <returns></returns> public static int SacarPrecio(ETipoMoneda tipo) { int rtn = 0; switch (tipo) { case ETipoMoneda.bronce: rtn = 20; break; case ETipoMoneda.oro: rtn = 65; break; case ETipoMoneda.plata: rtn = 45; break; } return(rtn); }
/// <summary> /// devuelve la ganancia que genera cada moneda /// </summary> /// <param name="tipo">tipo de moneda</param> /// <returns></returns> public static int SacarGanancia(ETipoMoneda tipo) { int rtn = 0; switch (tipo) { case ETipoMoneda.bronce: rtn = 3; break; case ETipoMoneda.oro: rtn = 10; break; case ETipoMoneda.plata: rtn = 7; break; } return(rtn); }
/// <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"); } }
public bool Quitar(ETipoMoneda tipoMoneda, EDenominacion denominacion, int cantidad) { if (this.tipoMoneda == tipoMoneda && this.denominacion == denominacion && this.cantidad >= cantidad) { this.cantidad -= cantidad; return true; } return false; }
/** * */ public Dinero(ETipoMoneda tipoMoneda, EDenominacion denominacion, int cantidad) { this.tipoMoneda = tipoMoneda; this.denominacion = denominacion; this.cantidad = cantidad; }