我正在尝试用 4 种花色制作一副 52 张牌:黑桃、红桃、梅花和方 block 。我试图在我的 Deck 类中创建这个 for 循环,但似乎遇到了一些关于实际让程序执行我想要的操作的问题。我在想也许我可以像作业中暗示的那样做 4 个 for 循环,但是是否可以使用 if/else-ifs 在牌组中创建 4 个花色?
class Deck
{
private Card[] cards;
public Deck()
{
cards = new Card[52];
int check = 0;
for (int suitVal = 1; suitVal < 4; suitVal++)
{
for (int rankVal = 1; rankVal < 14; rankVal++)
{
if(suitVal == 1)
{
cards[check] = new Card(rankVal, "Spades");
}
else if (suitVal == 2)
{
cards[check] = new Card(rankVal, "Hearts");
}
else if (suitVal == 3)
{
cards[check] = new Card(rankVal, "Clubs");
}
else if (suitVal == 4)
{
cards[check] = new Card(rankVal, "Diamonds");
}
}
}
}
最佳答案
是的,这是可能的。 共有 13 张牌和 4 套花色。这个想法是,对于每套西装,您可以创建 13 张牌。伪代码几乎就是你已经得到的:
for each of the four suits
loop 13 times for said suit
以下是您的代码存在的问题:
1- 你的 check
变量永远不会递增,所以你总是覆盖位置 0 上的卡片;它应该在每张卡插入后递增(内循环)
2- 你的外层循环只运行了 3 次(i = 1,i = 2,i = 3),并且有 4 套花色。
如果您需要更多帮助,请告诉我。
关于c# - 创建一副简单的纸牌 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33028678/