Сонное Подземелье: подсказка, которая советует дешёвое

Робот с кнопкой H дошёл до двадцать седьмого яруса. Робот, который из всех покупок знал только «Клинок», — до тридцатого. Оба били монстра десять раз в секунду, оба стартовали с одного экрана: двенадцать хитов у твари первого яруса, три урона за удар. Разница только в том, куда уходило золото.

Пять копий игры я открыл в headless-браузере и дал каждой по шестьдесят секунд. Каждая тыкала по центру экрана с частотой десять герц, а покупки совершала по своему правилу: одна не покупала ничего, вторая брала только «Клинок», третья только «Автобой», четвёртая только «Жадность», пятая следовала за подсказкой bestBuy, то есть жалу H каждые двести миллисекунд. Один прогон на стратегию и одна минута — не приговор для стратегии на час, но разница получилась слишком заметной, чтобы её списать на случайность.

ПравилоЯрусЗолотоУровеньУлучшенияСчёт
без покупок1630740/0/0210
Клинок307069/0/0337
Автобой172040/5/0192
Жадность174140/0/3194
подсказка H277257/5/2302

Копить без покупок бессмысленно: триста семь золота лежат мёртвым грузом, а глубина упирается в шестнадцатый ярус, потому что урон не растёт. Девять уровней «Клинка» обошлись в 945 золота и вывели на тридцатый. Пять уровней «Автобоя» стоили 316 и дали семнадцатый. Это не значит, что автобой сломан: он просто добавляет урон поверх тычков, а не заменяет их.

Что именно возвращает подсказка

В описании игры написано: «H подскажет самую выгодную покупку». В коде на это отвечает функция bestBuy. Она собирает три цены — «Клинок» 10·1,55 в степени уровня, «Автобой» 20·1,6 в степени, «Жадность» 60·1,7 в степени — и возвращает ту покупку, которая по карману и при этом дешевле остальных доступных. Слово «выгодный» здесь не считается: ни прироста урона, ни прироста золота функция не оценивает.

Пока у вас нет десяти золота, H не возвращает ничего. Дальше подсказка ведёт себя предсказуемо: первые две покупки — «Клинок» за 10 и 15, потому что он дешевле «Автобоя». Третьей она берёт уже «Автобой»: следующий «Клинок» стоит 24, а автобой всё ещё 20. Золото расползается по графам с третьего нажатия. К пятнадцатой секунде робот с H имел три «Клинка» и один «Автобой», робот с одним правилом — пять «Клинков».

Итог к концу минуты: 7/5/2 против 9/0/0. Обе стратегии потратили сопоставимые суммы, 859 и 945 золота, но рассредоточенные вложения дали меньший урон.

Рамка, которую видно после покупки

У подсказки есть и видимая часть: кнопка, которую она запомнила, обводится жёлтым. Условие в коде — «эта кнопка подсказана и сейчас не по карману». В момент, когда вы жмёте H, подсказка по определению выбирает доступную покупку, поэтому жёлтой рамки не будет никогда: кнопка в этот момент зелёная.

Я проверил на живой странице. Десять золота, жму H — подсказка говорит «Клинок», рамка зелёная. Покупаю — золото ноль, следующий уровень стоит пятнадцать, и вот теперь та же кнопка становится жёлтой. Подсказка загорается не тогда, когда советует, а тогда, когда совет уже подорожал настолько, что вы его не можете взять.

Заодно в том же файле живёт счётчик серии: удары чаще, чем раз в семьсот миллисекунд, поднимают его до пяти. Ни урон, ни золото, ни цена от этого счётчика не зависят — он нигде дальше не читается. Такие детали не ломают игру, просто перестаёшь верить, что сигналы на экране что-то значат.

Двадцать секунд без единого действия

Автобой стоит двадцать золота, а золото даёт только убийство. Я открыл игру и не трогал её двадцать секунд: первый ярус, двенадцать хитов, ноль золота, ноль убийств. Подземелье в названии есть, сонное оно тоже, а вот идти само оно начинает лишь после того, как вы натыкали первые двадцать золота.

Я не жду, что подсказку починят: дешёвое и выгодное совпадают только в самом начале. Но жать H стало интереснее, чем покупать самому, — хотя бы чтобы увидеть, куда на этот раз утекут тридцать золота.

Играть в «Сонное Подземелье: Долгие Ночи» бесплатно: /games/I-L/I/idle-dungeon

Мы используем ку​ки для аналитики. Нажимая «ОК», вы соглашаетесь.

Подробнее