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