Бросать кости
Итак, я катал кости недавно и подумал о вызове.
Учитывая куб с сеткой, взятой из входных данных и списком ходов, найдите квадрат внизу в конце.
Я буду использовать это изображение для примеров здесь.
вход
Вы берете в строку со списком ходов. Строка содержит только заглавные буквы ASCII N, S, W и E. Они соответствуют повороту куба на один шаг в этом направлении.
На снимке один N сделал бы нижнюю грань а 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
что сеть не предоставлена, или где-то должна быть сеть?