Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Алгоритмы / Разное /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Алгоритм сбора кубика-рубика - Программирование от RIN.RU
Алгоритм сбора кубика-рубика

Выделяют начальную грань и противоположную ей - конечную, по диаметру от начальной до конечной грани выделяют три пояса


Первый пояс:


  1. Собрать крест на начальной грани (действия простейшие);
    Для каждой угловой части с одной из сторон цвета начальной грани (назовем эту сторону лицевой):

  2. Вывести элемент лицевой стороной на третий пояс (два случая: лицевая сторона на конечной грани или на первом поясе) путем поворота одной из боковых граней, поворота конечной и возврата боковой;

  3. Установка элемента на место - решается подобно пункту б) с предварительным подводом конечной грани;




Второй пояс:


Суть: помещение элемента (не углового - во втором поясе угловых нет) во второй пояс из третьего;


Исходная: Hачальная грань - верхняя. Сторона элемента, окрашенная в цвет лицевой грани находится в третьем поясе на лицевой грани;


+--+--+--+
|XX|XX|XX|
+--+--+--+
| |XX|YY|<-+
+--+--+--+ |
| |XX| | |
+--+--+--+ |
| |
+-------+
а) Для помещения на правую сторону лицевой грани.
Hижнюю - влево;
Правую - вниз;
Hижнюю - вправо;
Правую - вверх;
Лицевую - против ч. с.;
Правую - вверх;
Лицевую - по;
Правую - вниз.
б) Для помещения на левую сторону - симметрично с а)




Третий пояс: (здесь лицевая - всегда конечная грань)


  1. Суть: Установка на места (без ориентации) крестовых элементов. Меняются местами три элемента (см рисунок).




    +-------+г------+
    | |V |
    | +--+--+--+ |
    | | |AA| | /+
    | +--+--+--+/
    | | | |BB|<-+
    | +--+--+--+ |
    | | |CC| | |
    | +--+--+--+ |
    | ^| |
    +-------+L------+


    Лицевая - по;
    Правая - вверх;
    Верхняя - влево;
    Правая - вниз;
    Верхняя - вправо;
    Лицевая - против.


  2. Суть: ориентация крестовых элементов (неверно ориентированных должно быть четное количество).


    Исходная: переворачиваемый элемент находится в правой части лицевой грани.




    Проделать 4 раза для каждого элемента:
    Правую - вверх;
    Заднюю со средней - против;
    Заднюю - по;


    ВHИМАHИЕ! После операции над одним элементом _поворотом лицевой грани_ установить на исходную другой элемент и обработать его.


  3. Суть: установка (без ориентации) угловых элементов.


    Исходная: см. рис.
    +---------+
    | V
    | +--+--+--+
    | | | |AA|--+
    | +--+--+--+ |
    | | | | | |
    | +--+--+--+ |
    +--|CC| |BB|<-+
    +--+--+--+
    ^ |
    +----+


    Правая - вниз;
    Лицевая - по;
    Левая - вниз;
    Лицевая - против;
    Правая - вверх;
    Лицевая - по;
    Левая - вверх;
    Лицевая - против.


  4. Суть: ориентация угловых


    Исходная: ориентируемый элемент - в верхнем правом углу лицевой грани.


    Повторять пока не установится:
    Правую - вверх;
    Заднюю - против;
    Правую - вниз;
    Заднюю - по;


    ВHИМАHИЕ! К обработке следующего элемента переходить _только поворотом лицевой грани_!




     8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь