Як ми дізналися з IBM PC AT, YouTube (див. Відео) , Вікіпедії (див. Статтю) та вулиці Сезама:
Буква H- це наймиліша буква алфавіту !
(Навіть коли насправді складається з двох елементів у Кодексі . Насправді, це навіть БОЛЬШЕ нещадно.)
Як інопланетяни в, ем ... е ... Інопланетяни , звірі безжально переслідують усіх, хто наважиться підійти до своїх яєць. Міркувань з ними немає. Ви повинні їх розчавити, якщо не загинути.

Для цього сценарію ми будемо вважати, що ви до останнього життя, і ви зустріли звичайних звірів на місцевості без яєць (як на скріншоті Вікіпедії). У вас немає цифрової клавіатури, і ви можете рухатись лише прямо вгору / вниз / вліво / вправо ... але звірі, мабуть, мають її і можуть рухатись по діагоналі по черзі.
Вибір Звіру для вибору серед його варіантів буде той, який мінімізує відстань від гравця. Якщо відстані рівні, то розрив краватки робиться на користь ліворуч + вгору праворуч + вниз, але ось матриця розбірливості має бути явною щодо цього ... найменше число до розриву тай-тай:
1 3 4
2 H 5
6 8 7
Звір ніколи не спить, але вони, на щастя, трохи повільніше, ніж гравець. Вони рухаються кожні інші повороти (даючи гравцеві почати початок, починаючи чергування з другого ходу). Вони повинні рухатися, якщо можливий хід, незалежно від того, чи це відведе їх далі від гравця.
Ви розчавлюєте звіра, якщо пересувати потяг рухомих стін там, де він сидів у закритій щілини. Ці звичайні звірі коштують 2 бали на голову.
Вхідні дані
Пара цілих чисел, що вказують розмір карти в стовпцях, а потім рядки.
Кількість рядків рядків вводу, розмір кожного стовпця ... містить суцільну стінку (
#), рухому стінку (~), звір (H), програвач (O) або просто пробіл.Вхід, який буде або U, D, L, R, що вказує на спробу гравця ..., або W, щоб просто почекати. Зауважте, що спроба штовхнути рухому стіну, яка заблокована, є законним введенням, це просто не призведе до жодних дій.
Вихідні дані
aHHHH!якщо звірі вбили гравця ... або нічого, якщо гравець виграв, не залишившись звірівРахунок
(Примітка. Для цілей налагодження та / або розваг, ймовірно, ви хочете мати змогу виводити стан на кожному кроці; але це занадто довго, щоб публікувати тут.)
Роз'яснення
Карти гарантовано обмежені суцільними стінами.
Порядок того, хто рухається по черзі, має значення для результату. Таким чином: Гравець завжди йде першим, тоді звірам надається впорядкування виходячи з їх початкового положення на карті, якщо ви переміщалися по екрану зверху вниз зліва направо. (Звір першого ряду рухається перед звіром другого ряду, а два звірі в тому ж ряду, це буде той самий номер, який має найменший номер стовпця, який рухатиметься перед іншим)
Діагональні рухомі звірі можуть переміщатися у будь-який відкритий сусідній діагональний простір, незалежно від того, чи потребує він стискання між стінами.
Гравець може штовхати будь-яку кількість рухомих стін у лінії, якщо на іншому кінці є пробіл або звір. Але намагання просунути потяг стін у Звіру, який не закріплений між стінами, трактує Звіру як стіну, і не дозволить рухатись.
Рішення про хід звіра під час черги ґрунтується на розташуванні гравця на початку повороту. Бажана оптимізація "відстані до гравця" здійснюється за допомогою розрахунку "як ворона летить". Будь-яке наближення, яке дало б такий самий результат, як виміряне від центру його квадрата до центру квадрата гравця, є добре.
Якщо Звір не зможе зробити те, що було б його першим кращим кроком по черзі, тому що Звір з вищим пріоритетом зайняв своє місце, він наступним найкращим вибором прийме на відміну від перебування на місці (якщо переїзд все-таки можливий).
Зразки справ
Просте розчавлення
Вхідні дані
5 3
#####
#O~H#
#####
R
Вихідні дані
2
Матриця переваг -> Смерть
Вхідні дані
5 5
#####
#O #
# ~ #
# H#
#####
WWDW
Вихідні дані
aHHHH!
0
Матриця переваг -> Win
Вхідні дані
5 5
#####
#O #
# ~ #
# H#
#####
WRD
Вихідні дані
2
Чекаємо жнець
Вхідні дані
5 5
#####
#O #
# ~ #
# H#
#####
WWW
Вихідні дані
aHHHH!
0
Успішні поразки в сценарії Вікіпедії
Вхідні дані
40 23
########################################
#~ ~ ~~ ~ ~ ~~ ~ ~~ ~ ~ ~~ #
#~~ ~ ~~ ~ ~ ~~ ~ #
#~# ~~ ~~~~ ~ ~~~~ ~ ~~~ ~#
# ~ ~ ~ ~~ #~~ ~ #
#~~ ~~~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~~~ H ~ #~ #
# O~ ~ # ~~~ ~ ~ ~~ ~ ~ ~~ #
# ~ ~H~~ ~~ ~ # ~~ ~ #
# ~~ ~ ~~~ ~~ ~~~~ ~ ~#
#~ ~ ~~~ ~ ~ ~ ~ ~~ ~~#
# ~ # ~ ~~ ~~~ ~ ~ ~ # ~#
#~ ~ ~~ ~ ~ H ~~ ~~ ~ ~ ~~~ #
# ~ ~ ~ ~ ~ ~~~ ~ #
# ~~ ~ ~ ~~ ~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~ ~~ #
#~ ~ # ~~~~ ~ ~~~H # ~ #
# ~ ~ ~ ~ ~ ~~ ~ #
# ~ ~ #~ ~ ~~ ~ ~ ~#
# ~~ ~ ~ ~~ ~ ~ #
# ~~~ ~ ~~ ~ ~ ~ ~ #
# ~ ~ ~ ~~ ~ ~ ~ #
########################################
RRRUWWWRRRURWWWWRDRRWWRDWWWWD
Вихідні дані
8
Карта, надана мною, рухається та виводиться від @bobbel, підтверджується я та @Allbeert.
Критерії виграшу
Я думаю, що це можна пограбувати, тому я піду з кодовими правилами гольфу, якщо люди не скаржаться.
Додатковий кредит
Реалізація Unicode з двократними символами, що нагадують зображення!