Як ми дізналися з 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 з двократними символами, що нагадують зображення!