Представьте, что у нас есть волшебник, который знает несколько заклинаний. Каждое заклинание имеет 3 атрибута: урон, время охлаждения и время чтения. Довольно стандартная ролевая игра.
Время перезарядки: количество времени (t), необходимое для того, чтобы снова разыграть это заклинание. Заклинание «перезаряжается» в тот момент, когда оно начинает читать.
Время чтения: количество времени (t), которое требуется для использования заклинания. Пока волшебник читает что-то, другое заклинание не может быть наложено и не может быть отменено.
Вопрос в том, как бы вы максимизировали урон, используя различные наборы заклинаний?
Легко рассчитать максимальный урон за время применения. Но что делать в ситуациях, когда лучше подождать, чем "застрять", разыгрывая заклинание с низким уроном, когда доступно гораздо более высокое заклинание?
Например,
Огненный шар: 3000 урона, время каста 3 секунды, остывание 6 секунд.
Ледяная стрела: 20 урона, 4 секунды каста, 4 секунды остывания.
Огненный взрыв: 3 урона, 3 секунды каста, 3 секунды остывания.
В этом случае ваш урон в секунду выше, если вы решили пойти на более низкое заклинание DPCT (огненный взрыв) вместо ледяного удара. Таким образом, мы должны рассмотреть последствия выбора заклинания.
В следующем примере приведены случаи «перебрасывания» и «ожидания».