public RodadaBase(Carta [] cartaMesa, uint valorPotePreRodada, TipoRodada tipo) { this.TipoRodada = tipo; this.CartasMesa = cartaMesa; this.ValorPotePreRodada = valorPotePreRodada; this.pilhaAcoes = new List <IAcaoTomada>(); }
public uint ValorMomento(TipoRodada tipo) { switch (tipo) { case TipoRodada.PreJogo: return(this.Ant); case TipoRodada.Flop: return(this.Flop); case TipoRodada.Turn: return(this.Turn); case TipoRodada.River: return(this.River); default: return(0); } }
//TODO: verificar se melhor maneira de contornar o virtual public virtual void VerificarGanhadorPartida(IPartida p) { int jogadorVencedor; TipoRodada tipoRodada = p.Rodadas.Last().TipoRodada; if ((tipoRodada == TipoRodada.PreFlop) || (tipoRodada == TipoRodada.Flop) || (tipoRodada == TipoRodada.Turn) || (tipoRodada == TipoRodada.FimDeJogo && p.Rodadas.Count < 5)) { jogadorVencedor = -1; } else if (tipoRodada == TipoRodada.River) { jogadorVencedor = this.RetornaMelhorMaoPartidaFinalizada(p); } else { throw new DealerException("Passada partida em rodada errada para atribuir vencedor."); } switch (jogadorVencedor) { case -1: p.JogadorGanhador = VencedorPartida.Banca; break; case 0: p.JogadorGanhador = VencedorPartida.Empate; break; case 1: p.JogadorGanhador = VencedorPartida.Jogador; break; default: throw new DealerException("Erro ao comparar mão dos jogadores. Retornado valor não previsto."); } }
public string JustificativaAcao(TipoRodada tipoRodada) => string.Empty;
public abstract AcaoJogador ExecutaAcao(TipoRodada tipoRodada, uint valor, Carta[] cartasMesa);
public RodadaTHB(TipoRodada tp, uint valorPotePreRodada, Carta[] cartaMesa) : base(cartaMesa, valorPotePreRodada, tp) { }