每当我的应用程序选择一个“随机”卡,它总是遵循相同的奇怪模式:俱乐部只有1-3,钻石4-6,心脏7-9,黑桃10 -12。西装永远在这个数字范围内,永不改变。每个套房应该被允许去13!请帮我解决令人困惑的问题,谢谢!Random.Next不会达到最大参数
来源:
Random Suite = new Random();
Random Value = new Random();
int sprod;
int vprod;
public Card RandomCardDraw()
{
sprod = Suite.Next(1, 5);
Card newc = new Card();
newc.x = sprod;
vprod = Value.Next(1, 13);
if (sprod == 1)
{
newc.suite = CardSuites.Club;
newc.y = vprod;
switch (vprod)
{
case 1:
newc.cardval = CardValues.Ace;
return newc;
case 2:
newc.cardval = CardValues.Two;
return newc;
case 3:
newc.cardval = CardValues.Three;
return newc;
case 4:
newc.cardval = CardValues.Four;
return newc;
case 5:
newc.cardval = CardValues.Five;
return newc;
case 6:
newc.cardval = CardValues.Six;
return newc;
case 7:
newc.cardval = CardValues.Seven;
return newc;
case 8:
newc.cardval = CardValues.Eight;
return newc;
case 9:
newc.cardval = CardValues.Nine;
return newc;
case 10:
newc.cardval = CardValues.Ten;
return newc;
case 11:
newc.cardval = CardValues.Jack;
return newc;
case 12:
newc.cardval = CardValues.Queen;
return newc;
case 13:
newc.cardval = CardValues.King;
return newc;
}
}
if (sprod == 2)
{
newc.suite = CardSuites.Diamond;
newc.y = vprod;
switch (vprod)
{
case 1:
newc.cardval = CardValues.Ace;
return newc;
case 2:
newc.cardval = CardValues.Two;
return newc;
case 3:
newc.cardval = CardValues.Three;
return newc;
case 4:
newc.cardval = CardValues.Four;
return newc;
case 5:
newc.cardval = CardValues.Five;
return newc;
case 6:
newc.cardval = CardValues.Six;
return newc;
case 7:
newc.cardval = CardValues.Seven;
return newc;
case 8:
newc.cardval = CardValues.Eight;
return newc;
case 9:
newc.cardval = CardValues.Nine;
return newc;
case 10:
newc.cardval = CardValues.Ten;
return newc;
case 11:
newc.cardval = CardValues.Jack;
return newc;
case 12:
newc.cardval = CardValues.Queen;
return newc;
case 13:
newc.cardval = CardValues.King;
return newc;
}
}
if (sprod == 3)
{
newc.suite = CardSuites.Heart;
newc.y = vprod;
switch (vprod)
{
case 1:
newc.cardval = CardValues.Ace;
return newc;
case 2:
newc.cardval = CardValues.Two;
return newc;
case 3:
newc.cardval = CardValues.Three;
return newc;
case 4:
newc.cardval = CardValues.Four;
return newc;
case 5:
newc.cardval = CardValues.Five;
return newc;
case 6:
newc.cardval = CardValues.Six;
return newc;
case 7:
newc.cardval = CardValues.Seven;
return newc;
case 8:
newc.cardval = CardValues.Eight;
return newc;
case 9:
newc.cardval = CardValues.Nine;
return newc;
case 10:
newc.cardval = CardValues.Ten;
return newc;
case 11:
newc.cardval = CardValues.Jack;
return newc;
case 12:
newc.cardval = CardValues.Queen;
return newc;
case 13:
newc.cardval = CardValues.King;
return newc;
}
}
if (sprod == 4)
{
newc.suite = CardSuites.Spade;
newc.y = vprod;
switch (vprod)
{
case 1:
newc.cardval = CardValues.Ace;
return newc;
case 2:
newc.cardval = CardValues.Two;
return newc;
case 3:
newc.cardval = CardValues.Three;
return newc;
case 4:
newc.cardval = CardValues.Four;
return newc;
case 5:
newc.cardval = CardValues.Five;
return newc;
case 6:
newc.cardval = CardValues.Six;
return newc;
case 7:
newc.cardval = CardValues.Seven;
return newc;
case 8:
newc.cardval = CardValues.Eight;
return newc;
case 9:
newc.cardval = CardValues.Nine;
return newc;
case 10:
newc.cardval = CardValues.Ten;
return newc;
case 11:
newc.cardval = CardValues.Jack;
return newc;
case 12:
newc.cardval = CardValues.Queen;
return newc;
case 13:
newc.cardval = CardValues.King;
return newc;
}
}
else
{
return newc;
}
return newc;
}
如果甲板上有1000张卡片,你会怎么做? – I4V
这是处于非常早期的发展阶段,我计划在稍后实施更优雅的系统:) – user2649633
即使按照您的预期工作,“.Next(1,13)”永远不会返回13. –