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); } }
/// <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); } }
/// <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); }
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); } }