Северка   ::   Соловьев Николай

Страница: 777 из 786

Линии двух типов: горизонтальные или вертикальные

– Строка – горизонтальная линия

– Столбец – вертикальная линия

Каждая линия имеет статус 'активная' или 'старая', при инициализации статус – 'старая'.

Два вида объектов:

– Блок – объект, заданный размером (цифрой из списка в крайнем левом столбце или крайней верхней строке поля). На рисунке блок отображается символами.

– Ограничитель – объект, заполняющий пространство между построенными блоками

Отображается символами

Каждый объект имеет свой статус. Точнее два статуса – для строки и для столбца. Ведь статусы строки и столбца могут не совпадать.

Например, на строке блок может быть построен, и тогда все его '*' имеют здесь статус 'сделан'. Если теперь посмотреть на столбцы, которые пересекают эти 'сделанные' '*', то они могут быть частью построенных или недостроенных блоков и значит иметь другой статус.

При инициализации все пустые клетки имеют статус 'старый'.

В памяти объекты представляют собой три массива одного размера.

Один массив – изображение, два других – статусы строк и столбцов.

Размер массивов: количество столбцов, умноженное на количество строк.

Программа пробегает линии, пытаясь нарисовать в ней объекты. Если это удалось, соответствующий объект изменяет свой статус строки и столбца. Вновь появившиеся объекты принимают статус 'новый'.

Перпендикулярная линия, получившая новый объект, изменяет статус

'старый' на 'активный'. Обрабатываются только линии со статусом

'активная'.

|< Пред. 775 776 777 778 779 След. >|

Java книги

Контакты: [email protected]