我正在为学校做作业(Assignment Here)。
我目前正试图改变一副纸牌。我使用过Codeplex的PlayCards(对不起,只能有两个链接...)来创建一个卡片组来创建一个卡片组。请帮助,当我点击随机播放按钮时,没有任何反应。您可以在此处查看我的进度,以便更轻松地查看整个代码:Github
public void Shuffle()
{
PlayingCards.Deck theDeck = new PlayingCards.Deck();
random = new Random();
for (int i = 0; i < theDeck.Cards.Count; i++)
{
int second = random.Next(NUMBER_OF_CARDS);
PlayingCards.Card temp = theDeck.Cards[i];
theDeck.Cards[i] = theDeck.Cards[second];
theDeck.Cards[second] = temp;
}
}
答案 0 :(得分:1)
您正在创建一个PlayingCards.Deck
的新实例,将其拖拽,然后在随机播放结束时将其丢弃。
PlayingCards.Deck theDeck = new PlayingCards.Deck();
您需要将呼叫更改为Shuffle
以包含PlayingCards.Deck
作为参数,因此您应该这样做:
public void Shuffle(PlayingCards.Deck theDeck)
{
random = new Random();
for (int i = 0; i < theDeck.Cards.Count; i++)
{
int second = random.Next(NUMBER_OF_CARDS);
PlayingCards.Card
temp = theDeck.Cards[i];
theDeck.Cards[i] = theDeck.Cards[second];
theDeck.Cards[second] = temp;
}
}
您还应该将new Random()
移到此方法之外,因为您可能会发现,如果您尝试紧接着创建两个混洗套牌,那么他们会因为种子{{1}而拥有相同的顺序使用是基于系统时钟。
我查看了将卡添加到卡座中的代码。您应该使用此代码:
Random