Редактировать : я раньше не играл в 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, перейдя с уровня 3 [1,1,2(replaced),2(new)]
на [1,3(replaced),2,2,3(new)]
?)