コード例 #1
0
        public FoldResult PlayFold(int turn)
        {
            List <Card> cardsPlayed = new List <Card>();

            for (var i = 0; i < PlayersCount; i++)
            {
                var card = _players[i].PlayCard();
                if (!_hands[i].Remove(card))
                {
                    throw new InvalidOperationException(_players[i].Name + " is a cheater!");
                }

                _logger.Log(LogLevel.Debug, card.ToString());
                cardsPlayed.Add(card);
            }

            var winnerIndex = cardsPlayed.IndexOf(cardsPlayed.Max());
            var result      = new FoldResult(cardsPlayed.AsReadOnly(), winnerIndex, turn);

            foreach (var player in _players)
            {
                player.ReceiveFoldResult(result);
            }
            _logger.Log(LogLevel.Debug, "[" + string.Join(", ", result.CardsPlayed.Select(c => c.ToString()).ToArray()) + "] => " + result.Winner);
            return(result);
        }
コード例 #2
0
ファイル: NayosIA.cs プロジェクト: Falanwe/Rubika-sig3-4gp
 public void ReceiveFoldResult(FoldResult result)
 {
     foreach (Card c in result.CardsPlayed)
     {
         _remainingCards.Remove(c);
     }
 }
コード例 #3
0
 public void ReceiveFoldResult(FoldResult result)
 {
     _currentTurn = result.Turn;
     foreach (Card usedCard in result.CardsPlayed)
     {
         _deck.Remove(usedCard);
     }
 }
コード例 #4
0
 public void ReceiveFoldResult(FoldResult result)
 {
     foreach (Card playedCard in result.CardsPlayed)
     {
         if (!this.DealtCards.Contains(playedCard))
         {
             this.CardDeck.Remove(playedCard);
             this.DealtCards.Add(playedCard);
         }
     }
 }
コード例 #5
0
        void IPlayer.ReceiveFoldResult(FoldResult result)
        {
            for (int i = 0; i < _playerCount; i++)
            {
                if (i != _id)
                {
                    Card c = result.CardsPlayed.ToArray()[i];
                    _deck.Remove(c);
                }
            }

            CalculateProb();
        }
コード例 #6
0
ファイル: EricPlayer.cs プロジェクト: Falanwe/Rubika-sig3-4gp
 public void ReceiveFoldResult(FoldResult result)
 {
     if (_lastCard.CompareTo(result.CardsPlayed.Max()) < 0)
     {
         _turn = _cards.Count - 1;
     }
     else
     {
         _turn = _cards.Count / 2;
         if (_turn > 1)
         {
             _turn--;
         }
     }
 }
コード例 #7
0
        public void ReceiveFoldResult(FoldResult result)
        {
            _wins[result.Winner]++;
            _previousWinningCard = result.CardsPlayed.First();

            foreach (var card in result.CardsPlayed)
            {
                _playedCards.Add(card);
                _valuesPlayed[(int)card.Value]++;

                if (_previousWinningCard.CompareTo(card) < 0)
                {
                    _previousWinningCard = card;
                }
            }

            //_logger.Log(LogLevel.Warning, "Wining Card : " + _previousWinningCard.Value + " of " + _previousWinningCard.Suit);
        }
コード例 #8
0
ファイル: GladOS.cs プロジェクト: Falanwe/Rubika-sig3-4gp
        public void ReceiveFoldResult(FoldResult result)
        {
            foreach (Card c in result.CardsPlayed)
            {
                _valuesArray[(int)c.Value]++;

                if ((int)c.Value >= _maxIndex)
                {
                    _maxIndex = (int)c.Value;
                }

                if ((int)c.Value <= _minIndex)
                {
                    _minIndex = (int)c.Value;
                }
            }

            Moyenne();
        }
コード例 #9
0
 public void ReceiveFoldResult(FoldResult result)
 {
     foreach (var element in result.CardsPlayed)
     {
         if (_cards.Count > 0)
         {
             if (element > _cards.First())
             {
                 _betterCardPlayed++;
             }
             else if (element < _cards.Last())
             {
                 _lessCardPlayed++;
             }
             else
             {
                 _cardPlayed.Add(element);
             }
         }
     }
 }
コード例 #10
0
 public void ReceiveFoldResult(FoldResult result)
 {
     //nothing to do
 }
コード例 #11
0
 public void ReceiveFoldResult(FoldResult result)
 {
 }
コード例 #12
0
ファイル: BestPlayer.cs プロジェクト: Falanwe/Rubika-sig3-4gp
 public void ReceiveFoldResult(FoldResult result)
 {
     _enemyPowerUsed += (int)result.CardsPlayed.ToArray()[0].Value + 2;
 }
コード例 #13
0
 public void ReceiveFoldResult(FoldResult result)
 {
     lastResult = result;
 }
コード例 #14
0
 public void ReceiveFoldResult(FoldResult result)
 {
     // do nothing
 }