コード例 #1
0
        private void ApplyClue(CardInHand card, ClueType clue)
        {
            var thought = GetThoughtsAboutCard(card);

            thought.Clues.Add(clue);

            clue.Accept(thought.Guess);
        }
コード例 #2
0
ファイル: Clue.cs プロジェクト: IvanovAndrew/Hanabi
        public static Clue Create(ClueType clueType, IEnumerable <CardInHand> hand)
        {
            if (clueType == null)
            {
                throw new ArgumentNullException(nameof(clueType));
            }

            var result = new List <CardInHand>();

            foreach (var cardInHand in hand)
            {
                var matcher = new ClueAndCardMatcher(cardInHand.Card);

                if (clueType.Accept(matcher))
                {
                    result.Add(cardInHand);
                }
            }

            var readOnlyCollection =
                new ReadOnlyCollectionBuilder <CardInHand>(result).ToReadOnlyCollection();

            return(new Clue(clueType, readOnlyCollection));
        }