public static Carta CriarCartaBloqueio(CorCarta cor) { Carta carta = new CartaBloqueio(); carta.Cor = cor; return(carta); }
public static Carta CriarCartaReversa(CorCarta cor) { Carta carta = new CartaReversa(); carta.Cor = cor; return(carta); }
public static Carta CriarCartaMaisDois(CorCarta cor) { Carta carta = new CartaMaisDois(); carta.Cor = cor; return(carta); }
public static Carta CriarCarta(int valor, CorCarta cor) { Carta carta = new Carta(); carta.Valor = valor; carta.Cor = cor; return(carta); }
private bool valorCorrespondente(CorCarta color) { return(deck.Any(x => x.Cor == color || x.Cor == CorCarta.CORINGA)); }
private Rodada jogandoCartas(CorCarta cor) { var rodada = new Rodada(); rodada.Resultado = ResultadoRodada.CartaComum; var partida = deck.Where(x => x.Cor == cor || x.Cor == CorCarta.CORINGA).ToList(); if (partida.All(x => x.Valor == ValorCarta.CompraQuatro)) { rodada.carta = partida.First(); rodada.corDeclarada = selecionarCor(); rodada.Resultado = ResultadoRodada.CompraQuatro; deck.Remove(partida.First()); return(rodada); } if (partida.Any(x => x.Valor == ValorCarta.CompraDois)) { rodada.carta = partida.First(x => x.Valor == ValorCarta.CompraDois); rodada.Resultado = ResultadoRodada.CompraDois; rodada.corDeclarada = rodada.carta.Cor; deck.Remove(rodada.carta); return(rodada); } if (partida.Any(x => x.Valor == ValorCarta.Pular)) { rodada.carta = partida.First(x => x.Valor == ValorCarta.Pular); rodada.Resultado = ResultadoRodada.Pular; rodada.corDeclarada = rodada.carta.Cor; deck.Remove(rodada.carta); return(rodada); } if (partida.Any(x => x.Valor == ValorCarta.Pular)) { rodada.carta = partida.First(x => x.Valor == ValorCarta.Inverter); rodada.Resultado = ResultadoRodada.Pular; rodada.corDeclarada = rodada.carta.Cor; deck.Remove(rodada.carta); return(rodada); } var corPartida = partida.Where(x => x.Cor == cor); if (corPartida.Any()) { rodada.carta = corPartida.First(); rodada.corDeclarada = rodada.carta.Cor; deck.Remove(corPartida.First()); return(rodada); } if (partida.Any(x => x.Valor == ValorCarta.TrocaCor)) { rodada.carta = partida.First(x => x.Valor == ValorCarta.TrocaCor); rodada.corDeclarada = selecionarCor(); rodada.Resultado = ResultadoRodada.TrocaCor; deck.Remove(rodada.carta); return(rodada); } //Passa o resultado para a rodada rodada.Resultado = ResultadoRodada.Comprarjogar; return(rodada); }