Ejemplo n.º 1
0
        public GameForm()
        {
            this.InitializeComponent();

            this.timer.Interval   = 1000;
            this.timer.Tick      += this.TimerTick;
            this.updates.Interval = 100;
            this.updates.Tick    += this.UpdateTick;

            this.textboxBigBlind.Visible   = false;
            this.textboxSmallBlind.Visible = false;
            this.buttonBigBlind.Visible    = false;
            this.buttonSmallBlind.Visible  = false;
            this.textboxRaise.Text         = (AppSettigns.DefaultMinBigBlind * 2).ToString();

            IPlayer                 human         = this.GetHumanPlayer();
            IAILogicProvider        logicProvider = new AILogicProvider();
            ICollection <IAIPlayer> enemies       = this.GetEnemies(logicProvider);
            IPot    pot    = new Pot(this.textboxPot);
            IDealer dealer = this.GetDealer();
            IDeck   deck   = Deck.Instance;

            this.messageWriter = new MessageBoxWriter();
            IHandTypeHandler handTypeHandler = new HandTypeHandler();

            this.engine = new GameEngine(human, enemies, pot, dealer, deck, this.messageWriter, handTypeHandler);
            this.engine.GameEngineStateEvent += this.ChangeGameEngineStateHandler;
            this.updates.Start();
            this.engine.Run();
        }
Ejemplo n.º 2
0
        public static void InitGameObjectss(TestContext testContext)
        {
            players = new List<IPlayer>();
            
            IPlayer human = PlayerFactory.CreateHuman("human", 10000, new Label(), new TextBox(), AnchorStyles.Bottom, 100, 100);
            players.Add(human);

            IAILogicProvider logicProvider = new AILogicProvider();
            IAIPlayer AI1 = PlayerFactory.CreateAI(logicProvider, "AI1", 10000, new Label(), new TextBox(), AnchorStyles.Bottom, 100, 100);
            players.Add(AI1);
            IAIPlayer AI2 = PlayerFactory.CreateAI(logicProvider, "AI2", 10000, new Label(), new TextBox(), AnchorStyles.Bottom, 100, 100);
            players.Add(AI2);
            IAIPlayer AI3 = PlayerFactory.CreateAI(logicProvider, "AI3", 10000, new Label(), new TextBox(), AnchorStyles.Bottom, 100, 100);
            players.Add(AI3);
            IAIPlayer AI4 = PlayerFactory.CreateAI(logicProvider, "AI4", 10000, new Label(), new TextBox(), AnchorStyles.Bottom, 100, 100);
            players.Add(AI4);
            IAIPlayer AI5 = PlayerFactory.CreateAI(logicProvider, "AI5", 10000, new Label(), new TextBox(), AnchorStyles.Bottom, 100, 100);
            players.Add(AI5);

            dealer = new Dealer(100, 100);

            deck = new MockDeck();

            handHandler = new HandTypeHandler();
        }
Ejemplo n.º 3
0
 Logic(ITable table, IDealer dealer, IModuleContainer moduleContainer, List<IPlayer> players)
 {
     _table = table;
     _dealer = dealer;
     _players = players;
     _moduleContainer = moduleContainer;
 }
Ejemplo n.º 4
0
        public PokerTable(List <IPlayer> players, IDealer dealer) : this()
        {
            SeatDealer(dealer);
            SeatPlayers(players.Take(House.MaxPlayers).ToList());

            AllPlayers = Players.ToList();
        }
