如何使用随机性?
选择一个随机数
随机数可以使用以下表达式生成:Random
、RandomFloat
、RandomFloatInRange
、RandomInRange
和RandomWithStep
。
创建一个随机对象
可以根据随机数创建随机对象。
投掷骰子
投掷一个骰子相当于使用表达式 RandomInRange(1, 6)
选择一个介于1和6之间的随机数。但是,投掷2个骰子并不相当于选择一个介于2和12之间的数字。实际上,制造2这个数字只有一种方法:
- 1 和 1
而制造7这个数字有6种方法:
- 1 和 6
- 2 和 5
- 3 和 4
- 4 和 3
- 5 和 2
- 6 和 1
投掷2个骰子实际上相当于选择2个介于1和6之间的数字并将它们相加,使用这个表达式 RandomInRange(1, 6) + RandomInRange(1, 6)
。
提示
使用多个骰子来选择一个随机数可以是公平性的好工具,因为更有可能给出接近中间值的值。
从牌堆中选择卡片
可以使用数组工具扩展来洗牌数组。
可以使用对象堆栈扩展来洗牌对象。
提示
即使一个游戏不是关于卡片的,使用一副牌可以是公平性的好工具,因为它可以更好地控制一个时间段内发生的事情。
卡片系统示例
使随机性感觉公平
随机性其实不仅仅是选择随机数。找到游戏中适当的随机水平是游戏设计的一部分。
选择更好的随机序列
一个玩家从未得到一个“I”方块的俄罗斯方块运行听起来既不公平也不有趣。然而,如果每次要选择下一个方块就掷一个7面骰子,这种情况可能发生。事实上,每次都不掷出“I”方块的概率是6/7。
要确保给玩家定期提供每种类型的方块,可以提前决定接下来的14个方块。例如,可以决定给予每种类型的方块2个。为了仍然保持一定的随机性,顺序可以像洗牌一样洗牌。
提示
学习如何洗牌一副牌。
使某些事物更加罕见或常见
使某些事物比其他事物更加罕见的一种方法是为每种事物选择一个概率。例如,稀有物品的概率为10%,不常见物品的概率为25%,常见物品的概率为65%。
当仅有几种品质级别时,定义每种品质级别的概率是可行的,但像Pokemon这样的一些游戏可能有数百种品质级别。在这种情况下,计算品质级别比列出每种情况更快。
钟形函数通常用于显示多少人具有特定特征,例如一个人的智商。大多数人在曲线高峰处,随着某些特征越来越罕见,曲线下降。大多数这类曲线具有复杂的公式,但掷几个骰子可以给出类似的结果。
提示
学习如何掷骰子。