编辑:我以前没有玩过D&D,所以当我最初提出这个问题时,我没有进行适当的研究。对此我深表歉意,我正在做一些修改,这些修改可能会使答案无效,以使它们尽可能完全符合dnd 5e规则。抱歉。
最近的热门网络问题中的D&D爱好者似乎在确定巫师选择的咒语是否与可能性相符时遇到了一些麻烦-我想我们应该提供帮助!
介绍
(所有这些已经在前面提到的问题中进行了描述)
巫师从开始就知道两个1级法术(1级): [1, 1]
每次巫师获得一个等级(除了等级12、14、16、18、19和20),他们都会学习一个新的法术(强制性)。
此外,升级时,可以选择(可选)将其中一个咒语替换为另一个。
学习和替换的法术必须是有效的法术槽位,是你巫师等级的一半。见下表:
Sorcerer level Highest spell level possible
1 1
2 1
3 2
4 2
5 3
6 3
7 4
8 4
9 5
10 5
11 6
12 6
13 7
14 7
15 8
16 8
17 9
18 9
19 9
20 9
这意味着在3级时,可以具有如下的咒语等级[1, 1, 2, 2]
:
Level 1: [1, 1] (initial)
Level 2: [1, 1, 1 (new)]
Level 3: [1, 1, 2 (replaced), 2 (new)]
不需要选择您可以访问的最高级别的咒语。
咒语等级[1, 1, 1, 1]
对于等级3完全有效。
最后,请记住,替换咒语是每个级别的可选选项。这意味着某些级别可以跳过替换,而其他级别则可以使用它。
挑战
编写一个程序或函数,其值在1到20之间。
它还应采用整数(咒语级别)数组,其值的范围为1到9(任意顺序)(最大咒语级别为9)。
程序的输出应为真/假值,以验证所选法术等级对于给定等级的巫师是否有效。
测试用例
Level: 1
Spells: [1, 1]
Output: true
Level: 8
Spells: [1, 1, 2, 3, 3, 5]
Ouput: false
Reason: A level 8 can't ever have access to a level 5 spell.
Level: 5
Spells: [1, 1, 1, 2, 2, 2, 3]
Output: false
Reason: A level 5 can't have access to 7 spells
Level: 11
Spells: [3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6]
Output: false
Reason: Too many spell upgrades.
The highest valid selection for level 11 is
[3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6]
这是代码高尔夫球 -最少的字节数获胜!
[2,2,3,3]
是不可能的,因为与该级别的巫师相比,它需要更多的替换。” -列表长度为4而不是5的事实不是这里更根本的原因吗?(我认为[1,3,2,2,3]
从4级[1,1,2(replaced),2(new)]
到3级有可能达到4级[1,3(replaced),2,2,3(new)]
)