Esempio n. 1
0
 public void Repaint(PlayerDecision dec, Edge edge, bool canUse)
 {
     decision = dec;
     // original code: text.text = decision.option.message;
     text.text           = "OK";
     button.interactable = canUse;
 }
Esempio n. 2
0
        public static bool Beats(this PlayerDecision currentDecision, PlayerDecision otherDecision)
        {
            var current = (int)currentDecision - 1;
            var other   = (int)otherDecision - 1;

            return((current + 1) % 3 == other);
        }
Esempio n. 3
0
        private void HitOrStay(Player player)
        {
            bool bustOrStay = false;

            while (!bustOrStay)
            {
                if (Rules.GethandValue(player._Hand) > 21)
                {
                    bustOrStay = true;
                }
                else
                {
                    PlayerDecision pDecision = game.ReturnDecision(player);
                    if (pDecision == PlayerDecision.Hit)
                    {
                        game.DealCardTo(player);
                        Console.Clear();
                        PrintBalances();
                        PrintHands();
                    }
                    else
                    {
                        bustOrStay = true;
                    }
                }
            }
        }
Esempio n. 4
0
 private void InitiatePlayers()
 {
     cpus            = new CPU[4];
     playerDecisions = new PlayerDecision[cpus.Length];
     for (int i = 0; i < cpus.Length; i++)
     {
         cpus [i]            = new CPU("CPU " + (i + 1));
         playerDecisions [i] = new PlayerDecision(cpus [i]);
     }
 }
Esempio n. 5
0
 public void SetPlayerDecision(Guid userId, PlayerDecision decision)
 {
     if (Status != GameStatus.Playing)
     {
         throw new ArgumentException(Status.ToString());
     }
     foreach (var player in Players.Where(p => p.UserId == userId))
     {
         player.Decision = decision;
     }
 }
Esempio n. 6
0
    //////////////////////////////////////////////////////////////////////////
    // MakeDecision
    public void    MakeDecision()
    {
        if (m_IsActive == false)
        {
            return;
        }

        EvaluateCards();

        int currentPoints = Points;

        // Bust
        if (currentPoints > 21)
        {
            m_CurrentDecision   = PlayerDecision.BUST;
            m_DecisionText.text = "Bust";
            m_Done = true;
            return;
        }

        // Blackjack
        if (m_CurentCardCount == 2 && currentPoints == 21)
        {
            m_CurrentDecision   = PlayerDecision.BLACKJACK;
            m_DecisionText.text = "Blackjack";
            m_Done = true;
            return;
        }

        // Stop ( what a lucky )
        if (currentPoints == 21)
        {
            m_CurrentDecision   = PlayerDecision.STOP;
            m_DecisionText.text = "Stop";
            m_Done = true;
            return;
        }


        float randomValue = Random.value;

        // Card
        if (currentPoints < 20 && randomValue > 0.4f)
        {
            m_CurrentDecision   = PlayerDecision.CARD;
            m_DecisionText.text = "Card";
        }
        else            // Stop
        {
            m_CurrentDecision   = PlayerDecision.STOP;
            m_DecisionText.text = "Stop";
            m_Done = true;
        }
    }
Esempio n. 7
0
 public void ReportDecision(PlayerDecision playerDecision)
 {
     _sb.Append($"{playerDecision.PlayerName} {playerDecision.Decision.DecisionEnum} ");
     if (playerDecision.Decision.DecisionEnum == DecisionEnum.Call ||
         playerDecision.Decision.DecisionEnum == DecisionEnum.Raise)
     {
         _sb.AppendLine($"{playerDecision.Decision.Chips}");
     }
     else
     {
         _sb.AppendLine();
     }
 }
Esempio n. 8
0
        public static async Task SendDecision(string GameUID, int playerId, PlayerDecision goingFurtherDecision)
        {
            //DecisionToken decision = new DecisionToken(goingFurtherDecision);
            LogManager.Print("Send decision " + goingFurtherDecision.ToString() + ":> " + goingFurtherDecision, "DecisionManager");

            await FirebaseManager.GetInstance().GetClient()
            .Child(AplicationConstants.GAME_LIST)
            .Child(GameUID)
            .Child(AplicationConstants.GAME_NODE)
            .Child(AplicationConstants.PRIVATE_GAME_DATA)
            .Child(AplicationConstants.PLAYERS_PRIVATE_NODE)
            .Child(playerId.ToString())
            .Child(AplicationConstants.DECISION_PROPERTIES).PutAsync(goingFurtherDecision);
        }
Esempio n. 9
0
 public void SetPlayerDecision(Guid userId, PlayerDecision decision)
 {
     if (Status != GameStatus.Playing)
     {
         throw new InvalidOperationException(Status.ToString());
     }
     foreach (var player in Players.Where(p => p.UserId == userId))
     {
         if (player.Decision.HasValue)
         {
             throw new InvalidOperationException(player.Decision.ToString());
         }
         player.Decision = decision;
     }
 }
Esempio n. 10
0
        public void RecordDecision(PlayerDecision playerDecision)
        {
            switch (GameStage)
            {
            case GameStage.Initialized:
                throw new InvalidOperationException("No decision needs to made at this stage");

            case GameStage.HolesReceived:
                HolesDecisions.Add(playerDecision);
                break;

            case GameStage.FlopsSeen:
                FlopsDecisions.Add(playerDecision);
                break;

            case GameStage.TurnSeen:
                TurnDecisions.Add(playerDecision);
                break;

            case GameStage.RiverSeen:
                RiverDecisions.Add(playerDecision);
                break;
            }

            var player = FindPlayerRecord(playerDecision.PlayerName);

            player.Polled = true;

            switch (playerDecision.Decision.DecisionEnum)
            {
            case DecisionEnum.Check:
                break;

            case DecisionEnum.Fold:
                player.Folded = true;
                break;

            case DecisionEnum.Call:
            case DecisionEnum.Raise:
                player.ChipsBet += playerDecision.Decision.Chips;
                PotSize         += playerDecision.Decision.Chips;
                break;
            }
        }
Esempio n. 11
0
        private void AbsorbDecision(PlayerDecision playerDecision)
        {
            var decisionPlayerRegistry = PlayerRegistries.First(r => string.Equals(r.Player.Name, playerDecision.PlayerName));

            switch (playerDecision.Decision.DecisionEnum)
            {
            case DecisionEnum.Check:
                break;

            case DecisionEnum.Fold:
                decisionPlayerRegistry.Fold();
                break;

            case DecisionEnum.Raise:
            case DecisionEnum.Call:
                decisionPlayerRegistry.Player.ChargeChips(-playerDecision.Decision.Chips);
                break;
            }

            _recorder.RecordDecision(playerDecision);
        }
 void Start()
 {
     kB                = transform.Find("GlobalKB").GetComponent <KB> ();
     canvas            = GameObject.Find("Canvas").GetComponent <Canvas> ();
     communityCards    = canvas.transform.Find("GamePlay").Find("Table").Find("CommunityCards").GetComponent <CommunityCards> ();
     humanPanel        = canvas.transform.Find("GamePlay").Find("HumanPanel").GetComponent <HumanPanel> ();
     playersManager    = canvas.transform.Find("GamePlay").Find("Table").Find("Players").GetComponent <PlayersManager> ();
     chipsPanel        = canvas.transform.Find("GamePlay").Find("Table").Find("Pot");
     CardsObjects      = transform.Find("Cards").gameObject;
     ChipsObjects      = transform.Find("Chips").gameObject;
     ClosedCard        = transform.Find("ClosedCard").GetComponent <Image> ();
     PotAmountText     = canvas.transform.Find("GamePlay").Find("Table").Find("PotAmount").GetComponent <Text> ();
     HandType          = canvas.transform.Find("GamePlay").Find("Table").Find("HandType").GetComponent <Text> ();
     soundManager      = GetComponent <SoundManager> ();
     handEvaluater     = new HandEvaluater(kB);
     playerDecision    = new PlayerDecision(kB);
     compareHands      = new CompareHand(kB);
     orders            = new Queue <EvaluateHandOrder> ();
     EvaluationProcess = false;
     cardsManager      = new CardsManager(this);
     gameStatusCounter = -1;
     waitingState      = true;
 }
Esempio n. 13
0
 public void Repaint(PlayerDecision dec, Edge edge, bool canUse)
 {
     decision            = dec;
     text.text           = decision.option.message;
     button.interactable = canUse;
 }
Esempio n. 14
0
        private async void ClientOnPlayerDecisionReceived(BigInteger roomId, int playerIndex, Address player, PlayerDecision playerDecision)
        {
            if (roomId != this.currentRoomId)
            {
                return;
            }

            Debug.LogFormat("Player {0} decision: {1}", playerIndex, playerDecision);
            await UpdateGameState();
        }
Esempio n. 15
0
 private void Awake()
 {
     player = new PlayerDecision(playerNumb);
     gameControl.InstancePlayerD(player);
 }
Esempio n. 16
0
 public DecisionToken(PlayerDecision decision)
 {
     this.Decision = (int)decision;
 }
Esempio n. 17
0
 public void RecordDecision(PlayerDecision playerDecision)
 {
     _gameStatus.RecordDecision(playerDecision);
     _gameReporter.ReportDecision(playerDecision);
 }
Esempio n. 18
0
            public async Task PlayerDecision(BigInteger roomId, PlayerDecision decision)
            {
                await this.Client.ConnectToContract();

                await this.Client.contract.CallAsync("playerDecision", roomId, (int)decision);
            }
        private async Task ClientOnPlayerDecisionReceived(BigInteger roomId, Address address, PlayerDecision decision)
        {
            if (roomId != this.gameState.RoomId)
            {
                return;
            }

            await UpdateGameState();
        }