创建一组简单的卡片C#
我正在尝试制作一副由52张牌和4套套装组成的牌组:黑桃牌、红桃牌、梅花牌和钻石牌。我试图在我的Deck类中创建这个for循环,但似乎遇到了一些关于如何让程序执行我想要的操作的问题。我在想,也许我可以像作业中暗示的那样做4个for循环,但是否可以使用if/else if在甲板中创建4套西装创建一组简单的卡片C#,c#,arrays,loops,C#,Arrays,Loops,我正在尝试制作一副由52张牌和4套套装组成的牌组:黑桃牌、红桃牌、梅花牌和钻石牌。我试图在我的Deck类中创建这个for循环,但似乎遇到了一些关于如何让程序执行我想要的操作的问题。我在想,也许我可以像作业中暗示的那样做4个for循环,但是否可以使用if/else if在甲板中创建4套西装 class Deck { private Card[] cards; public Deck() { cards = new Card[52]; int
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");
}
}
}
}
类甲板
{
私人卡[]卡;
公共甲板()
{
卡片=新卡片[52];
整数检查=0;
对于(int-suiteval=1;suiteval<4;suiteval++)
{
对于(int rankVal=1;rankVal<14;rankVal++)
{
if(suitVal==1)
{
卡片[支票]=新卡片(兰克瓦尔,“黑桃”);
}
else if(suitVal==2)
{
卡[支票]=新卡(兰克瓦尔,“红心”);
}
else if(suitVal==3)
{
卡[支票]=新卡(兰克瓦尔,“俱乐部”);
}
else if(suitVal==4)
{
卡[支票]=新卡(兰克瓦尔,“钻石”);
}
}
}
}
是的,这是可能的。
共有13张牌和4套西服。其想法是,对于每套西服,您创建13张牌,其中包含所述西服的数量。伪代码与您已经获得的基本相同:
for each of the four suits
loop 13 times for said suit
以下是您的代码的问题:
1-您的check
变量从不递增,因此您总是覆盖位置0上的卡;它应该在每次插入卡后递增(内环)
2-您的outter循环仅运行3次(i=1、i=2、i=3),共有4套套装
如果您需要更多帮助,请告诉我。是的,这是可能的。
共有13张牌和4套西服。其想法是,对于每套西服,您创建13张牌,其中包含所述西服的数量。伪代码与您已经获得的基本相同:
for each of the four suits
loop 13 times for said suit
以下是您的代码的问题:
1-您的check
变量从不递增,因此您总是覆盖位置0上的卡;它应该在每次插入卡后递增(内环)
2-您的outter循环仅运行3次(i=1、i=2、i=3),共有4套套装
如果您需要更多帮助,请告诉我。您可以通过以下方式完成:
class Deck
{
private Card[] cards;
public Deck()
{
cards =
new [] { "Spades", "Hearts", "Clubs", "Diamonds", }
.SelectMany(
suit => Enumerable.Range(1, 13),
(suit, rank) => new Card(rank, suit))
.ToArray();
}
}
或:
或:
类甲板
{
私人卡[]卡;
公共甲板()
{
卡片=新卡片[52];
var指数=0;
foreach(新[]{“黑桃”、“红桃”、“梅花”、“钻石”}中的var套装)
{
对于(var rank=1;rank,您可以通过以下方式进行:
class Deck
{
private Card[] cards;
public Deck()
{
cards =
new [] { "Spades", "Hearts", "Clubs", "Diamonds", }
.SelectMany(
suit => Enumerable.Range(1, 13),
(suit, rank) => new Card(rank, suit))
.ToArray();
}
}
或:
或:
类甲板
{
私人卡[]卡;
公共甲板()
{
卡片=新卡片[52];
var指数=0;
foreach(新[]{“黑桃”、“红桃”、“梅花”、“钻石”}中的var套装)
{
对于(var rank=1;rank这看起来像是学校分配的。在我大学的时候…这看起来像是学校分配的。在我大学的时候…谢谢你的回答,我最后做了4个for循环,因为我很沮丧。但是,是的,现在你已经指出了我的错误,我发现可以用if和else if语句来做。请给这个人竖起大拇指或者接受他的回答,他会给你你所需要的一切,这会按照他指出的方式进行。冷静点,@Jannik。我还没有声誉去支持投票答案。感谢你的回答,我最终做了4个for循环,因为我很沮丧。但是,现在你指出了我的错误,我认为这是可能的用if和else-if语句。请给这个人竖起大拇指,或者接受他的回答,他正在给你你所需要的一切,这将按照他指出的方式进行。冷静,@Jannik。我还没有声誉去支持投票答案。