Die Roller with user selecting number of sides
我是编程的新手,我正在尝试用C#构建一个模具滚轴游戏。
该程序询问用户的边数,然后掷一个随机数的骰子。
我有以下伪代码:
询问用户的边数。
用随机数滚动模具,最大范围是边数。
告诉用户滚动的号码
我的问题是如何在用户指定的范围内生成随机数来掷骰子?
-
Random.Next(int,int)
-
您基本上要问的是如何获得一定范围内的随机数。 查看Random类。
System.Random类通常用于生成随机随机数。
它有一个名为Next的方法的重载,它生成一个大于或等于0且严格小于传递的整数参数的随机整数。
因此,如果用户选择n侧面骰子,并且您有一个Random r的实例,
将生成1和n之间的随机整数。
最好创建一个Random的单个实例并重用它,因为如果你创建多个实例,它们将生成相同的数字。
-
如果你有一个六面骰子,滚动一个6然后你加1 - 你会有7个不在Random.Next(n) + 1的情况下怎么办?
-
r.Next(n)将在0和n-1之间生成 - 因此r.Next(6)将在0和5之间生成。
-
我知道了!我想通过在重载中指定Max值,你可以得到n作为最高值,但是要读取它指出的重载方法 - Returns a non-negative random number less than the specified maximum value。
-
选择一个随机数组元素很方便 - r.Next(arr.Length)
1 2
| Random random = new Random ();
int randomNumber = random .Next(1, userInput ); |
有一件事让你知道,随机函数不是随机的,它是随机的,但每次都是以相同的随机顺序..我会让你看看你最喜欢的搜索引擎播种;)
-
如果用户输入6,则永远不会返回6。 (它将在1和5之间返回。
-
我不想破坏他所有的测试..
-
哈,很公平。对不起,我挫败了你的计划:D
System.Random,特别是System.Random.Next(Int32,Int32)应该可以帮助您入门。
1 2
| Random.Next(Int32, Int32)
Returns a random number within a specified range. |
1 2 3 4 5
| public int RollDice (int iNoSides )
{
var rand = new Random ();
return rand .Next(iNoSides ) + 1
} |
一个简单的谷歌random number c#会让你或多或少得到这个确切的代码。
编辑
您可以从其他答案和评论中获得MSDN文档的链接,我知道您的新编程,但最好的学习方法是尽可能努力地获得一些东西。如果你进入一个你的思维不能再运作的状态,在Stack上发布你的问题的尝试将使人们通常更高兴他们真正帮助被卡住的人
编辑2
按照@Rawling的评论,我意识到该方法的重载声明Next(n)返回Non-negative number less than the specified maximum。
-
如果用户输入6,则返回0和5之间的nubmer。此外,如果在紧密循环中调用它,它将重复返回相同的数字。
-
@Rawling感谢你指出这一点!
-
谢谢,我给谷歌做了一些关键词,包括"随机骰子c#"而不是"随机数c#"。我想关键是从更简单的搜索开始到更复杂的问题。
要获得0到100之间的随机整数,而不包括100:
1 2
| Random random = new Random ();
int randomNumber = random .Next(0, 100); |