Кочення кістки
Отже, я котила кістки деякий час тому і думала про виклик.
Враховуючи куб із сіткою, взятою з введення та списком ходів, знайдіть квадрат у нижній частині в кінці.
Я буду використовувати це зображення для прикладів тут.
Вхідні дані
Ви берете в рядок зі списком рухів. Рядок містить лише великі літери ASCII N, S, W та E. Вони відповідають прокату куба на один крок у той бік.
На малюнку один N зробить нижню грань 6. 6. На цьому зображенні Північ знаходиться далеко від камери, Південь - в бік, Схід - справа, а Захід - ліворуч.
Ви також приймаєте рядок у такому форматі: 1P 2P 3P 4P 5P 6P, де кожен P - це позиція від N, S, W, E, T і B. T & B - знизу і зверху.
Цифри - це обличчя з цим номером, а літера відображає положення, на якому знаходиться обличчя. Якщо це не зрозуміло, мережа завжди буде впорядкована за номером, тому 1P 2P 3P 4P 5P 6P, ніколи 2B 1T 3N 4S 5W 6E.
Положення на зображенні 1S 2B 3E 4W 5T 6N.
Вихідні дані
Ваша програма повинна вивести число, що представляє нижню сторону.
Випробування
(nothing), 1S 2B 3E 4W 5T 6N -> 2
N, 1S 2B 3E 4W 5T 6N -> 6
NS, 1S 2B 3E 4W 5T 6N -> 2
NWS, 1S 2B 3E 4W 5T 6N -> 2
NWSNWS, 1S 2B 3E 4W 5T 6N -> 2
NWSS, 1S 2B 3E 4W 5T 6N -> 3
NNNNNN, 1S 2B 3E 4W 5T 6N -> 5
SNWEEWS, 1N 2T 3E 4W 5B 6S, 6
SNEEWS, 1N 2T 3W 4S 5B 6E, 4
Інші правила
Ви також можете припустити, що куб знаходиться на нескінченній плоскій площині, ймовірно, з якимсь тертям.
Стандартні лазівки заборонені, хоча я не можу їх знайти.
Що стосується недійсного введення, ваш код може робити що завгодно, крім запуску апокаліпсису.
Оскільки ця програма повинна вміститися на моїх кубиках, вона повинна бути якомога меншою. Я рахую в байтах, за деякими винятками для таких мов, як папки .
(nothing) -> 2
означає, що сітка не передбачена, чи має бути там десь сітка?