我有一个名为的数组mainDeck
,它保存一副扑克牌的值。接下来我要做的是将该数组中的卡片分发到两个名为的单独数组中playerDeck
,computerDeck
并且每个卡片组必须包含一张唯一的卡片。
我遇到的问题是分配具有唯一价值的卡片 - 每副牌 26 张卡片。我尝试了几种不同的方法,评论底部的编码是我在不得不离开上课之前尝试做的最后剩余的事情。
注意:我的编程技能仅限于请解释您的答案,而不是仅仅提供解决方案,因为这并不能进一步加深我的理解。
static void Main(string[] args)
{
// 1 = Ace , 13 = King : 0 = Hearts, 1 = Diamonds, 2 = Clubs, 3 = Spades
int[] mainDeck = new int[52];
FillDeck(mainDeck);
int[] playerDeck = new int[26];
int[] computerDeck = new int[26];
// Check mainDeck elements
foreach (int number in mainDeck)
{
Console.WriteLine(number);
}
}
public static void FillDeck(int [] mainDeck)
{
int cardType = 1;
List<int> deck = new List<int>();
// Add cards to a list
for (int x = 0; x < 13; x++)
for(int y = 0; y < 4; y++)
{
deck.Add(cardType);
if (y == 3)
++cardType;
}
// Insert deck list into a new Array
int[] cards = deck.GetRange(0, 52).ToArray();
// Add cards array to mainDeck
for (int x = 0; x < 52; ++x)
{
mainDeck[x] = cards[x];
}
}
//public static void Distribute()
//{
// RandomNumber number = new RandomNumber();
// int value = number.RandomNum;
// List<int> playerCards = new List<int>();
// for (int x = 0; x < 2; ++x)
// {
// Console.WriteLine(number.RandomNum);
// }
//}
}
//class RandomNumber
//{
// private int randomNum;
// Random ranNumberGenerator;
// public RandomNumber()
// {
// ranNumberGenerator = new Random();
// }
// public int RandomNum
// {
// get
// {
// randomNum = ranNumberGenerator.Next(1, 26);
// return randomNum;
// }
// }
//}