![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 24.05.2007
Сообщений: 1
|
![]()
Здравствуйте, уважаемые программисты!
Проблема такая, курсовик нада делать, а я не знаю как прогу написать. Точнее игрушку. Название игрушки не знаю, преподаватель даже не знает. Смысл такой: есть 2е палки, на одной из них кольца. Например 4 кольца. Нада перекинут эти кольца на другую палку, чтобы они лежали там в тойже последовательности. Вот такое "некрасивое" условие сказала мне преподаватель. Ужас просто. Уточнять у неё - самоубийство, пошлёт куда подальше... Если кто сталкивался с такой задачей, или знает как сделать, помогите пожалуйста. Ещё преподаватель сказала, что если брать 10 колец, от расчётов формул будет на всю жизнь! ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
не ханойские башни случаем или я что-то путаю?
|
![]() |
![]() |
![]() |
#3 |
Проги на заказ
Пользователь
Регистрация: 22.05.2007
Сообщений: 41
|
![]()
EDG_aka_Dima, ты чего то путаеш это сто пудов Ханойская башня, но она не может быть на 2 штырьках, как минимум на 3. Посуди сам перекиним мы с одно палки на другую n-ое количество колец в определённом порядке и обратно можно переместить их в том же порядке. И никаких изменений не произойдёт, Дык!
![]() Вот тебе пример Ханойской башки на 3 палках.(Взят с проекта Delphi World) Ханойская башня Тяжёлое детство: восьмибитные игрушки. "Ханойская башня" построена на очень простом алгоритме. Здесь я привожу этот алгоритм, который Вы сможете без труда воспроизвести. type THanoiBin = 0..2; THanoiLevel = 0..9; procedure MoveDisc(FromPin, ToPin : THanoiPin; Level : THanoiLevel); // Это Вы должны сделать сами. Переместите один диск с одного штырька на другой. // Диск окажется наверху (естественно, выше него дисков не будет) Вы можете каким угодно образом перемещать диски 3-х пирамид. 3 пирамиды - наиболее простая разновидность алгоритма. Таким образом процедура переноса диска (MoveDisc) аналогична операции переноса диска на верхний уровень (MoveTopDisc): переместить диск наверх с одного штырька (FromPin) на другой штырек (ToPin) и передать указатель на штырек-приемник (MoveTower) вместе с уровнем расположения перемещенного диска. Другое решение заключается в использовании трех массивов [THanoiLevel] логического типа. В этом случае триггер "Истина (True)" означает наличие на пирамиде диска с размером, соответствующим порядковому номеру элемента массива THanoiLevel. procedure MoveTower(FromPin, ToPin : THanoiPin; Level : THanoiLevel); begin if HanoiLevel <= High(THanoiLevel) then begin MoveTower(FromPin, 3 - FromPin - ToPin, Level + 1); MoveDisc(FromPin, ToPin, Level); MoveTower(3 - FromPin - ToPin, ToPin, Level + 1); end; end; Чтобы переместить пирамиду целиком, вы должны вызвать процедуру MoveTower следующим образом: MoveTower(0, 1, Low(THanoiLevel));
Делфист - это звучит гордо!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi 7 задача на графику, игрушка | Agent[PNZ] | Помощь студентам | 2 | 29.04.2008 10:54 |
Игрушка | Rozalinda | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 9 | 14.01.2007 22:00 |