Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Алгоритм] Генерирование тетрис-фигур из n квадратов


Автор: intel 5.5.2009, 09:57
Доброго времени суток. 

У нас такая вот задача: Сгенерировать все возможные тетрис-фигуры из n квадратов. квадрат представляется из двух координат - x, y . Например (0,0); (0,1); (0,2) - палка длиной три квадрата. и т.д. Препод указал на рекурсию, но каким образом её здесь использовать я ума не приложу, да и вообще, неужели тут без рекурсии не обойтись?! Пишу на яве.

В общем если есть какие сображения или может уже кто сталкивался - пишите!
Спасибо.

Автор: ksili 5.5.2009, 10:04
1) что такое тетрис-фигуры?
2) может тебе указали на рекурсию именно в твоей программе, а не в самой задаче?

З.Ы. а поскромнее ник нельзя было придумать?

Автор: Akina 5.5.2009, 10:12
Цитата(intel @  5.5.2009,  10:57 Найти цитируемый пост)
Препод указал на рекурсию, но каким образом её здесь использовать я ума не приложу

Просто к очередной недо-фигуре прилепляется следующий квадрат во все возможные места. Построение ведётся в квадрате n*n, начальный квадрат (1,1).

Автор: maxdiver 5.5.2009, 10:13
Рекурсивный перебор, очевидно.
Сначала ставим единственный квадратик, а потом вызываем от этого поля некую функцию rec (n-1), которой передаётся, сколько ещё квадратиков осталось поставить, и можно через глобальный массив текущее поле передавать. Эта функция rec делает следующее: если ей передали 0, т.е. больше ставить нечего, то добавляет текущее поле в ответ; иначе она пытается всевозможными способами поставить на текущее поле новый квадратик, и вызывает себя же от каждого получившегося поля и на единицу меньшего количества.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)