![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
intel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
Доброго времени суток.
У нас такая вот задача: Сгенерировать все возможные тетрис-фигуры из n квадратов. квадрат представляется из двух координат - x, y . Например (0,0); (0,1); (0,2) - палка длиной три квадрата. и т.д. Препод указал на рекурсию, но каким образом её здесь использовать я ума не приложу, да и вообще, неужели тут без рекурсии не обойтись?! Пишу на яве. В общем если есть какие сображения или может уже кто сталкивался - пишите! Спасибо. |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
1) что такое тетрис-фигуры?
2) может тебе указали на рекурсию именно в твоей программе, а не в самой задаче? З.Ы. а поскромнее ник нельзя было придумать? -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 17 Всего: 454 |
Просто к очередной недо-фигуре прилепляется следующий квадрат во все возможные места. Построение ведётся в квадрате n*n, начальный квадрат (1,1). -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
maxdiver |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 29.1.2008 Где: Саратов Репутация: нет Всего: 18 |
Рекурсивный перебор, очевидно.
Сначала ставим единственный квадратик, а потом вызываем от этого поля некую функцию rec (n-1), которой передаётся, сколько ещё квадратиков осталось поставить, и можно через глобальный массив текущее поле передавать. Эта функция rec делает следующее: если ей передали 0, т.е. больше ставить нечего, то добавляет текущее поле в ответ; иначе она пытается всевозможными способами поставить на текущее поле новый квадратик, и вызывает себя же от каждого получившегося поля и на единицу меньшего количества. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |