Страница:
777 из 786
Линии двух типов: горизонтальные или вертикальные
– Строка – горизонтальная линия
– Столбец – вертикальная линия
Каждая линия имеет статус 'активная' или 'старая', при инициализации статус – 'старая'.
Два вида объектов:
– Блок – объект, заданный размером (цифрой из списка в крайнем левом столбце или крайней верхней строке поля). На рисунке блок отображается символами.
– Ограничитель – объект, заполняющий пространство между построенными блоками
Отображается символами
Каждый объект имеет свой статус. Точнее два статуса – для строки и для столбца. Ведь статусы строки и столбца могут не совпадать.
Например, на строке блок может быть построен, и тогда все его '*' имеют здесь статус 'сделан'. Если теперь посмотреть на столбцы, которые пересекают эти 'сделанные' '*', то они могут быть частью построенных или недостроенных блоков и значит иметь другой статус.
При инициализации все пустые клетки имеют статус 'старый'.
В памяти объекты представляют собой три массива одного размера.
Один массив – изображение, два других – статусы строк и столбцов.
Размер массивов: количество столбцов, умноженное на количество строк.
Программа пробегает линии, пытаясь нарисовать в ней объекты. Если это удалось, соответствующий объект изменяет свой статус строки и столбца. Вновь появившиеся объекты принимают статус 'новый'.
Перпендикулярная линия, получившая новый объект, изменяет статус
'старый' на 'активный'. Обрабатываются только линии со статусом
'активная'.
|< Пред. 775 776 777 778 779 След. >|