1

我是编程新手,我正在尝试用 C# 构建一个掷骰子游戏。

程序会询问用户的边数,然后用随机数掷骰子。

我有以下伪代码:

  1. 向用户询问边数。
  2. 用随机数滚动骰子,最大范围是边数。
  3. 告诉用户滚动的数字

我的问题是如何在用户指定的范围内生成随机数来掷骰子?

4

5 回答 5

2

该类System.Random通常用于生成随机随机数。

它有一个方法的重载,该方法Next生成一个大于或等于0并严格小于传递的整数参数的随机整数。

因此,如果用户选择了一个n单面骰子,并且您有一个Random r,

r.Next(n) + 1

将生成一个介于两者之间的随机1整数n

创建单个实例Random并重用它是一种很好的做法,因为如果您创建多个实例并在一起,它们都会生成相同的数字。

于 2012-12-03T16:51:19.627 回答
1
Random random = new Random();
int randomNumber = random.Next(1, userInput);

你要知道的一件事是随机函数不是完全随机的,它是随机的,但每次都以相同的随机顺序..我会让你在你最喜欢的搜索引擎上寻找种子;)

于 2012-12-03T16:50:26.043 回答
0

要获得 0 到 100 之间的随机整数,但不包括 100:

Random random = new Random();
int randomNumber = random.Next(0, 100);
于 2012-12-03T16:49:36.917 回答
0
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

于 2012-12-03T16:50:18.863 回答
0

System.Random,特别是System.Random.Next(Int32, Int32)应该让你开始。

Random.Next(Int32, Int32)
Returns a random number within a specified range.
于 2012-12-03T16:50:25.380 回答