轨道
/
Unison
Unison
/
练习
/
D&D 角色
D&D 角色

D&D 角色

简单

简介

经过几周的期待,你和朋友们终于聚在一起,开始你们的第一局 Dungeons & Dragons(D&D)。 因为这是游戏的第一场,每位玩家都要生成一个角色来玩。 角色的能力由掷 6 面骰子决定,可骰子_到底_在哪儿呢? 你震惊地发现,朋友们正等着_你_来准备骰子,毕竟玩 D&D 可是你出的主意! 慌乱之中,你意识到自己忘了带骰子,那就意味着没法玩 D&D 了。 好在你有一些基本的编程技能,很快就想出了一个解决办法:写一个程序来模拟掷骰子。

说明

在 Dungeons & Dragons 游戏中,每位玩家首先要生成一个可以扮演的角色。 这个角色除了其他特征之外,还有 6 项属性:力量、敏捷、体质、智力、感知和魅力。 这 6 项属性的数值是随机确定的。 具体做法是掷 4 颗六面骰子,记下最大的 3 颗骰子的点数之和。 每项属性掷 1 次,一共重复 6 次。

你角色的初始生命值是 10 加上你角色的体质调整值。 用你角色的体质减去 10,再除以 2 并向下取整,就得到你角色的体质调整值。

编写一个遵循上述规则的随机角色生成器。

例如,这 6 次掷 4 颗骰子的结果可能如下:

  • 5, 3, 1, 6:舍弃 1,求和 5 + 3 + 6 = 14,把这个值赋给力量。
  • 3, 2, 5, 3:舍弃 2,求和 3 + 5 + 3 = 11,把这个值赋给敏捷。
  • 1, 1, 1, 1:舍弃一个 1,求和 1 + 1 + 1 = 3,把这个值赋给体质。
  • 2, 1, 6, 6:舍弃 1,求和 2 + 6 + 6 = 14,把这个值赋给智力。
  • 3, 5, 3, 4:舍弃一个 3,求和 5 + 3 + 4 = 12,把这个值赋给感知。
  • 6, 6, 6, 6:舍弃一个 6,求和 6 + 6 + 6 = 18,把这个值赋给魅力。

因为体质是 3,所以体质调整值是 -4,生命值是 6。

Note

大多数编程语言都有(伪)随机数生成器,但很少有编程语言是专门为掷骰子设计的。 其中一种就是 Troll。

提示

要完成这个任务,需要了解几个重要的概念:

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Unison Exercism

准备好开始 D&D 角色 了吗?

注册 Exercism,借助 53 个练习 和真人导师指导,学习并掌握 Unison,全部免费。

深入探索 D&D 角色!

我们探讨如何生成(看似)随机的掷骰结果。你将了解种子、伪随机数以及一些常见的坑。最后,我们来看看基于属性的测试为什么非常适合测试那些返回随机值的函数。