예제 #1
0
        public dynamic GetCurrentGameData(bool detailed = false)
        {
            var currentPlay = m_Game.GetLastPlay();

            var lastTurnPlay       = m_Game.GetLastTurnPlay();
            var lastTurnPlayerName = m_Game.GetLastTurnPlayerName();

            var simpleHistory = lastTurnPlayerName + "=";

            if (lastTurnPlay != null && lastTurnPlay.Count > 0)
            {
                simpleHistory += BigTwoLogic.ToString(lastTurnPlay);
            }

            var data = new
            {
                play    = currentPlay != null && currentPlay.Count > 0 ? BigTwoLogic.ToString(currentPlay) : "",
                history = simpleHistory,
                last    = m_Game.GetLastPlayerName(),
                current = m_Game.GetCurrentTurnPlayerName(),
                state   = m_Game.GetGameState(),
                turns   = m_Game.GetCurrentTurns(),
                players = new List <string>(),
                scores  = new List <int>(),
                cards   = new List <string>(),
            };

            var gamePlayers = m_Game.GetPlayers();

            foreach (var gamePlayer in gamePlayers)
            {
                data.players.Add(gamePlayer.PlayerName);
                data.scores.Add(gamePlayer.GameScore);

                if (detailed)
                {
                    data.cards.Add(BigTwoLogic.EncodeCards(gamePlayer.CurrentHand.GetCards()));
                }
                else
                {
                    data.cards.Add(gamePlayer.CurrentHand.GetNumberOfCards().ToString());
                }
            }

            return(data);
        }
예제 #2
0
        private void UpdateGameDisplay()
        {
            btnPlayerA.Enabled = false;
            btnPlayerB.Enabled = false;
            btnPlayerC.Enabled = false;
            btnPlay.Enabled    = false;

            var currentPlayer = m_Game.GetCurrentTurnPlayerName();
            var lastPlayer    = m_Game.GetLastPlayerName();
            var players       = m_Game.GetPlayers();

            foreach (var player in players)
            {
                if (player.PlayerName == "You")
                {
                    if (player.CurrentHand == null)
                    {
                        LoadCardImages(null);
                    }
                    else
                    {
                        LoadCardImages(player.CurrentHand.GetCards());
                    }
                    btnPlay.Enabled = (currentPlayer == player.PlayerName);
                    btnPass.Enabled = lastPlayer == currentPlayer ? false : btnPlay.Enabled;
                    btnGive.Enabled = btnPlay.Enabled || btnPass.Enabled;
                }
                else if (player.PlayerName == "PlayerA")
                {
                    lblPlayerA.Text = "[ ? ]";
                    if (player.CurrentHand != null)
                    {
                        lblPlayerA.Text = "[ " + player.CurrentHand.GetNumberOfCards() + " ]";
                        var cards = HandToString(player.CurrentHand.GetCards());
                        lbHandA.Items.Clear();
                        lbHandA.Items.AddRange(cards.Split(','));
                    }
                    btnPlayerA.Enabled = (currentPlayer == player.PlayerName);
                }
                else if (player.PlayerName == "PlayerB")
                {
                    lblPlayerB.Text = "[ ? ]";
                    if (player.CurrentHand != null)
                    {
                        lblPlayerB.Text = "[ " + player.CurrentHand.GetNumberOfCards() + " ]";
                        var cards = HandToString(player.CurrentHand.GetCards());
                        edtHandB.Text = cards;
                    }
                    btnPlayerB.Enabled = (currentPlayer == player.PlayerName);
                }
                else if (player.PlayerName == "PlayerC")
                {
                    lblPlayerC.Text = "[ ? ]";
                    if (player.CurrentHand != null)
                    {
                        lblPlayerC.Text = "[ " + player.CurrentHand.GetNumberOfCards() + " ]";
                        var cards = HandToString(player.CurrentHand.GetCards());
                        lbHandC.Items.Clear();
                        lbHandC.Items.AddRange(cards.Split(','));
                    }
                    btnPlayerC.Enabled = (currentPlayer == player.PlayerName);
                }
            }
        }