Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
山札から何枚かのカードを手札に加えるサンプル
// プレイヤーのリスト
List<Card> playerCardList;
void DistributeCard(int numRequired){
// 指定された枚数の手札を山札から配布する
playerCardList = new List<Card>();
// 残ったカードを格納するリスト
List<Card> leftCardList = new List<Card>();
int numToChoose = numRequired;
for (int i = 0; i < cardList.Count; i++){
if (numToChoose <= 0){
// 残ったカードをそのまま残りリストに追加する
leftCardList.Add(cardList[i]);
} else {
int numLeft = cardList.Count - i;
float prob = (float)numToChoose / (float)numLeft;
if (Random.value <= prob){
numToChoose--;
playerCardList.Add(cardList[i]);
} else {
leftCardList.Add(cardList[i]);
}
}
}
// 残ったカードを山札とする
cardList = leftCardList;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.