コード例 #1
0
        public int CardToPlay(CrazyEightsSaveInfo saveroot)
        {
            CrazyEightsPlayerItem player             = saveroot.PlayerList.GetWhoPlayer();
            DeckRegularDict <RegularSimpleCard> list = player.MainHandList.Where(x => x.Value != EnumCardValueList.Eight && x.Suit == saveroot.CurrentSuit).ToRegularDeckDict();

            if (list.Count != 0)
            {
                return(list.GetRandomItem().Deck);
            }
            list = player.MainHandList.Where(x => x.Value != EnumCardValueList.Eight && x.Value == saveroot.CurrentNumber).ToRegularDeckDict();
            if (list.Count == 1)
            {
                return(list.Single().Deck);
            }
            if (list.Count != 0)
            {
                return(FindBestCard(list));
            }
            list = player.MainHandList.Where(x => x.Value == EnumCardValueList.Eight).ToRegularDeckDict();
            if (list.Count != 0)
            {
                return(list.GetRandomItem().Deck);
            }
            return(0);//0 means needs to draw.
        }
コード例 #2
0
        public EnumSuitList SuitToChoose(CrazyEightsPlayerItem player)
        {
            var best = player.MainHandList.GroupBy(x => x.Suit).OrderByDescending(Temps => Temps.Count());

            return(best.First().Key);
        }