/// <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); }
void GetCardNoc(ArrayCard ArrayCardHand, int idCard, bool isTao) { if (ArrayCardHand.listCardHand[1].ID == 52) { ArrayCardHand.listCardHand[1].SetCardWithId(idCard); } else { Card c = GetCardOnArrayCard(ArrayCardHand); //if (isTao) { c.SetCardWithId(idCard); c.transform.localPosition = ArrayCardHand.GetPositonCardActive(); c.SetDarkCard(false); c.SetTouched(isTao); c.IsChoose = false; //} else // c.SetCardWithId(53); //Vector3 vt = ArrayCardHand.POS_CENTER;//ArrayCardHand.transform.InverseTransformPoint(ArrayCardHand.vtPosCenter); Vector3 vt = ArrayCardHand.transform.InverseTransformPoint(dealerPos.position); StartCoroutine(c.MoveFrom(vt, 0.4f, 0, () => { //ArrayCardHand.ResetCard(true); Card ctemp = new Card(); ctemp = c; ArrayCardHand.listCardHand.Remove(c); ArrayCardHand.listCardHand.Add(ctemp); ArrayCardHand.SortCardActive(true, 0.2f); })); } if (isTao) { TYPE_CARD type = TypeCardMauBinh.GetTypeCardMauBinh(list_my_card.ToArray()); Debug.LogError("Kieu bai cua toi" + type); } }
internal override void StartTableOk(int[] cardHand, Message msg, string[] nickPlay) { base.StartTableOk(cardHand, msg, nickPlay); for (int i = 0; i < ListPlayer.Count; i++) { ((LiengPlayer)ListPlayer[i]).MoneyChip = 0; } groupMoneyTo.OnHide(); MinToMoney = GameConfig.BetMoney * 2; MaxToMoney = ClientConfig.UserInfo.CASH_FREE - MinToMoney; SumChipControl.MoneyChip = 0; tongMoney = 0; //Debug.LogError("Card Hand " + cardHand.Length); int[] ccc = new int[2]; int ii = 0; for (int i = 0; i < cardHand.Length; i++) { //Debug.LogError("Card Hand i " + cardHand[i]); if (cardHand[i] >= 0 && cardHand[i] < 52) { ccc[ii] = cardHand[i]; ii++; } } list_my_card.Clear(); list_my_card.AddRange(ccc); for (int i = 0; i < ListPlayer.Count; i++) { LiengPlayer player = (LiengPlayer)ListPlayer[i]; if (player != null) { player.MoneyChip = GameConfig.BetMoney; player.MoveChip(GameConfig.BetMoney, SumChipControl.transform.position); if (player.SitOnClient == 0) { player.CardHand.SetAllDark(true); //player.SetTypeCard(PokerCard.getTypeOfCardsPoker(list_my_card.ToArray())); //player.SetTypeCard( TYPE_CARD type = TypeCardMauBinh.GetTypeCardMauBinh(list_my_card.ToArray()); int type2 = PokerCard.getTypeOfCardsPoker(list_my_card.ToArray()); //Debug.LogError("11111111111Type card: " + type); //Debug.LogError("22222222222Type card: " + type2); player.CardHand.ChiaBaiTienLen(ccc, true); player.CardHand.SetTouchCardHand(true); } else { player.CardHand.ChiaBaiTienLen(new int[] { 52, 52 }, true); } } tongMoney += GameConfig.BetMoney; } SumChipControl.OnShow(); SumChipControl.MoneyChip = tongMoney; }
public void XepBai() { oldPosition.Clear(); int j = 0; for (int i = 0; i < arrayCard.Length; i++) { for (j = 0; j < arrayCard [i].listCardHand.Count; j++) { Card c = arrayCard [i].GetCardbyIndex(j); Vector3 position = c.transform.position; if (!oldPosition.ContainsKey(c.ID)) { oldPosition.Add(c.ID, position); } } } numc++; if (numc > 7) { numc = 1; } int[] arrSorted = TypeCardMauBinh.SortCardMauBinh(GetArrCardID(), ref numc); Vector3 newPos, oldPos; for (j = 0; j < arrayCard [0].listCardHand.Count; j++) { Card c = arrayCard [0].GetCardbyIndex(j); newPos = c.transform.position; oldPos = oldPosition [arrSorted [j]]; c.SetCardWithId(arrSorted [j]); c.transform.position = oldPos; c.transform.DOMove(newPos, 0.2f); } for (j = 0; j < arrayCard [1].listCardHand.Count; j++) { Card c = arrayCard [1].GetCardbyIndex(j); newPos = c.transform.position; oldPos = oldPosition [arrSorted [3 + j]]; c.SetCardWithId(arrSorted [3 + j]); c.transform.position = oldPos; c.transform.DOMove(newPos, 0.2f); } for (j = 0; j < arrayCard [2].listCardHand.Count; j++) { Card c = arrayCard [2].GetCardbyIndex(j); newPos = c.transform.position; oldPos = oldPosition [arrSorted [8 + j]]; c.SetCardWithId(arrSorted [8 + j]); c.transform.position = oldPos; c.transform.DOMove(newPos, 0.2f); } //SetCard(); }
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()); }
IEnumerator WinMauBinh(int[] chi1, int[] chi2, int[] chi3, bool isTao) { yield return(new WaitForEndOfFrame()); Vector3 vt; for (int i = 0; i < arrayCard.Length; i++) { int count = (i == 0 ? 3 : 5); vt = arrayCard [i].transform.localPosition; arrayCard [i].transform.localScale = Vector3.zero; if (isTao) { arrayCard [i].MaxWidth = count * MaxWidthMe; vt.y = PosYMe [i]; } else { arrayCard [i].MaxWidth = count * (MaxWidthOther + 20); vt.y = 80 - i * 40; } arrayCard [i].SortCardActive(true); arrayCard [i].transform.localPosition = vt; arrayCard [i].transform.SetAsLastSibling(); } yield return(new WaitForSeconds(1)); arrayCard [2].SetActiveCardWithArrID(TypeCardMauBinh.SortDescendingArrCard(chi1)); arrayCard [1].SetActiveCardWithArrID(TypeCardMauBinh.SortDescendingArrCard(chi2)); arrayCard [0].SetActiveCardWithArrID(TypeCardMauBinh.SortDescendingArrCard(chi3)); EffectScale(arrayCard [0].transform, 1.1f, () => { EffectScale(arrayCard [1].transform, 1.1f, () => { EffectScale(arrayCard [2].transform, 1.1f, () => { }); }); }); yield return(new WaitForSeconds(2)); SetActiveCard(); }
public void SetSoBai(bool isTao) { //xep xong bai if (isTao) { for (int i = 0; i < arrayCard.Length; i++) { int count = 3; if (i > 0) { count = 5; } int[] arrcccccc = TypeCardMauBinh.SortDescendingArrCard(GetArrCardIDWithChi(i)); arrayCard [i].MaxWidth = count * (MaxWidthMe - 30); arrayCard [i].SetCardWithArrID(arrcccccc); arrayCard [i].SortCardActive(); if (i != arrayCard.Length - 1) { Vector3 vt = arrayCard [i].transform.localPosition; vt.y = PosYMe [i]; arrayCard [i].transform.localPosition = vt; vt.y -= (120 - i * 60); arrayCard [i].transform.DOLocalMoveY(vt.y, 0.2f); } } } else { for (int i = 0; i < arrayCard.Length; i++) { int count = 3; if (i > 0) { count = 5; } arrayCard [i].MaxWidth = count * MaxWidthOther; arrayCard [i].SortCardActive(); arrayCard [i].transform.DOLocalMoveY(PosYOther [i], 0.2f); } } }
IEnumerator SoChi(int[] arrChi, int chi, int typeC, bool isTao) { yield return(new WaitForEndOfFrame()); #region Them Vector3 vt; if (!isOne) //chi == 2 || { isOne = true; yield return(new WaitForSeconds(1)); for (int i = 0; i < arrayCard.Length; i++) { int count = (i == 0 ? 3 : 5); vt = arrayCard [i].transform.localPosition; arrayCard [i].transform.localScale = Vector3.zero; if (isTao) { arrayCard [i].MaxWidth = count * MaxWidthMe; vt.y = PosYMe [i]; } else { arrayCard [i].MaxWidth = count * (MaxWidthOther + 20); vt.y = 80 - i * 40; } arrayCard [i].SortCardActive(true); arrayCard [i].transform.localPosition = vt; arrayCard [i].transform.DOScale(1, 0.2f); } yield return(new WaitForSeconds(1)); } #endregion int typeCC = (int)TypeCardMauBinh.GetTypeCardMauBinh(arrChi); arrChi = TypeCardMauBinh.SortDescendingArrCard(arrChi); for (int i = 0; i < arrayCard.Length; i++) { if (i != chi) { arrayCard [i].transform.DOScale(1, 0.1f); // = Vector3.one; arrayCard [i].transform.SetSiblingIndex(i); } } arrayCard [chi].transform.SetSiblingIndex(4); arrayCard [chi].transform.DOScale(1.2f, 0.2f); // = Vector3.one; vt = arrayCard [chi].transform.localPosition; if (isTao) { vt.y += 40; } else { vt.y += 80; } player.SetTypeCard(GameConfig.STR_TYPE_CARD [typeCC], vt, isTao); //sua arrayCard [chi].SetActiveCardWithArrID(arrChi); if (chi == 0) { yield return(new WaitForSeconds(2)); arrayCard [chi].transform.DOScale(1f, 0.2f); arrayCard [chi].transform.SetAsFirstSibling(); // EffectScale (arrayCard [2].transform, 1.1f, () => { // arrayCard [1].transform.SetAsFirstSibling (); // EffectScale (arrayCard [1].transform, 1.1f, () => { // arrayCard [0].transform.SetAsFirstSibling (); // EffectScale (arrayCard [0].transform, 1.1f, () => { // }); // }); // }); // yield return new WaitForSeconds (2); // SetActiveCard (); } }
void SetLoaiBai(int[] arr) { int[] chi1 = new int[5]; int[] chi2 = new int[5]; int[] chi3 = new int[3]; for (int i = 0; i < arr.Length; i++) { if (i < 5) { chi1 [i] = arr [i]; } else if (i < 10) { chi2 [i - 5] = arr [i]; } else { chi3 [i - 10] = arr [i]; } } int thangtrang = TypeCardMauBinh.IsThangTrang(arr); if (thangtrang != -1) { for (int i = 0; i < txt_typecards.Length; i++) { txt_typecards [i].gameObject.SetActive(false); } txt_typecards [1].gameObject.SetActive(true); txt_typecards [1].text = GameConfig.STR_THANG_TRANG [thangtrang]; return; } TYPE_CARD type1 = TypeCardMauBinh.GetTypeCardMauBinh(chi1); TYPE_CARD type2 = TypeCardMauBinh.GetTypeCardMauBinh(chi2); TYPE_CARD type3 = TypeCardMauBinh.GetTypeCardMauBinh(chi3); // string str = ""; // for (int i = 0; i < chi1.Length; i++) { // str += TypeCardMauBinh.GetValue (chi1 [i]); // } // Debug.LogError (type1 + "\n" + str); // str = ""; // for (int i = 0; i < chi2.Length; i++) { // str += TypeCardMauBinh.GetValue (chi2 [i]); // } // Debug.LogError (type2 + "\n" + str); // // str = ""; // for (int i = 0; i < chi3.Length; i++) { // str += TypeCardMauBinh.GetValue (chi3 [i]); // } // Debug.LogError (type3 + "\n" + str); SetLoaiBaiCuaChi(2, (int)type1); SetLoaiBaiCuaChi(1, (int)type2); SetLoaiBaiCuaChi(0, (int)type3); if (TypeCardMauBinh.IsLung(chi1, chi2, chi3)) { for (int i = 0; i < txt_typecards.Length; i++) { txt_typecards [i].gameObject.SetActive(false); } txt_typecards [1].gameObject.SetActive(true); txt_typecards [1].text = "Binh Lủng"; } }