Beispiel #1
0
        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);
 }
Beispiel #3
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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);
        }
Beispiel #14
0
 public bool GanhaDe(IJogada jogada)
 {
     return(jogada is Tesoura);
 }
Beispiel #15
0
 public bool GanhaDe(IJogada jogada)
 {
     return(jogada is Pedra);
 }
Beispiel #16
0
 public bool GanhaDe(IJogada jogada)
 {
     return(jogada is Papel);
 }
 public bool TemDinheiroParaComprar(IJogada jogada)
 {
     return(jogada.Saldo >= jogada.Propriedade.ValorDeVenda);
 }
Beispiel #18
0
 protected override bool PodeComprar(IJogada jogada)
 {
     return(true);
 }
Beispiel #19
0
 protected override bool PodeComprar(IJogada jogada)
 {
     return(jogada.Propriedade.ValorDeAluguel > 50);
 }
Beispiel #20
0
 protected override bool PodeComprar(IJogada jogada)
 {
     return(Roller.RollInt(2) == 1);
 }
 protected abstract bool PodeComprar(IJogada jogada);