Глубина/Прохождение

## Условия

Нырнуть на батискафе так, чтобы оказаться на площадке и не разбить аппарат, подобрать инопланетный предмет и вернуться.

Дно моря представляет собой наклонную плоскость, её градиент указан в задании.

Квест напоминает игру для программируемых калькуляторов из журнала «Техника — молодёжи». Её смысл такой же: подойти к цели и успешно всплыть. Для усложнения игры сделали течение, покатое дно и встречу с монстродилом.

Задача:

* Вес цели — случайно 100, 200 или 300 кг; плотность значительная (действует наравне с балластом)
* Глубина цели — случайно от 4000 до 8000
* Призовое время — случайно от 60 до 70 минут
* Течение — случайно 10, 20 или 30 м⁄мин по одному из трёх румбов

Характеристики батискафа:

* Максимальная скорость ±100 м⁄мин (другими словами, есть задний ход), увеличивается шагами по 10
* Глубина погружения = глубина цели, округлённая вверх до 500
* 1300 кг балласта, сбрасывается партиями по 50. Нейтральная плавучесть достигается, когда его висит всего 1000
* Радиус действия захвата — по X/Y от (±30, ±30) до (±50, ±50), случайно шагами по 5; по глубине 10 метров
* Воздуха на 90 минут
* Глубоководная связь действует на глубинах до 5000

Основные румбы — С, В, Ю, З. Четвертные румбы — СВ, ЮВ, ЮЗ, СЗ.

## Прохождение

Автор этих строк прошёл квест с первого раза, но это редкое везение: маленькое горизонтальное расстояние при глубине за 6 км, что позволило успешно стабилизироваться на стандартной плавучести −300, отсутствие монстродила и сильный удар, от которого батискаф чудом не разбился. А так придётся немного посчитать.

Прикинем, сколько минут потребуется на стабилизацию — поделим наибольшую из координат X/Y на 50. Пусть координаты (−980, −340) — тогда 980/50≈20 минут.

Засечём так называемую **глубину полной готовности** = D−2500. Например, если глубина цели 5565 метров, то глубина полной готовности 5565−2500 = 3065.

Делим одно на другое и получаем требуемую плавучесть: 3065/20 = 153 м⁄мин — значит, в первую очередь сбрасываем три порции балласта, подняв плавучесть до −150. Но: **хоть −150 плавучести да оставляем.** После этого занимаемся стабилизацией по X/Y: поскольку координаты (−980, −340) отрицательные, направляем нос на юго-запад и включаем разгон. **Убеждаемся, что координаты падают по модулю.** Когда одна из координат становится близкой к нулю, поворачиваем нос по основному румбу (С/В/Ю/З). Как только батискаф начинает подходить к целевой точке, снижаем мощность. Окончательное состояние батискафа («батискаф стабилизирован») — он недалеко от цели, смотрит носом против течения и компенсирует его моторами.

Если мы пересекли глубину полной готовности, а батискаф не стабилизирован — попеременно сбрасываем 50 кг балласта и продолжаем стабилизировать батискаф. *Именно поэтому на полную готовность отведены 2,5 км — делать то и другое вместе тяжело.* Как только плавучесть станет −50, а батискаф всё ещё нестабилен — подходим на 200…250 м от **целевой** глубины и не менее чем на 150 от **текущей** и бросаем балласт меньшими порциями.

Когда батискаф станет стабильным, засекаем одну из этих глубин:

* D−50 — глубина замедления с плавучестью −50. 5565−50 = 5505 метров
* D−150 — глубина замедления с плавучестью −100. 5565−150 = 5405 метров
* D−300 — глубина замедления с плавучестью −150. 5565−300 = 5265 метров
* D−500 — глубина замедления с плавучестью −200. 5565−500 = 5065 метров
* D−750 — глубина замедления с плавучестью −250. 5565−750 = 4805 метров
* D−1050 — глубина замедления с плавучестью −300. 5565−1050 = 4505 метров.

Редкая, но противная ситуация — батискаф нестабилен, а дно настолько покатое, что у вас есть риск удариться в него. Замечайте эту ситуацию заранее и сбрасывайте больше балласта, если есть риск удариться в покатое дно.

…Добравшись до вычисленной глубины замедления, добиваемся плавучести −30 или −20, и аккуратно ложимся на грунт. Там поворачиваемся на цель, включаем прожектор, потом захват, и всплываем, сбрасывая весь балласт порциями по 50.

Если батискаф сел на дно далеко от цели — хвалите Ктулху, что остались целы, сбрасывайте балласт и выныривайте. Миссия, к сожалению, провалена, и шансы как-то достать объект незначительны.

### Борьба с монстродилом

Если непонятно кто бьёт в обшивку — это монстродил. Он появляется глубже 1 км с вероятностью 1/21 за ход. Азимут на монстродила постоянный и случайный. Для борьбы с ним при игре с сохранениями (ну или если вы готовы признать редкую игровую ошибку и всё-таки перезагрузиться, если на неё наткнулись):

* включите прожектор;
* проведите любое действие по управлению, какое хотите (сбросить балласт, откорректировать тягу, повернуть нос, просто лениться);
* затем переберите румбы:
	+ если плывёте по основному румбу — остальные три основных, потом юго-запад, потом остальные три четвертных;
	+ если плывёте по четвертному — остальные три четвертных, потом основные.
	+ если перебор не получился — 🐛 ошибка, перезагружаться!

При игре без сохранений:

* включите прожектор;
* нашим действием по управлению, скорее всего, будет сброс балласта;
* переберите три оставшихся основных/четвертных румба, затем юго-запад (если перебирали основные);
* прикиньте, возможно ли вообще экстренное всплытие, пока монстродил бушует.
	+ если да — всплываем! Напоминаю, это делается сбросом всего балласта максимальными порциями.
	+ если нет — перебираем оставшиеся румбы; у нас ещё минимум три шанса из четырёх, что поединок закончится в нашу сторону.

Бой с чудовищем занимает немало времени — оцените запас времени и, возможно, сбросьте ещё немного балласта. После удачного боя монстр уплывает навсегда.

🐛 На проверенном онлайн-файле с вероятностью 1/361 вы никак не отвадите монстродила (азимут ровно −180), с вероятностью 52/361 годится только один румб (а не два соседних), из них 45 шансов, что этот румб — юго-запад (азимут −179…−135, а также кратные 45). Это комбинация трёх ошибок: азимут разыгрывается в диапазоне [−180…180] вместо [−179…180], в проверке на азимут установлено «меньше» вместо «меньше-равно» (|α−β|<45°), и разрыв 180°=−180° никак не обрабатывается.