Вот, на картинке.
Сиреневые стрелки залили тех, которые закреплены. В середине один остался.
denpopov, ну чо сам писать будешь? или как дизайнер выступишь?
---------- Post added at 12:36 ---------- Previous post was at 12:32 ----------
а здесь кстати совсем просто
вот смотри есть массив 16*12 где у тебя отражены морды
и есть второй массив 16*12 который ты зануляешь перед закраской
и когда делаешь заливку от краев помечаешь во втором буфере например единичкой
после заливки проверяешь наличие закрепленной за каждой мордой единичкой
С уважением,
Jerri / Red Triangle.
Залив пустое пространство ты хочешь отделить открытое пространство от закрытых пузырей что-ли? И там будут рождаться бегающие монстры. Отличная идея!
---------- Post added at 14:43 ---------- Previous post was at 14:36 ----------
Из продолжения к моей картинке.
Допустим мы хотим, чтобы оторванные исчезли. Делаем цикл по всем клеткам, если в клетке есть блок, и он не помечен заливкой от краёв, то стираем его.
Если хотим, чтобы он падал, то перебираем клетки сверху вниз, и непомеченные блоки переносим на клетку ниже.
да какой из меня дезайнер? писал игру очень давно, сейчас посмотрел на исходник и понял, что загвоздка была в алгоритме. Я не хочу, чтобы блоки падали, просто нужно ликвидировать блок и по возможности посчитать количество блоков.
Я не понимаю, почему у тебя получается один свободный блок. допустим, в такой ситуации как поступить?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Один свобоный блок остался, потому-что до него не дошла заливка. Затравочные точки были сверху и с боков, а он с ними не соединён.
В новом варианте - см картинку. Голубым обвёл оторванных.
т.е. два блока не считать - нужно ли их изолировать?
Да я разве против? Если тебе надо, то посчитай. Или "изолируй". Я не понимаю что значит "изолировать". Раньше я думал, что это такое состояние группы блоков, когда они находятся в "летящем" состоянии, то есть в процессе игры они оторвались от "заземлённой" части. Также я думал, что наша задача, найти алгоритм, который позволил-бы найти такие части. Но теперь, после твоих вопросов я понимаю, что ты имел ввиду что-то другое. Пожалуйста опиши поподробнее, что значит изолировать?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)