![]() |
|
![]() ![]() ![]() |
|
GHOST32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 5.5.2013 Репутация: нет Всего: нет |
Доброго времени суток. Пишу игру Xonix. В общем есть поле размера 15*15 клеток, соответственно есть двумерный массив такого же размера.
Застрял на вырезание выделенного участка поля. Вот пример: Массив 00000000 00000000 00000000 00000000 Пользователь выделяет участок поля (выделено единичкой) 00000000 00001111 00001000 00001000 Нужно чтобы выделенный участок превратился в 2ки 00000000 00002222 00002222 00002222 Объясните, пожалуйста, алгоритм вырезания участка. |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
линия без самопересечений делит участок на две части
начать стоит с того, что определить критерий выбора части потом взять любую точку и применить алгоритм заливки (flood fill) -------------------- qqq |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
линия без самопересечений делит участок на две части
начать стоит с того, что определить критерий выбора части потом взять любую точку и применить алгоритм заливки (flood fill) -------------------- qqq |
|||
|
||||
GHOST32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 5.5.2013 Репутация: нет Всего: нет |
А как сравнить 2 участка?
|
|||
|
||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
А почему в примере вы закрасили двойками левый нижний угол? Как вы определили какую часть красить?
-------------------- Mirkes |
|||
|
||||
GHOST32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 5.5.2013 Репутация: нет Всего: нет |
Потому что закрашивается меньший участок. Это сообщение отредактировал(а) GHOST32 - 15.5.2013, 20:04 |
|||
|
||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
Так и действуйте. Любая линия без самопересечений делит ваше поле на две части. Берете меньшую и заливаете. Если сложно определить какая меньше, копируете поле и заливаете сначала одну, потом вторую и считаете число покрашенных точек.
-------------------- Mirkes |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |