コード例 #1
0
        public AnalisadorDeJogadasTeste()
        {
            _identificadorDeNaipesIguais  = new IdentificaCincoCartasComNaipesIguais();
            _identificadorDeSequencia     = new IdentificaSequenciaDeCarta();
            _identificadorDeTrinca        = new IdentificaTresCartasComValoresIguais();
            _identificadorDePar           = new IdentificaDuasCartasComValoresIguais();
            _identificadorDeCartaMaisAlta = new IdentificaCartaMaisAlta();
            _identificadorDeQuatroCartas  = new IdentificaQuatroCartasComValoresIguais();

            var conversorDeNaipes       = new ConversorDeNaipe();
            var conversorDeValorDeCarta = new ConversorDeValorDeCarta();
            var conversorDeCarta        = new ConversorDeCarta(conversorDeValorDeCarta, conversorDeNaipes);

            _conversorDeMaoDe5Cartas = ConversorDeMaoDe5CartasBuilder.UmConversor()
                                       .ComConversorDeCartas(conversorDeCarta)
                                       .Construir();
        }
コード例 #2
0
 public DesempateDeJogada(IIDentificadorDeCartas identificadorDeTrinca,
                          IIDentificadorDeCartas identificadorDeCartaMaisAlta,
                          IIDentificadorDeCartas identificadorDeQuadra,
                          IIDentificadorDeCartas identificadorDePar)
 {
     _dicionarioDeDesempate = new Dictionary <Jogada, IRegraDeDesempate>
     {
         { Jogada.RoyalFlush, new DesempateDeRoyalFlush() },
         { Jogada.StraightFlush, new DesempateDeStraightFlush(identificadorDeCartaMaisAlta) },
         { Jogada.Quadra, new DesempateDeQuadra(identificadorDeQuadra) },
         { Jogada.FullHouse, new DesempateDeFullHouse(identificadorDeTrinca) },
         { Jogada.Flush, new DesempateDeFlush(identificadorDeTrinca) },
         { Jogada.Straight, new DesempateDeStraight(identificadorDeCartaMaisAlta) },
         { Jogada.UmaTrinca, new DesempateDeTrinca(identificadorDeTrinca, identificadorDeCartaMaisAlta) },
         { Jogada.DoisParesDiferentes, new DesempateDeDoisPares(identificadorDePar) },
         { Jogada.UmParDeCartas, new DesempateDeUmPar(identificadorDePar, identificadorDeCartaMaisAlta) },
         { Jogada.CartaMaisAlta, new DesempateDeCartaMaisAlta(identificadorDeCartaMaisAlta) }
     };
 }
コード例 #3
0
 public DesempateDeStraightTeste()
 {
     _identificadorDeCartaMaisAlta = new IdentificaCartaMaisAlta();
     _maoA = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Clubs).Construir(),
         CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Hearts).Construir(),
         CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Spades).Construir()
     };
     _maoB = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Clubs).Construir(),
         CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Clubs).Construir(),
         CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Hearts).Construir()
     };
 }
コード例 #4
0
 public DesempateDeFlushTeste()
 {
     _identificadorDeCartaMaisAlta = new IdentificaCartaMaisAlta();
     _maoA = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Spades).Construir()
     };
     _maoB = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(11).ComNaipe(Naipes.Diamonds).Construir()
     };
 }
コード例 #5
0
 public DesempateDeDoisParesTeste()
 {
     _identificadorDePar = new IdentificaDuasCartasComValoresIguais();
     _maoA = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(),
         CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir()
     };
     _maoB = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Hearts).Construir(),
         CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Spades).Construir()
     };
 }
コード例 #6
0
 public AnalisadorDeJogada(IIDentificadorDeCartas identificadorDeSequencia,
                           IIDentificadorDeCartas identificadorDeNaipesIguais,
                           IIDentificadorDeCartas identificadorDeTrinca,
                           IIDentificadorDeCartas identificadorDePar,
                           IIDentificadorDeCartas identificadorDeCartaMaisAlta,
                           IIDentificadorDeCartas identificadorDeQuatroCartasComValoresIguais)
 {
     _listaDeJogadas = new List <IJogada>
     {
         new RoyalFlush(identificadorDeSequencia, identificadorDeNaipesIguais),
         new StraightFlush(identificadorDeNaipesIguais, identificadorDeSequencia),
         new Quadra(identificadorDeQuatroCartasComValoresIguais),
         new FullHouse(identificadorDeTrinca, identificadorDePar),
         new Flush(identificadorDeNaipesIguais),
         new Straight(identificadorDeSequencia),
         new UmaTrinca(identificadorDeTrinca),
         new DoisParesDiferentes(identificadorDePar),
         new UmParDeCartas(identificadorDePar),
         new CartaMaisAlta(identificadorDeCartaMaisAlta)
     };
 }
