예제 #1
0
 public void DarAmarilla(string name)
 {
     try
     {
         if (JugadoresAmarilla.Any(j => j.Nombre == name))
         {
             TarjetasAmarillas++;
             Jugador expulsado = JugadoresAmarilla.First(j => j.Nombre == name);
             Console.WriteLine($"El jugador {expulsado.Nombre} recibió una tarjeta amarilla");
             ExpulsarJugador(expulsado.Nombre);
             JugadoresAmarilla.Remove(expulsado);
         }
         else
         {
             Jugador jugadorAmarilla = Jugadores.First(j => j.Nombre == name);
             TarjetasAmarillas++;
             JugadoresAmarilla.Add(jugadorAmarilla);
             Console.WriteLine($"El jugador {jugadorAmarilla.Nombre} recibió una tarjeta amarilla");
         }
     }
     catch (InvalidOperationException)
     {
         Console.WriteLine("No existe ese jugador para que reciba tarjeta amarilla del equipo "
                           + Seleccion.Nombre);
     }
 }
예제 #2
0
 /// <summary>
 /// Serializa a string segun requerimientos
 /// </summary>
 /// <returns></returns>
 public override string ToString()
 {
     if (Estado == Estado.Terminado)
     {
         Jugador ganador = Jugadores.First(j => j.Id == JugadorGana);
         return(string.Format("\r\n!!{0} GANA EL PARTIDO¡¡", ganador.Nombre.ToUpper()));
     }
     //Todavia no jugado
     else
     {
         return(string.Empty);
     }
 }
예제 #3
0
        /// <summary>
        /// Valora las fichas de los jugadores y escoje cual jugador empezará el juego
        /// </summary>
        /// <returns>Un objeto de tipo jugador que empezará la partida</returns>
        public Jugador ElegirJugadorInicial()
        {
            Jugador primerJugador = null;

            foreach (var jugador in Jugadores)
            {
                var mayorDoble = jugador.ObtenerMayorDoble();
                if (mayorDoble != null)
                {
                    if (primerJugador == null)
                    {
                        primerJugador = jugador;
                    }
                    if (mayorDoble.ObtenerPuntaje() > primerJugador.ObtenerMayorDoble().ObtenerPuntaje())
                    {
                        primerJugador = jugador;
                    }
                }
            }

            if (primerJugador == null)
            {
                primerJugador = Jugadores.First();
                foreach (var jugador in Jugadores)
                {
                    var mayorFicha = jugador.ObtenerMayorFicha();
                    if (mayorFicha.ObtenerPuntaje() > primerJugador.ObtenerMayorFicha().ObtenerPuntaje())
                    {
                        primerJugador = jugador;
                    }
                    else if (mayorFicha.ObtenerPuntaje() == primerJugador.ObtenerMayorFicha().ObtenerPuntaje())
                    {
                        if (mayorFicha.ObtenerMayorNumero() > primerJugador.ObtenerMayorFicha().ObtenerMayorNumero())
                        {
                            primerJugador = jugador;
                        }
                    }
                }
            }

            return(primerJugador);
        }
예제 #4
0
 public void ExpulsarJugador(string name)
 {
     try
     {
         Jugador jugadorExpulsado = Jugadores.First(j => j.Nombre == name);
         TarjetasRojas++;
         Jugadores.Remove(jugadorExpulsado);
         if (TarjetasRojas >= 5)
         {
             LoseForWException ex = new LoseForWException(Seleccion.Nombre);
             ex.NombreEquipo = Seleccion.Nombre;
             throw ex;
         }
         Console.WriteLine($"El jugador {jugadorExpulsado.Nombre} fue expulsado");
     }
     catch (InvalidOperationException)
     {
         Console.WriteLine("No existe ese jugador para expulsarlo del equipo " + Seleccion.Nombre);
     }
 }