/// <summary> /// 满足条件时抽上限牌数 /// </summary> private void DrugCard() { for (AlreadyDrugNum = 0; AlreadyDrugNum < SumDrugNum; AlreadyDrugNum++) { if (RemainCardNum != 0) { //随机数j int j = Random.Range(0, CardToDrugList.Count); //List中的第j+1个元素对应的值 (j+1) CreatCard(i, CardToDrugList[j]); //剩余卡牌数-1 RemainCardNum--; //从抽牌List中移除掉这张牌 CardToDrugList.Remove(CardToDrugList[j]); AlreadyInHand.add(j) } else { ReStartCardList(); ReStartLoseCardList(); int j = Random.Range(0, CardToDrugList.Count); //List中的第j+1个元素对应的值 (j+1) CreatCard(i, CardToDrugList[j]); //剩余卡牌数-1 RemainCardNum--; //从抽牌List中移除掉这张牌 CardToDrugList.Remove(CardToDrugList[j]); AlreadyInHand.add(j) } } }
/// <summary> /// 洗牌后重置列表用于抽牌 /// </summary> private void ReStartCardList() { RemainCardNum = SumCardNum - AlreadyDrugNum; //清空已有的LIST CardToDrugList.Clear(); for (int i = 0; i < SumCardNum; i++) { CardToDrugList.Add(i); } for (int j = 0; j < AlreadyDrugNum; j++) { CardToDrugList.remove(AlreadyInHand[j]); } for (int h = 0; h < DisappearCard.count; h++) { CardToDrugList.remove(AlreadyInHand[h]); } GameObject.Find("Event").GetComponent <MainSceneEvent>().HowManyCardHadUsed = 0; }