private static void Shuffle ()
{
string[] cardType = { “红桃”, “黑桃”, “方块”, “梅花” };
string[] cardValue = { “A”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “J”, “Q”, “K” };
// 所有的卡牌,未打乱状态
List allCard = new List();
// 打乱后的结果
List result = new List ();
// 生成52张牌,放到allCard数组里
for (int i = 0; i < cardType.Length; i++) {
for (int j = 0; j < cardValue.Length; j++) {
allCard.Add(cardType[i] + cardValue[j]);
}
}
// 定义随机数
Random random = new Random ();
// 循环52次,把未打乱的卡牌数组乱序存到新的数组里
for (int i = 0; i < cardType.Length * cardValue.Length; i++) {
// 定义一个随机的下标,范围是 0 ~ 有序数组的长度
int randomIndex = random.Next(0,allCard.Count);
// 给新数组赋值,值是未打乱卡牌数组中的随机某个位置
result.Add(allCard[randomIndex]);
// 将刚才随机过的下标数据从数组中移除
allCard.RemoveAt(randomIndex);
}
// 数组乱序数组中的所有数据,测试
foreach (var item in result) {
Console.WriteLine (item);
}
}