private string ResolverCartasEspeciales(Carta carta1, Carta carta2, Jugador jugador1, Jugador jugador2) { //Doy por hecho que ambos se encuentran en la misma sala string ganador = ""; //Amarrilla vs Normal if ((TipoDeCarta.Amarilla == carta1.TipoCarta) && (TipoDeCarta.Normal == carta2.TipoCarta)) { AgregarCartasGanadas(carta2, jugador2, 1, carta1, jugador1); return(ganador = jugador1.idConexion); } if ((TipoDeCarta.Amarilla == carta2.TipoCarta) && (TipoDeCarta.Normal == carta1.TipoCarta)) { AgregarCartasGanadas(carta1, jugador1, 1, carta2, jugador2); return(ganador = jugador2.idConexion); } //Roja vs Normal if ((TipoDeCarta.Roja == carta1.TipoCarta) && ((TipoDeCarta.Normal == carta2.TipoCarta) || (TipoDeCarta.Amarilla == carta2.TipoCarta))) { AgregarCartasGanadas(carta2, jugador2, 2, carta1, jugador1); return(ganador = jugador1.idConexion); } if ((TipoDeCarta.Roja == carta2.TipoCarta) && ((TipoDeCarta.Normal == carta1.TipoCarta) || (TipoDeCarta.Amarilla == carta1.TipoCarta))) { AgregarCartasGanadas(carta1, jugador1, 2, carta2, jugador2); return(ganador = jugador2.idConexion); } return(ganador); }
public void AgregarCartasGanadas(Carta cartalost, Jugador jugadorlost, int cant, Carta cartawin, Jugador jugadorwin) //Metodo D10S { if (jugadorlost.Cartas.Count >= cant) { if (cant == 1) { jugadorwin.Cartas.Remove(cartawin); jugadorwin.Cartas.Add(cartalost); jugadorlost.Cartas.Remove(cartalost); } else { var siguienteCarta = jugadorlost.Cartas[1]; jugadorwin.Cartas.Add(cartalost); jugadorwin.Cartas.Add(siguienteCarta); jugadorlost.Cartas.Remove(cartalost); jugadorlost.Cartas.Remove(siguienteCarta); jugadorwin.Cartas.Remove(cartawin); } } }