Ejemplo n.º 5
0
        public MainWindow(string s) {
            InitializeComponent();
            //initialize the connections 
            try {
                DuplexChannelFactory<IDealer> channel = new DuplexChannelFactory<IDealer>(this, "DealerEndPoint");

                //activate the dealer object.
                dealer = channel.CreateChannel();  //does this in turn call the dealer constructor??
                myCallbackKey = dealer.PlayerJoin(s);
                lblMoney.Content = 2000;
                cmboNumber.ItemsSource = dealer.RouletteWheel;
                cmboNumber.DisplayMemberPath = "Key";

                cmboRange.Items.Add("1-12");
                cmboRange.Items.Add("13-24");
                cmboRange.Items.Add("25-36");

                cmboColor.Items.Add("Red");
                cmboColor.Items.Add("Black");

                cmboOddEven.Items.Add("Odd");
                cmboOddEven.Items.Add("Even");
            }
            catch (Exception ex) {
                MessageBox.Show("Error starting the service: " + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }

        }
 public TableSimulation(IDealer dealer, TableSettings tableSettings)
 {
     Dealer = dealer;
     Dealer.SetTableSettingsWith(tableSettings);
     SeatedPlayers  = new List <IPlayer>();
     _tableSettings = tableSettings;
 }
Ejemplo n.º 7
0
 public PokerTable(IDealer dealer, IHandEngine engine)
 {
     Players    = new List <Player>();
     Board      = new Board();
     HandEngine = engine;
     Dealer     = dealer;
 }
Ejemplo n.º 8
0
 public void MyTestInitialize()
 {
     _mockGroupOfCards = new Mock <IGroupOfCards>();
     _mockGroupOfCards.Setup(mgoc => mgoc.Cards).Returns(new List <ICard>());
     _mockGameManager = new Mock <IGameManager>();
     _sut             = new Dealer(_mockGroupOfCards.Object, _mockGameManager.Object, _dealerStrategy);
     _sut.SetTableSettingsWith(_tableSettings);
 }
Ejemplo n.º 9
0
 public Game(IMatchCondition matchCondition, int decks)
 {
     _matchCondition = matchCondition;
     _rdm            = new Random();
     _dealer         = new Dealer(decks);
     _player1        = new Player("player 1");
     _player2        = new Player("player 2");
 }
Ejemplo n.º 10
0
        public static void WriteDealerHitDialogToConsole(IDealer GameDealer)
        {
            IDealer _dealer = GameDealer;

            Console.WriteLine(_dealer.DealerPlayer.PlayerName + " took a Hit. The cards are now as follow:\n");
            ConsoleUtilities.WritePlayerHandsToConsole(_dealer);
            Console.WriteLine("Press 'H' or 'Enter' to Hold\n");
        }
Ejemplo n.º 11
0
 protected bool Transite(IDealer dealer, IDictionary <string, string> result, object context)
 {
     // 循环蓝图中的迁移对象
     foreach (var transaction in this.BluePrint.Transactions)
     {
         //做迁移判断
     }
 }
Ejemplo n.º 12
0
        /// <summary>
        /// 执行Activity.Execute方法
        /// </summary>
        /// <param name="dealer"></param>
        /// <param name="state"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        ExecuteStages ExecuteActivity(IDealer dealer, IState state, object context)
        {
            var outputs = this.Activity.Execute(state, dealer, context);

            if (outputs == null)
            {
                return(ExecuteStages.Executing);
            }
            if (outputs != Nothing)
            {
                var t = outputs.GetType();
                if (t.IsClass && t != typeof(string))
                {
                    var rs = JObject.FromObject(outputs);
                    (this.Outputs as State).Internals = rs;
                }
                else
                {
                    var rs  = JToken.FromObject(outputs);
                    var jrs = new JObject();
                    jrs.Add("Returns", rs);
                    (this.Outputs as State).Internals = jrs;
                }
            }

            if (this.Parent == null)
            {
                return(ExecuteStages.End);
            }
            if (this.Config != null)
            {
                var exports = this.Config.Exports;
                if (exports != null)
                {
                    var pstates             = (this.Parent.Variables as State);
                    var parentVariableDatas = pstates.Internals;
                    var selfVariableDatas   = (this.Variables as State).Internals;
                    foreach (var key in exports)
                    {
                        parentVariableDatas[key] = selfVariableDatas[key].DeepClone();
                        pstates.HasChanges       = true;
                    }
                }
            }
            if (_Exports != null)
            {
                var pstates             = (this.Parent.Variables as State);
                var parentVariableDatas = pstates.Internals;
                var selfVariableDatas   = (this.Variables as State).Internals;
                foreach (var key in this._Exports)
                {
                    parentVariableDatas[key] = selfVariableDatas[key].DeepClone();
                    pstates.HasChanges       = true;
                }
            }

            return(ExecuteStages.Executed);
        }
Ejemplo n.º 13
0
 public void Setup()
 {
     this.repositoryMock = new Mock<IRepository>();
     this.deckBuilder = new DeckBuilder();
     this.dealer = new Dealer();
     this.repositoryMock.Setup(x => x.TablePasswordExists(It.IsAny<string>())).Returns(false);
     this.engine = new Engine(this.repositoryMock.Object, this.deckBuilder, this.dealer);
     this.engine.CreateNewTable(4, string.Empty);
 }
Ejemplo n.º 14
0
 public Table(List <IPlayer> players, IDealer dealer, int smallBlind)
 {
     Players.AddRange(players);
     Dealer           = dealer;
     Bank             = 0;
     SmallBlind       = smallBlind;
     SmallBlindIndex  = 0;
     dealer.GameTable = this;
 }
Ejemplo n.º 15
0
 public void SetUp()
 {
     _pokerTable = new PokerTable();
     _dealer     = _pokerTable.Dealer;
     _player1    = new Player("Player1");
     _pokerTable.AddPlayer(_player1);
     _player2 = new Player("Player2");
     _pokerTable.AddPlayer(_player2);
 }
Ejemplo n.º 16
0
        public void SetUp()
        {
            _dealer     = new Dealer();
            _pokerTable = new PokerTable(_dealer, new TexasHoldemEngine());

            _player1 = new Player("Player1");
            _pokerTable.AddPlayer(_player1);
            _player2 = new Player("Player2");
            _pokerTable.AddPlayer(_player2);
        }
Ejemplo n.º 17
0
        public void LeaveTableOrStay()
        {
            if (!_playerStrategy.ShouldLeaveTable(CurrentTotalCash, _currentDealer.TableSettings))
            {
                return;
            }

            _currentDealer.Unregister(this);
            _currentDealer = null;
        }
Ejemplo n.º 18
0
        /// <summary>
        /// 在数据库中新添一条ActivityState记录
        /// </summary>
        /// <param name="dealer"></param>
        /// <param name="inputs"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        ExecuteStages InsertActivity(IDealer dealer, object context)
        {
            var entity = this.Entity;

            entity.ExecuteStage = (int)ExecuteStages.Created;
            entity.Inputs       = this.Inputs.ToJSON();
            //entity.Variables = this.Variables.ToJSON();

            this.Persistent.CreateActivityState(entity);
            return(ExecuteStages.Created);
        }
Ejemplo n.º 19
0
        public IActivityStateProxy GetAndLockActivityState(Guid activityId, IDealer user, int retryCount = 0)
        {
            var sql = @"SELECT * FROM ActivityStates 
WHERE RootId IN (SELECT Id FROM ActivityStates WHERE Id=@id)
AND ExecuteStage<5
AND HandlerId=@userId
";

            return(null);
            //this.Dao.ListActivityStates()
        }
Ejemplo n.º 20
0
 public PlayingTable(string creator, string name, string password = null)
 {
     this.Name = name;
     this.Creator = creator;
     this._password = password;
     this._dealer = new Dealer();
     this.Players = new List<IPlayer>();
     this.UserScores = new Dictionary<IPlayer, IRoundScore>();
     this.GameRoundsInfo = new Dictionary<GameRound, GameRoundInfo>();
     this._playerChairs = new Dictionary<string, char>();
 }
Ejemplo n.º 21
0
        private void Init()
        {
            var services = new ServiceCollection();

            services.AddTransient <IGameRepository, DynamoDBGameRepository>();
            services.AddTransient <IDealer, Dealer>();

            var provider = services.BuildServiceProvider();

            _dealer = provider.GetService <IDealer>();
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Converts domain object to DTO.
        /// </summary>
        /// <param name="dealer">Dealer.</param>
        /// <returns>Dealer DTO.</returns>
        public static DealerDto ToDto(IDealer dealer)
        {
            if (dealer == null)
            {
                throw new ArgumentNullException(nameof(dealer));
            }

            return(new DealerDto(
                       id: dealer.Id,
                       name: dealer.Name));
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Gets the get dealer from record.
        /// </summary>
        /// <param name="reader">The reader.</param>
        /// <returns>The dealer object</returns>
        private static IDealer GetGetDealerFromRecord(SqlDataReader reader)
        {
            string name        = DataUtil.GetString(reader, "Dealer", string.Empty);
            string address     = DataUtil.GetString(reader, "Address", string.Empty);
            string phoneNumber = DataUtil.GetString(reader, "Telephone", string.Empty);
            string postcode    = DataUtil.GetString(reader, "Postcode", string.Empty);
            string town        = DataUtil.GetString(reader, "Town", string.Empty);

            IDealer result = CreateDealer(name, address, phoneNumber, postcode, town);

            return(result);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Gets the dealer.
        /// </summary>
        /// <param name="supplierId">The supplier id.</param>
        /// <param name="dealerId">The dealer id.</param>
        /// <returns>
        /// The dealer object
        /// </returns>
        public IDealer GetDealer(int supplierId, int dealerId)
        {
            IDealer result = GetDealerFromDatabase(supplierId, dealerId);

            if (result != null)
            {
                result.SupplierId = supplierId;
                result.DealerId   = dealerId;
            }

            return(result);
        }
Ejemplo n.º 25
0
        public BlackjackApplication(IDealer dealer, IBlackjackConsole console, IGameClock clock)
        {
            this.dealer  = dealer ?? throw new ArgumentNullException(nameof(dealer));
            this.console = console ?? throw new ArgumentNullException(nameof(console));
            this.clock   = clock ?? throw new ArgumentNullException(nameof(clock));

            playingPlayers = new List <Player>();
            activePlayers  = new List <Player>();
            absentPlayers  = new List <Player>();

            bets = new Dictionary <Player, List <PlayerBet> >();
        }
Ejemplo n.º 26
0
        /// <inheritdoc/>
        public void CreateDealer(IDealer dealer)
        {
            DealerDto dealerDto = DealerDto.ToDto(dealer);

            this.Context.Dealers.Add(dealerDto);
            int count = this.Context.SaveChanges();

            if (count != 1)
            {
                throw new ApplicationException($"Unexpectedly created {count} rows");
            }
        }
Ejemplo n.º 27
0
        public override Task OnActivateAsync()
        {
            this.dealer = this.GrainFactory.GetGrain <IDealer>(NewGuid());

            var registry = this.GrainFactory.GetGrain <IMatchRegistry>("match_registry");

            registry.AddMatch(this);

            this.game       = new Game();
            this.players    = new ObserverSubscriptionManager <IPlayer>();
            this.spectators = new ObserverSubscriptionManager <IPlayer>();

            return(base.OnActivateAsync());
        }
Ejemplo n.º 28
0
 public GameEngine(IPlayer human, ICollection<IAIPlayer> enemies, IPot pot, IDealer dealer, IDeck deck, IMessageWriter messageWriter, IHandTypeHandler handTypeHandler)
 {
     this.human = human;
     this.enemies = new List<IAIPlayer>(enemies);
     this.Pot = pot;
     this.dealer = dealer;
     this.deck = deck;
     this.MessageWriter = messageWriter;
     this.handTypeHandler = handTypeHandler;
     this.BigBlind = AppSettigns.DefaultMinBigBlind;
     this.SmallBlind = AppSettigns.DefaultMinSmallBlind;
     this.SetDefaultCall();
     this.Raise = 0;
     this.IsAnyPlayerRaise = false;
 }
Ejemplo n.º 29
0
 public GameEngine(IPlayer human, ICollection <IAIPlayer> enemies, IPot pot, IDealer dealer, IDeck deck, IMessageWriter messageWriter, IHandTypeHandler handTypeHandler)
 {
     this.human           = human;
     this.enemies         = new List <IAIPlayer>(enemies);
     this.Pot             = pot;
     this.dealer          = dealer;
     this.deck            = deck;
     this.MessageWriter   = messageWriter;
     this.handTypeHandler = handTypeHandler;
     this.BigBlind        = AppSettigns.DefaultMinBigBlind;
     this.SmallBlind      = AppSettigns.DefaultMinSmallBlind;
     this.SetDefaultCall();
     this.Raise            = 0;
     this.IsAnyPlayerRaise = false;
 }
Ejemplo n.º 30
0
        public async Task SetCards(IList<IPlayer> players, IDealer dealer)
        {
            if (players == null || dealer == null)
            {
                throw new NullReferenceException("The players and dealer cannot be null");
            }

            this.Shuffle();
            int playersCount;
            for (playersCount = 0; playersCount < players.Count; playersCount++)
            {
                await this.SetCardToPlayers(players[playersCount], playersCount, 2);
            }

            await this.SetCardToDealer(dealer, 5, playersCount * 2);
        }
Ejemplo n.º 31
0
        public TestStash(IDealer dealer, ILogger logger = null)
        {
            _dealer = dealer;
            _draw   = new Queue <Card>(_dealer.NewDeck().Shuffle().Deal(20));
            // _draw = new Queue<Card>(_dealer.NewDeck().Take(20));
            _discarded = new Queue <Card>();

            if (logger == null)
            {
                _logger = LogManager.GetLogger("stash");
            }
            else
            {
                _logger = logger;
            }
        }
Ejemplo n.º 32
0
        public DealerFacade()
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            IConfigurationRoot configuration    = builder.Build();
            string             connectionString = configuration.GetConnectionString("DefaultConnection").ToString();

            var optionsBuilder = new DbContextOptionsBuilder <ljgbContext>();

            optionsBuilder.UseSqlServer(connectionString);

            db  = new ljgbContext(optionsBuilder.Options);
            dep = new DealerRepository(db);
        }
Ejemplo n.º 33
0
        public void Select()
        {
            Console.Clear();

            IDealer        dealer  = DealerFactory.CreateDealer();
            IPlayer        player1 = PlayerFactory.CreatePlayer(PlayerType.Human);
            IPlayer        player2 = PlayerFactory.CreatePlayer(PlayerType.Computer);
            IPlayer        player3 = PlayerFactory.CreatePlayer(PlayerType.Computer);
            IPlayer        player4 = PlayerFactory.CreatePlayer(PlayerType.Computer);
            List <IPlayer> players = new List <IPlayer>()
            {
                player1, player2, player3, player4
            };

            PokerGameFactory.CreateGame(players, dealer).Start();
        }
Ejemplo n.º 34
0
        public PokerTable(IDealer dealer, ICheckHandType checkHand, IHandType handType, IWriter messageBoxWriter)
        {
            this.Player = new PokerPlayer(new Panel());
            this.FirstBot = new PokerPlayer(new Panel());
            this.SecondBot = new PokerPlayer(new Panel());
            this.ThirdBot = new PokerPlayer(new Panel());
            this.FourthBot = new PokerPlayer(new Panel());
            this.FifthBot = new PokerPlayer(new Panel());

            this.Dealer = dealer;
            this.CheckHand = checkHand;
            this.HandType = handType;
            this.messageBoxWriter = messageBoxWriter;

            this.neededChipsToCall = this.bigBlind;
            this.MaximizeBox = false;
            this.MinimizeBox = false;
            this.updates.Start();
            this.InitializeComponent();

            this.Shuffle();

            this.potStatus.Enabled = false;
            this.playerChips.Enabled = false;
            this.botOneChips.Enabled = false;
            this.botTwoChips.Enabled = false;
            this.botThreeChips.Enabled = false;
            this.botFourChips.Enabled = false;
            this.botFiveChips.Enabled = false;

            this.playerChips.Text = "Chips : " + this.Player.Chips;
            this.botOneChips.Text = "Chips : " + this.FirstBot.Chips;
            this.botTwoChips.Text = "Chips : " + this.SecondBot.Chips;
            this.botThreeChips.Text = "Chips : " + this.ThirdBot.Chips;
            this.botFourChips.Text = "Chips : " + this.FourthBot.Chips;
            this.botFiveChips.Text = "Chips : " + this.FifthBot.Chips;

            this.timer.Interval = 1000;
            this.timer.Tick += this.TimerTick;
            this.updates.Interval = 100;
            this.updates.Tick += this.Update_Tick;

            this.raiseAmountField.Text = (this.bigBlind * 2).ToString();

            this.Player.OutOfChips = false;
            this.Player.AbleToMakeTurn = true;
        }
Ejemplo n.º 35
0
        public async Task SetCards(IList <IPlayer> players, IDealer dealer)
        {
            if (players == null || dealer == null)
            {
                throw new NullReferenceException("The players and dealer cannot be null");
            }

            this.Shuffle();
            int playersCount;

            for (playersCount = 0; playersCount < players.Count; playersCount++)
            {
                await this.SetCardToPlayers(players[playersCount], playersCount, 2);
            }

            await this.SetCardToDealer(dealer, 5, playersCount * 2);
        }
Ejemplo n.º 36
0
        static void Main(string[] args)
        {
            Console.Title = "C# Poker Game v3";
            House.DisplayHouseRules();

            IDealer        dealer  = DealerFactory.CreateDealer();
            IPlayer        player1 = PlayerFactory.CreatePlayer(PlayerType.Computer);
            IPlayer        player2 = PlayerFactory.CreatePlayer(PlayerType.Human);
            List <IPlayer> players = new List <IPlayer>()
            {
                player1, player2
            };
            PokerGame pokerGame = PokerGameFactory.CreateGame(players, dealer);

            pokerGame.Start();

            Console.ReadLine();
        }
Ejemplo n.º 37
0
        public static void DealerTurn(IDealer dealer)
        {
            Console.Write($"Dealer is currently at {dealer.hand.CalculateScore()}\n with the hand [");
            foreach (var card in dealer.hand.CardsInHand)
            {
                if (card.CardSuit == "HEARTS" || card.CardSuit == "DIAMONDS")
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write($"[{card.CardValue} , {card.CardSuit} ]");
                    Console.ResetColor();
                }
                else
                {
                    Console.Write($"[{card.CardValue} , {card.CardSuit} ]");
                }
            }

            Console.WriteLine("]");
        }
Ejemplo n.º 38
0
        public ExecuteStages Deal(Queue <ActivityState> todos, IDealer dealer, object context = null)
        {
            if (!this.Activity.CheckStart(this.Inputs, new ReadOnlyState(this.Config.Parameters), this, dealer, context))
            {
                return(ExecuteStages.Denied);
            }
            if (this.ExecuteStage == ExecuteStages.Creating)
            {
                this.ExecuteStage = this.InsertActivity(dealer, context);
            }
            if (this.ExecuteStage == ExecuteStages.Created)
            {
                this.MergeStates();
            }

            if (this.ExecuteStage == ExecuteStages.Executing || this.ExecuteStage == ExecuteStages.Created)
            {
                this.ExecuteStage = this.ExecuteActivity(dealer, null, context);
                this.SaveChanges();
            }

            if (this.ExecuteStage == ExecuteStages.Executed)
            {
                if (this.Activity.CheckOver(this.Outputs, dealer, context))
                {
                    this.ExecuteStage = ExecuteStages.Routing;
                }
            }
            if (this.ExecuteStage == ExecuteStages.Routing)
            {
                if (todos != null)
                {
                    this.ExecuteStage = RouteNexts(todos);
                }
                else
                {
                    this.ExecuteStage = ExecuteStages.Finished;
                }
            }
            this.SaveChanges();
            return(this.ExecuteStage);
        }
Ejemplo n.º 39
0
        public Task SetCards(IList<IPlayer> players, IDealer dealer)
        {
            int i = 0;
            foreach (var player in players)
            {
                for (int j = 0; j < 2; j++)
                {
                    player.AddCard(this.Cards[i]);
                    i++;
                }
            }

            for (int j = 0; j < 5; j++)
            {
                dealer.AddCard(this.Cards[i]);
                i++;
            }

            return Task.FromResult(0);
        }
Ejemplo n.º 40
0
 public Enums.PaymentFlow DetermineWinner(PlayerHand playerHand, IDealer dealer)
 {
     var dealerHandValue = dealer.GetDealerHandValue();
     var isDealerHandBlackjack = dealer.IsHandBlackjack();
     if ((playerHand.IsBlackJack && isDealerHandBlackjack) ||
         (playerHand.HandTotal == dealerHandValue && !playerHand.IsBlackJack && isDealerHandBlackjack) ||
         (playerHand.HandTotal > 21 && dealerHandValue > 21))
     {
         return Enums.PaymentFlow.Push;
     }
     if (playerHand.IsBlackJack)
     {
         return Enums.PaymentFlow.PayBlackjack;
     }
     if (playerHand.HandTotal > 21 ||
         (playerHand.HandTotal < dealerHandValue && dealerHandValue <= 21) ||
         isDealerHandBlackjack)
     {
         return Enums.PaymentFlow.PayDealer;
     }
     return Enums.PaymentFlow.PayPlayer;
 }
Ejemplo n.º 41
0
        public void Rules(IPlayer player, IDealer dealer, IDeck deck)
        {
            if (!player.FoldedTurn)
            {
                #region Variables

                bool done = false;
                bool validFlush = false;
                int[] dealerCards = new int[5];
                int[] dealerWithPlayerCards = new int[7];
                dealerWithPlayerCards[0] = player.Cards.First().Power;
                dealerWithPlayerCards[1] = player.Cards.Last().Power;
                dealerCards[0] = dealerWithPlayerCards[2] = dealer.Cards.ElementAt(0).Power;
                dealerCards[1] = dealerWithPlayerCards[3] = dealer.Cards.ElementAt(1).Power;
                dealerCards[2] = dealerWithPlayerCards[4] = dealer.Cards.ElementAt(2).Power;
                dealerCards[3] = dealerWithPlayerCards[5] = dealer.Cards.ElementAt(3).Power;
                dealerCards[4] = dealerWithPlayerCards[6] = dealer.Cards.ElementAt(4).Power;
                var a = dealerWithPlayerCards.Where(o => o % 4 == 0).ToArray();
                var b = dealerWithPlayerCards.Where(o => o % 4 == 1).ToArray();
                var c = dealerWithPlayerCards.Where(o => o % 4 == 2).ToArray();
                var d = dealerWithPlayerCards.Where(o => o % 4 == 3).ToArray();
                var spades = a.Select(o => o / 4).Distinct().ToArray();
                var hearts = b.Select(o => o / 4).Distinct().ToArray();
                var diamonds = c.Select(o => o / 4).Distinct().ToArray();
                var clubs = d.Select(o => o / 4).Distinct().ToArray();
                Array.Sort(dealerWithPlayerCards);
                Array.Sort(spades);
                Array.Sort(hearts);
                Array.Sort(diamonds);
                Array.Sort(clubs);

                #endregion

                for (int i = 0; i < 16; i++)
                {
                    if (deck.GetCardAtIndex(i).Power == player.Cards.First().Power && deck.GetCardAtIndex(i + 1).Power == player.Cards.Last().Power)
                    {
                        // High Card
                        this.checkHandType.CheckHighCard(player, deck.Cards, i);

                        // TwoPair from Hand
                        this.checkHandType.CheckPairFromHand(player, deck.Cards, i);

                        // TwoPair or Two TwoPair from Table
                        this.checkHandType.CheckPairTwoPair(player, deck.Cards, i);

                        // Three of a kind
                        this.checkHandType.CheckThreeOfAKind(player, dealerWithPlayerCards); 

                        // Straight
                        this.checkHandType.CheckStraight(player, dealerWithPlayerCards); 

                        // Flush current
                        this.checkHandType.CheckFlush(player, ref validFlush, dealerCards, deck.Cards, i);

                        // Full House
                        this.checkHandType.CheckFullHouse(player, ref done, dealerWithPlayerCards); 

                        // Four of a Kind
                        this.checkHandType.CheckFourOfAKind(player, dealerWithPlayerCards);

                        // Straight Flush
                        this.checkHandType.CheckStraightFlush(player, spades, hearts, diamonds, clubs); 
                    }
                }
            }
        }
Ejemplo n.º 42
0
 public void DealerInit()
 {
     this.dealer = new Dealer(new RandomGenerator());
 }
Ejemplo n.º 43
0
 public void Setup()
 {
     this.dealer = new Dealer();
     this.deckBuilder = new DeckBuilder();
 }
Ejemplo n.º 44
0
 ILogic GetLogic(IDealer dealer, IModuleContainer container, ITable table, List<IPlayer> players)
 {
     return _logicBuilder
             .DealerIs(dealer)
             .ModuleContainerIs(container)
             .TableIs(table)
             .PlayersAre(players)
             .Build();
 }
Ejemplo n.º 45
0
 public void Setup()
 {
     this.dealer = new Dealer();
 }
Ejemplo n.º 46
0
        private void CheckWinners(ICollection<IPlayer> players, IDealer dealer)
        {
            for (int i = 0; i < dealer.Cards.Count; i++)
            {
                dealer.RevealCardAtIndex(i);
            }

            foreach (var player in players)
            {
                for (int i = 0; i < player.Cards.Count; i++)
                {
                    player.RevealCardAtIndex(i);
                }
            }

            var winners = this.GetWinners(players);
            if (this.GetNotFoldedPlayersCount(this.GetAllPlayers()) != 1)
            {
                this.ShowWinnersMessages(winners);
            }
            
            this.SetWinnersChips(winners);
        }
Ejemplo n.º 47
0
 public Engine(IRepository repository, IDeckBuilder deckBuilder, IDealer dealer)
 {
     this.deckBuilder = deckBuilder;
     this.repository = repository;
     this.dealer = dealer;
 }
Ejemplo n.º 48
0
 public ILogicBuilder DealerIs(IDealer dealer)
 {
     _dealer = dealer;
     return this;
 }