コード例 #1
0
    /// <summary>
    /// Sap xep bai tren tay, uu tien phom
    /// </summary>
    ///
    #region Sap Xep Bai Theo Chat
    static int[] SapXepBaiTheoChat(int[] cardHand)
    {
        List <int> lResult = new List <int> ();

        for (int i = 0; i < 4; i++)
        {
            List <int> lCungChat = new List <int> ();
            for (int j = 0; j < cardHand.Length; j++)
            {
                int s = GetType(cardHand [j]);
                if (i + 1 == s)
                {
                    if (!lCungChat.Contains(cardHand [j]))
                    {
                        lCungChat.Add(cardHand [j]);
                    }
                }
            }
            int[] arrCardCungChat = TypeCardMauBinh.SortArrCard(lCungChat.ToArray());
            lCungChat = new List <int> (arrCardCungChat);
            if (lCungChat.Count > 0)
            {
                lResult.AddRange(lCungChat);
            }
        }
        if (lResult.Count > 0)
        {
            return(lResult.ToArray());
        }
        return(null);
    }
コード例 #2
0
    public static int[] SortCardTaLa(int[] cardH, List <int> CardEatted, ref int isTangDan)
    {
        List <int> result = new List <int> ();
        List <int> CardAn = new List <int> ();

        CardAn.AddRange(CardEatted);
        if (CardAn != null && CardAn.Count > 0)
        {
            result.AddRange(GetPhomDuocAn(cardH, CardAn.ToArray()));
        }
        else
        {
            result.AddRange(GetPhomTrenTayOneArray(cardH));
        }

        int[]      temp    = cardH.Except(result).ToArray();  //lay cai ko chung giua phom va card tt
        List <int> result2 = new List <int> ();

        switch (isTangDan)
        {
        case 1:
            result2.AddRange(TypeCardMauBinh.SortArrCard(temp));
            isTangDan = 2;
            break;

        case 2:
            var res = temp.GroupBy(x => GetType(x)).Select(g => g.OrderBy(y => GetValue(y)));
            foreach (var item in res)
            {
                result2.AddRange(item.ToList());
            }
            isTangDan = 3;
            break;

        case 3:
            result2.AddRange(SapXepBaiTheoChat(temp));
            isTangDan = 1;
            break;
        }

        result.AddRange(result2);
        return(result.ToArray());
    }