Пример #1
0
 /// <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)
         }
     }
 }
Пример #2
0
    /// <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;
    }