Китайская шахматная доска выглядит следующим образом (на основе этого вопроса , но на этот раз она имеет фиксированный размер):
G
. G
G G G
G G . G
B B B B . . Y G . Y . Y Y
B B B . . G . . . Y Y Y
B . B . . . . . Y . Y
B . . . . . . . . Y
. . . . . . . . .
. P . . . . . O O .
P P . . . . . . . O O
P P P . . . R . . O O .
P P P P . . R . . O O O O
R . R R
R R R
R .
R
Каждый непробельный символ в этом примере может быть заменен любым непечатным ASCII-символом на входе, в то время как пробелы никогда не меняются. Обратите внимание, что в китайской шашке не гарантируется правильное расположение (например, оно может содержать не ровно 7 различных типов символов).
Ваша задача - повернуть его на кратное 60 градусов.
Это приведенный выше пример, повернутый на 60 градусов по часовой стрелке:
B
B B
B B B
B . B B
P P P . . . B . . G G . G
P P P P . . . . . G G G
P P . . . . . G Y . G
P . . . . . . . G G
. . . . . . . . .
R . . . . . . . . Y
R . R R . . . . Y Y .
R R R . . . O . . . Y Y
R . R R . . . O . Y Y Y Y
O O O .
O O O
O .
O
Входные данные - неотрицательное целое число и китайская шахматная доска. Ваша программа (или функция) должна повернуть ее на целое число * 60 градусов. Вы сами решаете, вращать ли по часовой стрелке или против часовой стрелки, если это не противоречит. И на входе, и на выходе не должно быть лишних начальных или конечных пробелов.
Это код-гольф. Самый короткий код выигрывает.
источник
_,,Sf*\.+W%ze_
,liq{_N/eeSf.*W%:szsS-\{_' >{;(}&\}/;]}@*
, Но я думал о вращении на 60 градусов, а не 45 градусов , когда я писал эту проблему ...qN/(i{_eeSf.*W%:szSf-{},.{' f+sW<\,' e[}}*N*
это даже больше , чем я был раньше ...Python 2, 171 байт
Это, пожалуй , единственный раз , когда я нашел
str.splitlines
полезным - для всех остальных случаев,.split("\n")
короче.Использовать как
f(S,10)
.объяснение
Для каждого полукокса на входе, мы либо:
Для того, чтобы выяснить , какой символ заменить, мы сводим сетки координат куба
(x, y, z)
, поворотn
раз путем преобразования(x, y, z) -> (-y, -z, -x)
, а затем преобразовать обратно.источник