/// <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); }
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()); }