Гексагональные шахматы описывают семейство шахматных вариантов, играемых на доске, где ячейки представляют собой шестиугольники вместо традиционных квадратов. Есть много таких вариантов; В этой задаче мы сосредоточимся на варианте Глински, который является наиболее распространенным.
Доска состоит из трех цветов (чтобы один и тот же цвет не разделял ребро), причем края шестиугольников обращены к игрокам. Плата имеет 11 файлов, помеченных буквами a
через l
(буква j
не используется), и 11 рангов (которые изгибом 60 ° в файле f
). Ранги 1
в 6
каждом содержат 11 ячеек, ранг 7
имеет 9 ячеек, ранг 8
имеет 7 и т. Д. Ранг 11
содержит ровно одну ячейку: f11 . (Если это помогает, думайте о каждом ранге как о создании очень широкой буквы "V".)
Вот пример изображения доски с рыцарем в центре клетки. Клетки, отмеченные точкой, являются законными ходами этого конкретного рыцаря. Рыцарь движется аналогично «нормальным» шахматам, два вниз и один за. В гексагональных шахматных терминах это ортогональное движение (через ребро), затем диагональное движение в том же направлении (ближайшее движение к тому же цвету). Например, с рыцарем ниже, ортогональное движение «вверх» к светло-коричневому цвету затем сопровождается диагональным движением «вверх и вправо» или «вверх и влево» к ближайшему светло-коричневому цвету.
Из открытого домена через https://commons.wikimedia.org/wiki/File:Glinski_Chess_Knight.svg
Этот рыцарь расположен на f6, и законные ходы, таким образом,
c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5
вход
Единственный вход, дающий стартовую ячейку нашего рыцаря. Это может быть как одна строка "b6"
, так и две строки "b", "6"
и т. Д. В любом удобном формате . Вводимые буквы могут быть прописными или строчными - на ваш выбор.
Выход
Список действительных ходов, которые может сделать рыцарь в этом месте. Это может быть массив строк, одна строка с однозначным и непротиворечивым разделителем, отдельные строки с помощью новых строк и т. Д. - все, что наиболее удобно. Вывод не обязательно должен быть в отсортированном порядке, и может быть в верхнем или нижнем регистре - ваш выбор.
правила
- Предположим, что на доске нет других фигур или они не мешают ходам. Мы ориентируемся только на рыцаря.
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Если возможно, укажите ссылку на среду онлайн-тестирования, чтобы другие люди могли опробовать ваш код!
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
Примеры
b6
a3, c4, d5, d9, e7, e8
f6
c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5
f11
d8, e8, g8, h8
i1
f2, f3, g4, h4, l2, k3