Ejemplo n.º 1
0
 public HandRankerTest(HandRanker ranker, string a, string b, int result)
 {
     _ranker = ranker;
     _a      = a;
     _b      = b;
     _result = result;
 }
Ejemplo n.º 2
0
        public override void OnDoubleClick(Mobile from)
        {
            if (from.InRange(Location, 4) && from.NetState != null)
            {
                if (PokerDealer.Jackpot > 0 && PokerDealer.JackpotWinners != null && PokerDealer.JackpotWinners.Winners.Count > 0)
                {
                    if (PokerDealer.JackpotWinners.Winners.Count > 1)
                    {
                        var sb = new StringBuilder(String.Format("The jackpot is {0:#,0} {1}. ", PokerDealer.Jackpot, PokerDealer.JackpotWinners.TypeOfCurrency.Name));

                        sb.Append("It is currently split by: ");

                        for (int i = 0; i < PokerDealer.JackpotWinners.Winners.Count; ++i)
                        {
                            sb.Append(
                                PokerDealer.JackpotWinners.Winners[i].Mobile != null
                                                                        ? PokerDealer.JackpotWinners.Winners[i].Mobile.Name
                                                                        : "(-null-)");

                            if (PokerDealer.JackpotWinners.Winners.Count == 2 && i == 0)
                            {
                                sb.Append(" and ");
                            }
                            else if (i != PokerDealer.JackpotWinners.Winners.Count - 2)
                            {
                                sb.Append(", ");
                            }
                            else
                            {
                                sb.Append(" and ");
                            }
                        }

                        sb.Append(String.Format(" leading with {0}", HandRanker.RankString(PokerDealer.JackpotWinners.Hand)));

                        DisplayMessage(from, sb.ToString());
                        return;
                    }

                    if (PokerDealer.JackpotWinners.Winners[0] != null && PokerDealer.JackpotWinners.Winners[0].Mobile != null)
                    {
                        DisplayMessage(
                            from,
                            String.Format(
                                "The jackpot is {0:#,0} {1}. {2} leads with {3}",
                                PokerDealer.Jackpot,
                                PokerDealer.JackpotWinners.TypeOfCurrency.Name,
                                PokerDealer.JackpotWinners.Winners[0].Mobile.Name,
                                HandRanker.RankString(PokerDealer.JackpotWinners.Hand)));
                        return;
                    }
                }

                DisplayMessage(from, "Currently No Jackpot");
            }
            else
            {
                from.SendMessage(0x22, "That is too far away.");
            }
        }
Ejemplo n.º 3
0
        public static void Main(string[] args)
        {
            // NUnit inexplicably refused to work for me, so I had to roll my own dirty version of a test suite
            // Please feel free to review these tests.
            TestRunner.RunTests();

            // You can also test the code that did get completed by modifying the following hands
            string handA = "AD KC QS JD 10C";
            string handB = "9H 8H 6H 5H J";

            HandRanker ranker = new HandRanker();
            int        result = ranker.CompareHands(handA, handB);

            switch (result)
            {
            case 1:
                Console.WriteLine($"{handA} beats {handB}, hands down.");
                break;

            case -1:
                Console.WriteLine($"{handA} is beaten by {handB}, what an upset!");
                break;

            case 0:
                Console.WriteLine($"{handA} and {handB} split the pot.");
                break;
            }
        }
Ejemplo n.º 4
0
        public int Execute(ref int totalTests)
        {
            int        passedTests = 0;
            HandRanker ranker      = new HandRanker();

            passedTests += new HandRankerTest(ranker, "2H 4H 5H 7H JH", "2H 4H 5H 7H JH", 0).Execute(ref totalTests);
            passedTests += new HandRankerTest(ranker, "2H 2D 5H 7H JH", "2H 4D 5H 7H JH", 1).Execute(ref totalTests);
            passedTests += new HandRankerTest(ranker, "2H 2C 5H 7H JH", "2H 4C J 7H JH", 0).Execute(ref totalTests);
            passedTests += new HandRankerTest(ranker, "2D 4H 5H 7H JH", "2D 4H J 7H JH", -1).Execute(ref totalTests);

            passedTests += new HandRankerTest(ranker, "AH KH QH JH 10H", "2D 4D 5D 6D 7D", 1).Execute(ref totalTests);
            passedTests += new HandRankerTest(ranker, "KC QH JC 10H 9C", "2D 4D 5D 6D 7D", -1).Execute(ref totalTests);
            passedTests += new HandRankerTest(ranker, "AH AD AC 2H 2D", "6S 7S 8S 9S 10S", -1).Execute(ref totalTests);

            return(passedTests);
        }
Ejemplo n.º 5
0
    public CardConstants.HandRank EvaluatPlayerHand(List <CardId> finalHand)
    {
        HandAnalizer = new HandRanker();
        HandAnalizer.setHandRanker(finalHand);


        if (IsRoyalFlush(finalHand))
        {
            return(CardConstants.HandRank.royalFlush);
        }
        if (IsStarightFlush(finalHand))
        {
            return(CardConstants.HandRank.strightFlush);
        }
        if (HandAnalizer.Rankcount[0] == 4)
        {
            return(CardConstants.HandRank.fourOfAKind);
        }
        if (HandAnalizer.Rankcount[0] == 3 && HandAnalizer.Rankcount[1] == 2)
        {
            return(CardConstants.HandRank.fullHouse);
        }
        if (HandAnalizer.Suits[0] >= 5)
        {
            return(CardConstants.HandRank.flush);
        }
        if (IsStright(finalHand))
        {
            return(CardConstants.HandRank.stright);
        }
        if (HandAnalizer.Rankcount[0] == 3)
        {
            return(CardConstants.HandRank.threeOfaKind);
        }
        if (HandAnalizer.Rankcount[0] == 2 && HandAnalizer.Rankcount[1] == 2)
        {
            return(CardConstants.HandRank.twoPairs);
        }
        if (HandAnalizer.Rankcount[0] == 2)
        {
            return(CardConstants.HandRank.onePair);
        }
        else
        {
            return(CardConstants.HandRank.highCard);
        }
    }//this function  determine hand value after the anlizer work on the player hand
        // GET: DealCards
        public ActionResult PokerGame()
        {
            var dealer = new DealCards();

            dealer.Deal();
            ViewBag.playerCards   = dealer.sortedPlayerCards;
            ViewBag.computerCards = dealer.sortedComputerCards;
            ViewBag.Winner        = dealer.whoWins;

            var  playerRanker   = new HandRanker(ViewBag.playerCards);
            var  computerRanker = new HandRanker(ViewBag.computerCards);
            Hand playerHand     = playerRanker.EvaluateHand();
            Hand computerHand   = computerRanker.EvaluateHand();

            ViewBag.playerHand   = playerHand;
            ViewBag.computerHand = computerHand;

            return(View());
        }
Ejemplo n.º 7
0
 public RoyalFlushRanker(HandRanker nextRanker)
     : base(nextRanker)
 {
 }
 public StraightFlushRanker(HandRanker nextRanker)
     : base(nextRanker)
 {
 }
Ejemplo n.º 9
0
 void Start()
 {
     HandRanker = GetComponent <HandRanker>();
 }