static void Main(string[] args) {
string[] cardDeck = new string[52];
string[] numbers = { "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King" };
string[] suites = { "Hearts", "Clubs", "Diamonds", "Spades" };
for (int i = 0; i < numbers.Length; i++)
{
for (int j = 0; j < suites.Length; j++)
{
cardDeck[i + j] = numbers[i] + " of " + suites[j];
Console.WriteLine(cardDeck[i + j]);
}
}
Console.WriteLine("The random card is " + RandomCard(cardDeck));
}
static string RandomCard(string[] deck)
{
Random card = new Random();
int index = card.Next(0, deck.Length);
return deck[index];
}
我在打印随机卡时遇到困难 - 有时可以打印,有时不能。我是否正确填写了卡片组?我该如何解决这个问题?
引入第三个索引变量
k
以跟踪卡片在牌组中的位置。每次将新卡放入牌组时,您可以与 j
一起递增变量,即在内部 for 循环内:
static void Main(string[] args)
{
string[] cardDeck = new string[52];
string[] numbers = { "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King" };
string[] suites = { "Hearts", "Clubs", "Diamonds", "Spades" };
int k = 0;
for (int i = 0; i < numbers.Length; i++)
{
for (int j = 0; j < suites.Length; j++)
{
cardDeck[k] = numbers[i] + " of " + suites[j];
Console.WriteLine(cardDeck[k]);
k++;
}
}
Console.WriteLine("The random card is " + RandomCard(cardDeck));
}
static string RandomCard(string[] deck)
{
Random card = new Random();
int index = card.Next(0, deck.Length);
return deck[index];
}