Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Xonix. Алгоритм вырезания участка. |
Автор: GHOST32 5.5.2013, 11:50 |
Доброго времени суток. Пишу игру Xonix. В общем есть поле размера 15*15 клеток, соответственно есть двумерный массив такого же размера. Застрял на вырезание выделенного участка поля. Вот пример: Массив 00000000 00000000 00000000 00000000 Пользователь выделяет участок поля (выделено единичкой) 00000000 00001111 00001000 00001000 Нужно чтобы выделенный участок превратился в 2ки 00000000 00002222 00002222 00002222 Объясните, пожалуйста, алгоритм вырезания участка. |
Автор: maxim1000 5.5.2013, 14:33 |
линия без самопересечений делит участок на две части начать стоит с того, что определить критерий выбора части потом взять любую точку и применить алгоритм заливки (flood fill) |
Автор: maxim1000 5.5.2013, 14:31 |
линия без самопересечений делит участок на две части начать стоит с того, что определить критерий выбора части потом взять любую точку и применить алгоритм заливки (flood fill) |
Автор: GHOST32 14.5.2013, 16:45 |
А как сравнить 2 участка? |
Автор: Mirkes 15.5.2013, 11:10 |
А почему в примере вы закрасили двойками левый нижний угол? Как вы определили какую часть красить? |
Автор: GHOST32 15.5.2013, 20:03 | ||
Потому что закрашивается меньший участок. |
Автор: Mirkes 16.5.2013, 15:13 |
Так и действуйте. Любая линия без самопересечений делит ваше поле на две части. Берете меньшую и заливаете. Если сложно определить какая меньше, копируете поле и заливаете сначала одну, потом вторую и считаете число покрашенных точек. |