コード例 #7
0
 public DesempateDeTrincaTeste()
 {
     _identificadorDeTrinca        = new IdentificaTresCartasComValoresIguais();
     _identificadorDeCartaMaisAlta = new IdentificaCartaMaisAlta();
     _maoA = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Hearts).Construir(),
         CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Hearts).Construir()
     };
     _maoB = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(),
         CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Hearts).Construir()
     };
 }
コード例 #8
0
 public CartaMaisAlta(IIDentificadorDeCartas identificadorDeCartaMaisAlta)
 {
     _identificadorDeCartaMaisAlta = identificadorDeCartaMaisAlta;
 }
コード例 #9
0
 public AnalisadorDeJogadaBuilder ComIdentificadorDeQuatroCartasDefinido()
 {
     _identificadorDeQuatroCartasIguais = new IdentificaQuatroCartasComValoresIguais();
     return(this);
 }
コード例 #10
0
 public AnalisadorDeJogadaBuilder ComIdentificadorDeCartaMaisAltaDefinido()
 {
     _identificadorDeCartaMaisAlta = new IdentificaCartaMaisAlta();
     return(this);
 }
コード例 #11
0
 public Flush(IIDentificadorDeCartas identificadorDeCartasComMesmoNaipe)
 {
     _identificadorDeCartasComMesmoNaipe = identificadorDeCartasComMesmoNaipe;
 }
コード例 #12
0
 public DoisParesDiferentes(IIDentificadorDeCartas identificadorDePares)
 {
     _identificadorDePares = identificadorDePares;
 }
コード例 #13
0
 public DesempateDeFullHouse(IIDentificadorDeCartas identificadorDeTrinca)
 {
     _identificadorDeTrinca = identificadorDeTrinca;
 }
コード例 #14
0
 public FullHouse(IIDentificadorDeCartas identificadorDeTrinca, IIDentificadorDeCartas identificadorDePar)
 {
     _identificadorDeTrinca = identificadorDeTrinca;
     _identificadorDePar    = identificadorDePar;
 }
コード例 #15
0
 public Straight(IIDentificadorDeCartas identificadorDeSequencia)
 {
     _identificadorDeSequencia = identificadorDeSequencia;
 }
コード例 #16
0
 public StraightFlush(IIDentificadorDeCartas identificadorDeNaipesIguais,
                      IIDentificadorDeCartas identificadorDeSequencia)
 {
     _identificadorDeNaipesIguais = identificadorDeNaipesIguais;
     _identificadorDeSequencia    = identificadorDeSequencia;
 }
コード例 #17
0
 public UmaTrinca(IIDentificadorDeCartas identificadorDeTresCartasComValoresIguais)
 {
     _identificadorDeTresCartasComValoresIguais = identificadorDeTresCartasComValoresIguais;
 }
コード例 #18
0
 public DesempateDeTrinca(IIDentificadorDeCartas identificadorDeTrinca, IIDentificadorDeCartas identificadorDeCartaMaisAlta)
 {
     _identificadorDeTrinca        = identificadorDeTrinca;
     _identificadorDeCartaMaisAlta = identificadorDeCartaMaisAlta;
 }
コード例 #19
0
 public Quadra(IIDentificadorDeCartas identificadorDeQuatroCartasComValoresIguais)
 {
     _identificadorDeQuatroCartasComValoresIguais = identificadorDeQuatroCartasComValoresIguais;
 }
コード例 #20
0
 public DesempateDeStraight(IIDentificadorDeCartas identificadorDeCartaMaisAlta)
 {
     _identificadorDeCartaMaisAlta = identificadorDeCartaMaisAlta;
 }
コード例 #21
0
 public DesempateDeQuadra(IIDentificadorDeCartas identificadorDeQuadra)
 {
     _identificadorDeQuadra = identificadorDeQuadra;
 }
コード例 #22
0
 public DesempateDeUmPar(IIDentificadorDeCartas identificadorDePar,
                         IIDentificadorDeCartas identificadorDeCartaMaisAlta)
 {
     _identificadorDePar           = identificadorDePar;
     _identificadorDeCartaMaisAlta = identificadorDeCartaMaisAlta;
 }
コード例 #23
0
 public DesempateDeFlush(IIDentificadorDeCartas identificadorDeCartaMaisAlta)
 {
     _identificadorDeCartaMaisAlta = identificadorDeCartaMaisAlta;
 }
コード例 #24
0
 public UmParDeCartas(IIDentificadorDeCartas identificadorDePar)
 {
     _identificadorDePar = identificadorDePar;
 }
コード例 #25
0
 public DesempateDeDoisPares(IIDentificadorDeCartas identificadorDePar)
 {
     _identificadorDePar = identificadorDePar;
 }