我是编程新手,我正在尝试用 C# 构建一个掷骰子游戏。
程序会询问用户的边数,然后用随机数掷骰子。
我有以下伪代码:
- 向用户询问边数。
- 用随机数滚动骰子,最大范围是边数。
- 告诉用户滚动的数字
我的问题是如何在用户指定的范围内生成随机数来掷骰子?
该类System.Random
通常用于生成随机随机数。
它有一个方法的重载,该方法Next
生成一个大于或等于0
并严格小于传递的整数参数的随机整数。
因此,如果用户选择了一个n
单面骰子,并且您有一个Random
r
,
r.Next(n) + 1
将生成一个介于两者之间的随机1
整数n
。
创建单个实例Random
并重用它是一种很好的做法,因为如果您创建多个实例并在一起,它们都会生成相同的数字。
Random random = new Random();
int randomNumber = random.Next(1, userInput);
你要知道的一件事是随机函数不是完全随机的,它是随机的,但每次都以相同的随机顺序..我会让你在你最喜欢的搜索引擎上寻找种子;)
要获得 0 到 100 之间的随机整数,但不包括 100:
Random random = new Random();
int randomNumber = random.Next(0, 100);
public int RollDice(int iNoSides)
{
var rand = new Random();
return rand.Next(iNoSides) + 1
}
一个简单的谷歌random number c#
就会或多或少地得到这个确切的代码。
编辑
您可以从其他答案和评论中获得指向 MSDN 文档的链接,我知道您是编程新手,但最好的学习方法是尽可能努力地获得一些东西。如果您的大脑无法再正常工作,将您的尝试与您的问题发布在 Stack 上,通常会让人们更开心,因为他们是在真正帮助陷入困境的人
编辑 2
在@Rawling 的评论之后,我意识到方法的重载状态Next(n)
返回 a Non-negative number less than the specified maximum
。
System.Random,特别是System.Random.Next(Int32, Int32)应该让你开始。
Random.Next(Int32, Int32)
Returns a random number within a specified range.