При условии, что шары не соприкасаются:
Предполагая ровно два шара
Создайте два объекта шара (называемые шарами 0 и 1), каждый из которых обладает набором точек. Точки x, y пары.
сканировать каждую строку сверху вниз, слева направо в каждой строке.
Когда вы видите первый #, присвойте его шару 0 (добавьте его, x, y шнуры к набору, принадлежащему объекту шара 0).
Когда вы видите любой последующий #, добавьте его к шару 0, если он находится рядом с любой точкой, уже находящейся в шаре 0; в противном случае добавьте его в шар 1. (Если новый # находится в точке x, y, который мы только что проверили (x + 1, y) в наборе, (x-1, y) в наборе, (x, y + 1) в множестве (x, y-1) в множестве и диагональные соседи)
Когда сканирование завершено, размеры списка показывают больший шарик. Затем у вас есть список точек, которые нужно стереть в наборе очков другого шара.