Написать программу, имитирующую кубик Рубика. Программа читает одну строку, содержащую команды поворота граней в классической нотации через пробел (все команды: L R U D F B L' F' R' B' U' D' L2 F2 R2 B2 U2 D2 — поворот грани Left, Front, Right, Back, Up, Down на 90° по часовой стрелке, против-«'», дважды-«2»). После чего команды выполняются. Вначале выводится исходное положение, после каждой команды — результат.

Обратите внимание на то, что это неполная информация о состоянии кубика. Полная — положение и ориентация 21 кубика (27 всего, 6 неподвижных центров, ориентация которых не учитывается). Другой вариант — положение 48 этикеток на гранях кубика (54 всего, 6 неподвижных).

L' U2 R R' U2 L

Первый прямоугольник — исходное состояние кубика.

...yyy......
...yUy......
...yyy......
bbbrrrgggooo
bLbrFrgRgoBo
bbbrrrgggooo
...www......
...wDw......
...www......

...ryy......
...rUy......
...ryy......
bbbwrrgggooy
bLbwFrgRgoBy
bbbwrrgggooy
...oww......
...oDw......
...oww......

...yyr......
...yUr......
...yyr......
gggooybbbwrr
bLbwFrgRgoBy
bbbwrrgggooy
...oww......
...oDw......
...oww......

...yyy......
...yUr......
...yyr......
gggoowggbrrr
bLbwFwgRbrBy
bbbwrwggbroy
...owo......
...oDo......
...oww......

...yyr......
...yUr......
...yyr......
gggooybbbwrr
bLbwFrgRgoBy
bbbwrrgggooy
...oww......
...oDw......
...oww......

...ryy......
...rUy......
...ryy......
bbbwrrgggooy
bLbwFrgRgoBy
bbbwrrgggooy
...oww......
...oDw......
...oww......

...yyy......
...yUy......
...yyy......
bbbrrrgggooo
bLbrFrgRgoBo
bbbrrrgggooo
...www......
...wDw......
...www......

Положение наклеек на гранях соответствует при выводе развёртке куба: например, грань U выводится зеркально отражённой по горизонтали.


CategoryHomework

LecturesCMC/PythonIntro2017/Homework_RubicsCube (последним исправлял пользователь FrBrGeorge 2017-12-27 11:23:31)