Ejemplo n.º 1
0
    public void sampleSort(List <Random_Card.Card> newHand)
    {
        Random_Card.Card[,] bucket = new Random_Card.Card[5, 14];
        int pointer = 0;

        for (int i = 0; i < newHand.Count; i++)
        {
            if (newHand[i] != null)
            {
                bucket[Convert.ToInt32(newHand[i].suit), Convert.ToInt32(newHand[i].rank)] = newHand[i];
            }
        }
        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j < 14; j++)
            {
                if (bucket[i, j] != null)
                {
                    newHand[pointer] = bucket[i, j];
                    pointer++;
                }
            }
        }
    }
Ejemplo n.º 2
0
    public void Sort(List <Random_Card.Card> hand)
    {
        int counter = 0;
        List <Random_Card.Card> newHand = new List <Random_Card.Card>();

        Random_Card.Card[,] bucketCards = new Random_Card.Card[5, 14];
        for (int i = 0; i < hand.Count; i++)
        {
            if (bucketCards[Convert.ToInt32(hand[i].suit), Convert.ToInt32(hand[i].rank)] != null)
            {
                newHand.Add(hand[i]);
                counter++;
            }
            else
            {
                bucketCards[Convert.ToInt32(hand[i].suit), Convert.ToInt32(hand[i].rank)] = hand[i];
            }
        }

        int    pointer = 0;
        string str1, str2;
        int    incr = 0;

        sampleSort(newHand);
        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j < 14; j++)
            {
                if (bucketCards[i, j] != null)
                {
                    str1 = bucketCards[i, j].ToString();
                    if (newHand.Count > 0)
                    {
                        if (incr < newHand.Count)
                        {
                            if (newHand[incr] != null)
                            {
                                str2 = newHand[incr].ToString();
                            }
                            else
                            {
                                str2 = null;
                            }
                            if (str1 == str2)//bucketCards[i,j] == newHand[incr])
                            {
                                incr++;
                                hand[pointer] = bucketCards[i, j];
                                pointer++;
                                hand[pointer] = bucketCards[i, j];
                                pointer++;
                            }
                            else
                            {
                                pointer++;
                                hand[--pointer] = bucketCards[i, j];
                                pointer++;
                            }
                        }
                        else
                        {
                            pointer++;
                            hand[--pointer] = bucketCards[i, j];
                            pointer++;
                        }
                    }
                    else
                    {
                        hand[pointer] = bucketCards[i, j];
                        pointer++;
                    }
                }
            }
        }
        Random_Card.RummyHand.hand1 = hand;
    }