// 自动出牌 void AutoPop() { List <Card> cards = CardRules.DelayDiscardCard(UserInfoModel.userInfo.userId.ToString()); bool isCanPop = cards.Count > 0; if (isCanPop) { List <Card> select = new List <Card>(); List <CardUI> selectUis = new List <CardUI>(); for (int i = 0; i < GetSpriteUIs().Length; i++) { if (GetSpriteUIs()[i].Select) { select.Add(GetSpriteUIs()[i].Card); selectUis.Add(GetSpriteUIs()[i]); } } //先检测已选择的牌可以出不 if (PlayCard.IsCanPop(select)) { LandlordsNet.C2G_PopReq(1, select, null, null); } else { CardRules.SortCards(cards, true); LandlordsNet.C2G_PopReq(1, cards, null, null); } } else { Interaction.Instance.NoPlayCard(0); } LandlordsModel.Instance.TimeOutAudioPopCount++; }
public async Task CreateDebtAsync(Debt debt, DebtType debtType) { var classInstallments = new InstallmentsContext(); if (debtType == DebtType.Card) { debt.Date = CardRules.CardDateRule(debt.Card.ClosureDate, debt.Card.DueDate, debt).Date; } // TODO ver forma de fazer isso melhor if (debt.DebtInstallmentType == DebtInstallmentType.Simple) { classInstallments.SetStrategy(new CreateSimpleInstallments()); } else if (debt.DebtInstallmentType == DebtInstallmentType.Fixed) { classInstallments.SetStrategy(new CreateFixedInstallments()); } else if (debt.DebtInstallmentType == DebtInstallmentType.Installment) { classInstallments.SetStrategy(new CreateInstallments()); } var installments = classInstallments.CreateInstallments(debt); debt.Installments = installments; debt.Id = Guid.NewGuid(); debt.CreatedAt = DateTime.Now; debt.DebtType = debtType; await _debtRepository.AddAsync(debt); }
private void CheckIsTingPai(List <Int64> list, Int64 choseCardID) { List <Int64> tingPaiList; tingPaiList = CardRules.CheckIsTing(list, laizi, gameRule, choseCardID); EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <List <Int64> >(EventId.UIFrameWork_Tingpai, tingPaiList); }
private void CheckSelfAddCardFunc(List <Int64> list, List <Int64> RevealCardList, Int64 mopai) { Int64 cardID = 0; int num = 3; int canGangCard = CardRules.CheckBySelfAddCardIsCanGang(list, mopai, laizi, GetLaizipi(laizi)); if (canGangCard != 0) { num++; cardID = canGangCard; } if (CardRules.PopEnable(RevealCardList, mopai, GetLaizipi(laizi)) == 3)//检测回头笑的情况 { num++; cardID = mopai; } if (CardRules.IsHupai(list, laizi, mopai, gameRule)) { num += 2;; } if (num != 3) { EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <Int64, Int64>(EventId.SelfCanPengOrGang, num, cardID);//自己摸牌判断是否可以用杠 } }
public void Inits(List <Card> cards) { CardsType cardsType = CardsType.None; CardRules.PopEnable(cards.ToArray(), out cardsType); Layout(cardsType, cards); }
/// <summary> /// 激活叫分按钮 /// </summary> void ActiviteCallFenButton() { onefenBtn.gameObject.SetActive(true); twofenBtn.gameObject.SetActive(true); threefenBtn.gameObject.SetActive(true); noCallBtn.gameObject.SetActive(true); //检测是否有炸弹和王炸 List <Card> cards = new List <Card>(); LandkirdsHandCardModel my = LandlordsModel.Instance.MyInfo; for (int i = 0; i < my.CardsCount; i++) { cards.Add(my[i]); } cards = CardRules.FindBoom(cards, 0, true); if (cards == null || cards.Count == 0) { //设置分值按钮置灰 List <int> list = LandlordsModel.Instance.GetCanCallLandlordNum(); onefenBtn.interactable = list.Contains(1); twofenBtn.interactable = list.Contains(2); threefenBtn.interactable = list.Contains(3); } else { //只能叫3分或者不叫 onefenBtn.interactable = false; twofenBtn.interactable = false; threefenBtn.interactable = true; noCallBtn.interactable = true; } }
public bool CheckSelectCardsEx(int[] pai, out int num) { CardSprite[] sprites = this.GetComponentsInChildren <CardSprite>(); //找出所有选中的牌 //List<Card> selectedCardsList = new List<Card>(); //List<CardSprite> selectedSpriteList = new List<CardSprite>(); selectedCardsList.Clear(); selectedSpriteList.Clear(); for (int i = 0; i < sprites.Length; i++) { if (sprites[i].Select) { pai[selectedCardsList.Count] = sprites[i].Poker.GetId; selectedSpriteList.Add(sprites[i]); selectedCardsList.Add(sprites[i].Poker); } } num = selectedCardsList.Count; //排好序 CardRules.SortCards(selectedCardsList, true); //出牌 //return CheckPlayCards(selectedCardsList, selectedSpriteList); return(true); }
/// <summary> /// 获取所有手牌 /// </summary> /// <returns></returns> protected List <Card> GetAllCards(List <Card> exclude = null) { List <Card> cards = new List <Card>(); HandCards allCards = gameObject.GetComponent <HandCards>(); bool isContinue = false; for (int i = 0; i < allCards.CardsCount; i++) { isContinue = false; if (exclude != null) { for (int j = 0; j < exclude.Count; j++) { if (allCards[i] == exclude[j]) { isContinue = true; break; } } } if (!isContinue) { cards.Add(allCards[i]); } } //从小到大排序 CardRules.SortCards(cards, true); return(cards); }
/// <summary> /// 获取所有手牌 /// </summary> /// <returns></returns> static List <Card> GetAllCards(string uid, List <Card> exclude = null) { List <Card> cards = new List <Card>(); LandkirdsHandCardModel allCards = LandlordsModel.Instance.GetHandCardMode(uid); bool isContinue = false; for (int i = 0; i < allCards.CardsCount; i++) { isContinue = false; if (exclude != null) { for (int j = 0; j < exclude.Count; j++) { if (allCards[i] == exclude[j]) { isContinue = true; break; } } } if (!isContinue) { cards.Add(allCards[i]); } } //从小到大排序 CardRules.SortCards(cards, true); return(cards); }
/// <summary> /// 排序 只需要给自己的排序 /// </summary> /// <param name="index"></param> public void SortCard() { PlayerData data = _infoList[(Int32)selfOrderIndex - 1]; CardRules.SortCardsForInt(data.HandCardList, laizi); data.HandCardList.Reverse(); EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <List <PlayerData> >(EventId.UIFrameWork_Deal_Card_First, _infoList); }
public void SetTablePai(int[] pai, int num) { ClearTable(); //保存当前出的牌,以便清除 m_nPaiNum = num; m_nPai = pai; //m_bflash = true; //m_nPai = pai; //m_nPaiNum = num; //DeskCardsCache.Instance.Clear(); //for (int i = 0; i < m_nPaiNum; i++) //{ // DeskCardsCache.Instance.AddCard(m_Cardlist[i]); //} GameObject deskobj = GameObject.Find("Desk"); Transform desktf = deskobj.transform; List <Card> tmpcard = new List <Card>(); List <CardSprite> tmpcardsprite = new List <CardSprite>(); for (int i = 0; i < num; i++) { if (!m_Pokerlist.ContainsKey(pai[i])) { Debug.LogError(string.Format("SetTablePai, pai id:[{0}] is error", pai[i])); continue; } CardSprite cp = m_Pokerlist[pai[i]].GetComponent <CardSprite>(); tmpcardsprite.Add(cp); tmpcard.Add(cp.Poker); cp.Poker.Attribution = CharacterType.Desk; cp.transform.SetParent(desktf); cp.transform.localScale = new Vector3(1, 1, 1); m_Pokerlist[pai[i]].SetActive(true); } //排序所出的牌 CardRules.SortCards(tmpcard, true); for (int i = 0; i < tmpcard.Count; i++) { for (int j = 0; j < tmpcardsprite.Count; j++) { if (tmpcardsprite[j].Poker == tmpcard[i]) { tmpcardsprite[j].GoToPosition(deskobj, i); } } } }
public void ReconnectionShowSelfCard(Int64 index) { PlayerData data = _infoList[(Int32)index - 1]; CheckIsTingPai(data.HandCardList, 0); CardRules.SortCardsForInt(data.HandCardList, TableController.Instance.laizi); data.HandCardList.Reverse(); EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <List <PlayerData> >(EventId.UIFrameWork_Reconnection, _infoList); }
/// <summary> /// 检测玩家出牌 /// </summary> bool CheckPlayCards(List <Card> selectedCardsLists, out CardsType type) { bool isCanPlayCard = false; Card[] selectedCardsArray = selectedCardsLists.ToArray(); //检测是否符合出牌规则 //CardsType type; if (CardRules.PopEnable(selectedCardsArray, out type)) { CardsType rule = DeskCardsCache.Instance.Rule; if (OrderController.Instance.BiggestUid == OrderController.Instance.TypeUid) { isCanPlayCard = true; } else if (DeskCardsCache.Instance.Rule == CardsType.None) { isCanPlayCard = true; } else if (type == rule && selectedCardsLists.Count == DeskCardsCache.Instance.CardsCount && LandlordsModel.Instance.GetWeight(selectedCardsArray, type) > DeskCardsCache.Instance.TotalWeight) { isCanPlayCard = true; } //飞机带1 else if (type == rule && type == CardsType.TripleStraightDaiOne) { if (selectedCardsLists.Count == DeskCardsCache.Instance.CardsCount && LandlordsModel.Instance.GetWeight(selectedCardsArray, type) > DeskCardsCache.Instance.TotalWeight) { isCanPlayCard = true; } } //飞机带2 else if (type == rule && type == CardsType.TripleStraightDaiTwo) { if (selectedCardsLists.Count == DeskCardsCache.Instance.CardsCount && LandlordsModel.Instance.GetWeight(selectedCardsArray, type) > DeskCardsCache.Instance.TotalWeight) { isCanPlayCard = true; } } //炸弹 else if (type == CardsType.Boom && rule != CardsType.Boom) { isCanPlayCard = true; } else if (type == CardsType.JokerBoom) { isCanPlayCard = true; } else if (type == CardsType.Boom && rule == CardsType.Boom && LandlordsModel.Instance.GetWeight(selectedCardsArray, type) > DeskCardsCache.Instance.TotalWeight) { isCanPlayCard = true; } } return(isCanPlayCard); }
/// <summary> /// 自己碰了后检测自己是否可以杠 /// </summary> public void CheckSelfCanAnGang() { PlayerData data = _infoList[(int)selfOrderIndex - 1]; int canGangCard = CardRules.CheckBySelfAddCardIsCanGang(data.HandCardList, 0, laizi, GetLaizipi(laizi)); if (canGangCard != 0) { EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <Int64, Int64>(EventId.SelfCanPengOrGang, 4, canGangCard); } }
/// <summary> /// 断线重连的时候,自己的手牌里面包括当前摸的牌,为了走摸牌的流程,把自己当前的摸牌从手牌中剔除 /// </summary> public void ReconnectionRemoveMopai(Int64 mopai) { int index = (int)selfOrderIndex; PlayerData item = _infoList[index - 1]; item.RemoveAppointMj(mopai); CardRules.SortCardsForInt(item.HandCardList, TableController.Instance.laizi); item.HandCardList.Reverse(); EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <List <PlayerData> >(EventId.UIFrameWork_Reconnection, _infoList); }
/// <summary> /// 检测自己杠或者碰了以后,自己打什么牌可以听 /// </summary> public void CheckSelfPutOutCardCantingTips() { PlayerData data = _infoList[(int)selfOrderIndex - 1]; List <Int64> tingPaiList = CardRules.CheckPutOutCanTingpai(data.HandCardList, laizi, gameRule); if (tingPaiList.Count > 0) { EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <List <Int64> >(EventId.UIFrameWork_Putout_Can_Tingpai, tingPaiList); } }
/// <summary> /// 如果赖子没有做配牌使用,也是硬胡,那么也就是没赖子 /// </summary> /// <returns></returns> public bool CheckSelfIsHaveLaizi() { int index = (int)selfOrderIndex; PlayerData item = _infoList[index - 1]; if (CardRules.CheckIsYingHu(item.HandCardList)) { return(false); } return(item.HandCardList.Contains(laizi)); }
/// <summary> /// 遍历选中的牌 /// </summary> void CheckSelectCards() { //排好序 CardRules.SortCards(selectedCardsList, true); CardsType type = CardsType.None; //出牌 CheckPlayCards(selectedCardsList, out type);//这里不用判断能否出牌,因为selectedCardsList是服务器已经判断过能出的牌 PlayCards(type); }
public void SetDiPai(int[] pai, int num) { //clear di pai m_nPaiNum = 0; GameObject deskobj = GameObject.Find("Player"); Transform desktf = deskobj.transform; CUser me = m_UserlistById[CPlayer.Instance().m_nUid]; // pai.CopyTo(me.m_nPai, 17); for (int i = 0; i < 3; i++) { me.m_nPai.Add(pai[i]); } List <Card> tmpcard = new List <Card>(); List <CardSprite> tmpcardsprite = new List <CardSprite>(); for (int i = 0; i < me.m_nPai.Count; i++) { CardSprite cp = m_Pokerlist[me.m_nPai[i]].GetComponent <CardSprite>(); tmpcardsprite.Add(cp); tmpcard.Add(cp.Poker); cp.SetActvie(true); cp.Poker.Attribution = CharacterType.Player; cp.transform.SetParent(desktf); cp.transform.localScale = new Vector3(1, 1, 1); m_Pokerlist[me.m_nPai[i]].SetActive(true); } CardRules.SortCards(tmpcard, true); for (int i = 0; i < tmpcard.Count; i++) { for (int j = 0; j < tmpcardsprite.Count; j++) { if (tmpcardsprite[j].Poker == tmpcard[i]) { tmpcardsprite[j].GoToPosition(deskobj, i); } } } }
/// <summary> /// 检测玩家出牌 /// </summary> /// <param name="selectedCardsList"></param> /// <param name="selectedSpriteList"></param> bool CheckPlayCards(List <Card> selectedCardsList, List <CardSprite> selectedSpriteList) { GameController controller = GameObject.Find("GameController").GetComponent <GameController>(); Card[] selectedCardsArray = selectedCardsList.ToArray(); //检测是否符合出牌规则 CardsType type; if (CardRules.PopEnable(selectedCardsArray, out type)) { CardsType rule = DeskCardsCache.Instance.Rule; if (OrderController.Instance.Biggest == OrderController.Instance.Type) { PlayCards(selectedCardsList, selectedSpriteList, type); return(true); } else if (DeskCardsCache.Instance.Rule == CardsType.None) { PlayCards(selectedCardsList, selectedSpriteList, type); return(true); } //炸弹 else if (type == CardsType.Boom && rule != CardsType.Boom) { controller.Multiples = 2; PlayCards(selectedCardsList, selectedSpriteList, type); return(true); } else if (type == CardsType.JokerBoom) { controller.Multiples = 4; PlayCards(selectedCardsList, selectedSpriteList, type); return(true); } else if (type == CardsType.Boom && rule == CardsType.Boom && GameController.GetWeight(selectedCardsArray, type) > DeskCardsCache.Instance.TotalWeight) { controller.Multiples = 2; PlayCards(selectedCardsList, selectedSpriteList, type); return(true); } else if (GameController.GetWeight(selectedCardsArray, type) > DeskCardsCache.Instance.TotalWeight) { PlayCards(selectedCardsList, selectedSpriteList, type); return(true); } } return(false); }
/// <summary> /// 主角是否能出牌 /// </summary> public static bool IsCanPop(List <Card> cards) { //排好序 CardRules.SortCards(cards, true); CardsType type = CardsType.None; bool isCanPlayCard = PlayCard.Instance.CheckPlayCards(cards, out type); if (!isCanPlayCard) { UIUtils.Log("不能大过场上的牌或者和场上的牌型不一致"); } return(isCanPlayCard); }
/// <summary> /// 激活出牌按钮 /// </summary> void ActivePopButton(bool canReject) { if (LandlordsModel.Instance.IsTuoGuan || LandlordsMainPlayer.CheckIsLastCanAutoPop()) { return; } List <Card> cards = CardRules.DelayDiscardCard(UserInfoModel.userInfo.userId.ToString()); chongxuanBtn.gameObject.SetActive(true); chongxuanBtn.interactable = cards.Count > 0; tipsBtn.SetActive(true); playBtn.gameObject.SetActive(true); noPlayBtn.gameObject.SetActive(true); noPlayBtn.interactable = canReject; playBtn.interactable = cards.Count > 0; }
/// <summary> /// 起牌 /// </summary> /// <param name="cardID"></param> public void AddCard(Int64 cardID, Int64 index) { PlayerData data = _infoList[(Int32)index - 1]; data.AddHandCard(cardID); EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <PlayerData>(EventId.UIFrameWork_Player_Draw_Card, data); if (index == selfOrderIndex) { List <Int64> tingPaiList; tingPaiList = CardRules.CheckPutOutCanTingpai(data.HandCardList, laizi, gameRule); if (tingPaiList.Count > 0) { EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <List <Int64> >(EventId.UIFrameWork_Putout_Can_Tingpai, tingPaiList); } } }
public override void RoundEnter(bool isCanNoPlay) { base.RoundEnter(isCanNoPlay); switch (OrderController.Instance.CurInterationType) { case InterationType.CallLandlords: clock.Init(LandlordsPage.wait_CallLandlordsTime, 10, 5, null, true); break; case InterationType.QiangLandlords: clock.Init(LandlordsPage.wait_QiangTime, 10, 5, null, true); break; case InterationType.CallFen: clock.Init(LandlordsPage.wait_CallFenTime, 10, 5, () => AutoCallLandlord(), true); break; case InterationType.PopCard: if (LandlordsModel.Instance.IsTuoGuan) { //如果是托管状态 return; } List <Card> cards = CardRules.DelayDiscardCard(UserInfoModel.userInfo.userId.ToString()); if (CheckIsLastCanAutoPop()) { SetTimeout.add(1.5f, () => { AutoPop(); }); return; } if (cards.Count == 0) { clock.Init(LandlordsPage.wait_canNotPopTime, 4, 5, () => AutoPop(), true); } else { clock.Init(LandlordsPage.wait_PopTime, 10, 5, () => AutoPop(), true); } break; default: break; } }
/// <summary> /// 主角请求出牌 /// </summary> public bool MainRolePopReq(CallBack call) { CardUI[] sprites = GetSpriteUIs(); //找出所有选中的牌 List <Card> selectedCardsLists = new List <Card>(); for (int i = 0; i < sprites.Length; i++) { if (sprites[i].Select) { selectedCardsLists.Add(sprites[i].Card); } } //排好序 CardRules.SortCards(selectedCardsLists, true); bool isCanPop = PlayCard.IsCanPop(selectedCardsLists); if (isCanPop) { LandlordsNet.C2G_PopReq(1, selectedCardsLists, call, null); } else { List <Card> exclude = new List <Card>(); for (int i = 0; i < sprites.Length; i++) { if (!sprites[i].Select) { exclude.Add(sprites[i].Card); } } List <Card> popCard = LandlordsModel.Instance.TipsModel.Tips2(exclude); isCanPop = popCard.Count > 0; if (isCanPop) { LandlordsNet.C2G_PopReq(1, popCard, call, null); } } return(isCanPop); }
/// <summary> /// 出牌 /// </summary> /// <param name="cardID"></param> public void PopCard(Int64 cardID, Int64 index, Int64 laizipi, Int64 laizi) { List <Int64> tingPaiList; int flag = 0; PlayerData data = _infoList[(Int32)index - 1]; if (index == selfOrderIndex) { if (cardID == laizi) { selfPutOutLaiziNum++; } data.HandCardList.Remove(cardID); if (laizi == cardID) { EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <EffectPrompt>(EventId.UIFrameWork_Effect_Prompt, EffectPrompt.lai); } } else { data.HandCardList.Remove(0); } if (index != selfOrderIndex) { if (!TableController.Instance.canNotPengMjList.Contains(cardID)) { // flag = CheckOtherPlayCard(cardID, laizipi flag = CheckOtherPlayCard(cardID, laizipi); } } else { tingPaiList = CardRules.CheckIsTing(data.HandCardList, laizi, gameRule); if (tingPaiList.Count > 0) { EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <List <Int64> >(EventId.UIFrameWork_Tingpai, tingPaiList); } } EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent <PlayerData, int>(EventId.UIFrameWork_Player_Out_Card, data, flag); }
/// <summary> /// 别人出牌后,检测自己是否可以碰或者点杠 /// </summary> public int CheckOtherPlayCard(Int64 cardID, Int64 laizipi) { int temp = 0; int flag = 0;; PlayerData data; data = _infoList[(Int32)selfOrderIndex - 1]; if (CardRules.PopEnable(data.HandCardList, cardID, laizipi) == 2) { flag = 2; } else if (CardRules.PopEnable(data.HandCardList, cardID, laizipi) == 3) { flag = 3; if (cardID == laizipi) { flag = 4; } // EventDispatcher.GetInstance().UIFrameWorkEventManager.TriggerEvent<Int64, Int64>(EventId.SelfCanPengOrGang, 3, cardID); } if (CardRules.IsHupai(data.HandCardList, laizi, cardID, gameRule)) { // temp = 5; if (flag == 2) { flag = 7; } else if (flag == 3) { flag = 8; } else if (flag == 0) { flag = 9; } } // CheckSelfAddCard(cardID, laizi, laizipi); // CheckSelfByAddCard(); return(flag); }
public void SetPlayerPai(int[] pai, int num) { GameObject deskobj = GameObject.Find("Player"); Transform desktf = deskobj.transform; List <Card> tmpcard = new List <Card>(); List <CardSprite> tmpcardsprite = new List <CardSprite>(); for (int i = 0; i < num; i++) { m_UserlistById[CPlayer.Instance().m_nUid].m_nPai[i] = pai[i]; if (!m_Pokerlist.ContainsKey(pai[i])) { Debug.LogError(string.Format("SetTablePai, pai id:[{0}] is error", pai[i])); continue; } CardSprite cp = m_Pokerlist[pai[i]].GetComponent <CardSprite>(); tmpcardsprite.Add(cp); tmpcard.Add(cp.Poker); cp.Poker.Attribution = CharacterType.Player; cp.transform.SetParent(desktf); cp.transform.localScale = new Vector3(1, 1, 1); m_Pokerlist[pai[i]].SetActive(true); } CardRules.SortCards(tmpcard, true); for (int i = 0; i < tmpcard.Count; i++) { for (int j = 0; j < tmpcardsprite.Count; j++) { if (tmpcardsprite[j].Poker == tmpcard[i]) { tmpcardsprite[j].GoToPosition(deskobj, i); } } } }
public bool CheckSelectCards() { CardSprite[] sprites = gameObject.transform.Find("StartPoint").GetComponentsInChildren <CardSprite>(); // 找出所有选中的 List <Card> selectedCardsList = new List <Card>(); List <CardSprite> selectedSpriteList = new List <CardSprite>(); for (int i = 0; i < sprites.Length; i++) { if (sprites[i].Select) { selectedSpriteList.Add(sprites[i]); selectedCardsList.Add(sprites[i].Poker); } } //排序 CardRules.SortCards(selectedCardsList, true); return(CheckPlayCards(selectedCardsList, selectedSpriteList)); }
/// <summary> /// 遍历选中的牌和牌精灵 /// </summary> public bool CheckSelectCards() { CardSprite[] sprites = this.GetComponentsInChildren <CardSprite>(); //找出所有选中的牌 List <Card> selectedCardsList = new List <Card>(); List <CardSprite> selectedSpriteList = new List <CardSprite>(); for (int i = 0; i < sprites.Length; i++) { if (sprites[i].Select) { selectedSpriteList.Add(sprites[i]); selectedCardsList.Add(sprites[i].Poker); } } //排好序 CardRules.SortCards(selectedCardsList, true); //出牌 return(CheckPlayCards(selectedCardsList, selectedSpriteList)); }