Exemple #1
0
        private CompareResult Draw2CardsAndFight(Fighter host, Fighter guest)
        {
            var excluded = new List <Card>();

            excluded.AddRange(host.Holes);
            excluded.AddRange(guest.Holes);
            excluded.AddRange(_flops);

            var allCards             = Utils.GenerateAllCards().Except(excluded).ToArray();
            var twoCardsCombinations = Utils.Enumerate(allCards, 0, 2);

            var compareResult = new CompareResult(0, 0, 0);

            foreach (var twoCardsCombination in twoCardsCombinations)
            {
                var communityCards = new List <Card>();
                communityCards.AddRange(_flops);
                communityCards.AddRange(twoCardsCombination);
                var battleSetup = new BattleSetup(communityCards);

                compareResult.Add(FightBattleSetup(host, guest, battleSetup));
            }

            return(compareResult);
        }
Exemple #2
0
        private CompareResult FightBattleSetup(Fighter host, Fighter guest, BattleSetup battleSetup)
        {
            var hostCards = new List <Card>();

            hostCards.AddRange(host.Holes);
            hostCards.AddRange(battleSetup.CommunityCards);
            var hostHandOf7 = new HandOf7(hostCards);

            var guestCards = new List <Card>();

            guestCards.AddRange(guest.Holes);
            guestCards.AddRange(battleSetup.CommunityCards);
            var guestHandOf7 = new HandOf7(guestCards);

            var hostBestHandScore  = Utils.FindBestHandOf5(hostHandOf7);
            var guestBestHandScore = Utils.FindBestHandOf5(guestHandOf7);

            if (hostBestHandScore > guestBestHandScore)
            {
                return(new CompareResult(1, 0, 0));
            }
            else if (hostBestHandScore < guestBestHandScore)
            {
                return(new CompareResult(0, 1, 0));
            }
            else
            {
                return(new CompareResult(0, 0, 1));
            }
        }
Exemple #3
0
        private CompareResult Draw1CardAndFight(Fighter host, Fighter guest)
        {
            var excluded = new List <Card>();

            excluded.AddRange(host.Holes);
            excluded.AddRange(guest.Holes);
            excluded.AddRange(_flops);
            excluded.Add(_turn);

            var allCards = Utils.GenerateAllCards().Except(excluded).ToArray();

            var compareResult = new CompareResult(0, 0, 0);

            foreach (var river in allCards)
            {
                var communityCards = new List <Card>();
                communityCards.AddRange(_flops);
                communityCards.Add(_turn);
                communityCards.Add(river);
                var battleSetup = new BattleSetup(communityCards);

                compareResult.Add(FightBattleSetup(host, guest, battleSetup));
            }

            return(compareResult);
        }
Exemple #4
0
        private CompareResult NoDrawFight(Fighter host, Fighter guest)
        {
            var communityCards = new List <Card>();

            communityCards.AddRange(_flops);
            communityCards.Add(_turn);
            communityCards.Add(_river);
            var battleSetup = new BattleSetup(communityCards);

            return(FightBattleSetup(host, guest, battleSetup));
        }