public IJogada ObterVencedor(IJogada jogada1, IJogada jogada2) { var jogada1Ganhou = jogada1.GanhaDe(jogada2); if (jogada1Ganhou) { return(jogada1); } return(jogada2.GanhaDe(jogada1) ? jogada2 : null); }
public Ação Jogar(IJogada jogada) { if (jogada.AçõesPossíveis.Contains(Ação.Comprar) && TemDinheiroParaComprar(jogada) && PodeComprar(jogada)) { return(Ação.Comprar); } if (jogada.AçõesPossíveis.Contains(Ação.PagarAluguel)) { return(Ação.PagarAluguel); } return(Ação.Passar); }
private string Desempatar(Jogador jogadorA, Jogador jogadorB, IJogada jogada) { var maoVencedoraNoDesempate = _desempateDeJogada.Desempatar(jogada.Jogada, jogadorA.Mao, jogadorB.Mao); if (!maoVencedoraNoDesempate.Any()) { return("Empate"); } return(maoVencedoraNoDesempate.Equals(jogadorA.Mao) ? jogadorA.Nome : jogadorB.Nome); }
public UmaTrincaTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(14).ComNaipe(Naipes.Hearts).Construir() }; var identificadorDeTresCartasComValoresIguais = new IdentificaTresCartasComValoresIguais(); _umaTrinca = new UmaTrinca(identificadorDeTresCartasComValoresIguais); }
public DoisParesDiferentesTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Hearts).Construir() }; var identificadorDePar = new IdentificaDuasCartasComValoresIguais(); _doisParesDiferentes = new DoisParesDiferentes(identificadorDePar); }
public IJogada ComeçarRodada() { if (_rodadaIniciada) { throw new Exception("Rodada já iniciada"); } _rodadaIniciada = true; var jogador = JogadorDaRodada(); var passos = Roller.Roll(); var playerState = _gameState.MoverPlayer(jogador.Id, passos); _jogadaAtual = CriarJogada(playerState, passos); return(_jogadaAtual); }
public QuadraTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Diamonds).Construir() }; var identificadorDeQuatroCartasComValoresIguais = new IdentificaQuatroCartasComValoresIguais(); _quadra = new Quadra(identificadorDeQuatroCartasComValoresIguais); }
public UmParDeCartasTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Hearts).Construir() }; var identificadorDePar = new IdentificaDuasCartasComValoresIguais(); _umParDeCartas = new UmParDeCartas(identificadorDePar); }
public FlushTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(14).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(12).ComNaipe(Naipes.Hearts).Construir() }; var identificardorDeCincoNaipesIguais = new IdentificaCincoCartasComNaipesIguais(); _flush = new Flush(identificardorDeCincoNaipesIguais); }
public StraightTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Clubs).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Diamonds).Construir() }; var identificadorDeSequencia = new IdentificaSequenciaDeCarta(); _straight = new Straight(identificadorDeSequencia); }
public FullHouseTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Diamonds).Construir(), CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Spades).Construir(), CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Clubs).Construir() }; var identificadorDePar = new IdentificaDuasCartasComValoresIguais(); var identificadorDeTrinca = new IdentificaTresCartasComValoresIguais(); _fullHouse = new FullHouse(identificadorDeTrinca, identificadorDePar); }
public RoyalFlushTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(13).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(11).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(14).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(12).ComNaipe(Naipes.Hearts).Construir() }; var identificadorDeSequencia = new IdentificaSequenciaDeCarta(); var identificadorDeNaipesIguais = new IdentificaCincoCartasComNaipesIguais(); _royalFlush = new RoyalFlush(identificadorDeSequencia, identificadorDeNaipesIguais); }
public StraightFlushTeste() { _maoDe5Cartas = new List <Carta> { CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir(), CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Hearts).Construir(), }; var identificadorDeNaipesIguais = new IdentificaCincoCartasComNaipesIguais(); var identificadorDeSequencia = new IdentificaSequenciaDeCarta(); _straightFlush = new StraightFlush(identificadorDeNaipesIguais, identificadorDeSequencia); }
public bool GanhaDe(IJogada jogada) { return(jogada is Tesoura); }
public bool GanhaDe(IJogada jogada) { return(jogada is Pedra); }
public bool GanhaDe(IJogada jogada) { return(jogada is Papel); }
public bool TemDinheiroParaComprar(IJogada jogada) { return(jogada.Saldo >= jogada.Propriedade.ValorDeVenda); }
protected override bool PodeComprar(IJogada jogada) { return(true); }
protected override bool PodeComprar(IJogada jogada) { return(jogada.Propriedade.ValorDeAluguel > 50); }
protected override bool PodeComprar(IJogada jogada) { return(Roller.RollInt(2) == 1); }
protected abstract bool PodeComprar(IJogada jogada);