首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环不会超负荷的,除非我通过它。

循环不会超负荷的,除非我通过它。
EN

Stack Overflow用户
提问于 2012-10-03 15:33:40
回答 1查看 151关注 0票数 0

让我首先对我糟糕的语法和拼写说声对不起。

我有一个MVC3项目,创建一个甲板,并添加了52张卡。然后,我添加了一个洗牌函数,它只在通过循环时才能工作。

在我的类Deck中,我创建了一个包含52个PlayingCard对象的数组。Deck有一个方法,可以将Array复制到“我的视图”中显示的列表中,它还有一个对列表进行洗牌的方法。

解释起来不容易,但代码只运行一次,,除非我一步一步地完成。

我在甲板模型中的洗牌方法。

代码语言:javascript
运行
复制
 public void Shuffle()
 {
    for (int i = 0; i < 51; i++)
    {
        PlayingCard temp;
        temp = myDeck[i];
        Random rnd = new Random();
        int randomNr = rnd.Next(51);
        myDeck[i] = myDeck[randomNr];
        myDeck[randomNr] = temp;
    }   
}

洗牌后的输出,无需步骤完成:

*4颗钻石,1颗心,2颗心,3颗心,4颗心,4颗心,6颗心,6颗心,8颗心,9颗心,10颗心,12颗心,12颗红桃,1颗黑桃,12颗红桃,12颗心,6颗心,10颗心,12颗心,6颗心,12颗心,6颗心,12颗心,6颗心,8颗心,12颗心,12颗心,6颗心,8颗心,12颗心,12颗心,6颗心,10颗心,12颗心,6颗心,12颗心,12颗心,6颗心,10颗心,12颗心,6颗心,6颗心,12颗心,12颗心,6颗心,12颗心,6颗心,8颗心,8支黑俱乐部12个俱乐部13个俱乐部1颗钻石1颗钻石2颗钻石12颗钻石3颗钻石5颗钻石6颗钻石7颗钻石8颗钻石9颗钻石10颗钻石11颗钻石13颗钻石*

经过15次步骤后的输出:

2黑桃、3支黑桃、5支黑桃、3颗钻石、12颗钻石、13颗红桃、11颗红桃、1颗黑桃、5颗钻石、5颗钻石、5颗钻石、12颗红桃、12颗红桃、7支黑桃、13支黑桃、3支黑桃、3支黑桃、7支黑桃、8支黑桃、12支黑桃、12支黑桃、8颗黑桃、8颗红桃、1颗红桃、9颗红桃、9颗红桃、9颗红桃、9颗红桃、9支红桃、11支黑桃、12支黑桃、12支黑桃、12支黑桃、12支黑桃、12支黑桃、12支黑桃、12支黑桃、12支黑桃、12支黑桃、12支黑桃、12支黑桃、121颗钻石2颗钻石4颗心4颗钻石5颗心6颗钻石7颗钻石8颗钻石9颗钻石10颗钻石11颗钻石13颗钻石

执行整个循环后的输出:

10颗心、6颗心、8颗心、5颗心、5颗心、5颗钻石、5颗钻石、12颗黑桃、8颗钻石、8颗钻石、5颗钻石、8颗钻石、8颗黑桃、9颗钻石、8颗黑桃、9颗黑桃、8颗红桃、6颗黑桃、6颗黑桃、6颗黑桃、6颗黑桃、6颗黑桃、6颗黑桃、6颗黑桃、4颗黑桃、4颗黑桃、4颗黑桃、4颗黑桃、4颗黑桃、4颗黑桃、4颗钻石。心2颗钻石4颗钻石11颗钻石7颗心11颗心3颗黑桃3颗心10颗心13颗心9颗心13颗钻石

如图所示,只有当我跨过循环时,循环才会运行。我尝试了不同的循环,做了一个新的项目,移动洗牌功能到控制器,没有任何帮助。

有人知道我该怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-03 16:07:43

围绕这一点,我创建了一个示例应用程序,并将Random rnd = new Random()移到循环之外,这给了我所期望的行为。

在我看来,它只出现洗牌一张牌的原因,是因为随机生成的值是整个循环中相同的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12711845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档