Редагувати : Я раніше не грав у науково-дослідну діяльність, тому коли я спочатку ставив це питання, я не вивчив його належним чином. Прошу вибачення за це, і я вношу кілька змін, які можуть визнати недійсними відповіді, щоб залишатися максимально правдивими щодо правил dnd 5e. Вибачте.
У прихильника науково-дослідної роботи з недавнього питання про гарячу мережу, здається, виникають певні труднощі при розробці того, чи вибрані заклинання чаклуна відповідають можливостям - і я думаю, що ми повинні допомогти!
Вступ
(усе це вже описано в раніше згаданому питанні)
Чарівник знає два заклинання рівня 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 - максимальний рівень заклинання).
Вихід програми повинен мати значення truthy / false, що підтверджує, якщо обрані рівні заклинання дійсні для чаклуна даного рівня.
Тестові справи
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)]?)
