Изменить стиль страницы

Листик разведали и стали лазать через лаз на балкрне. Сижу на диване, кто-то запрыгнул на балкон – Рыжий. Он пробегает мимо меня, даже не кивнув. Спешит на кухню – свое подсобное хозяйство. А

Листик, когда запрыгивает, садится у приоткрытой балконной двери и мяучит. Толкни дверь мордочкой, как это делают другие кошки. Нет.

Даже мой голос не служит ей разрешением. Подхожу, открываю, и тогда она благодарно мяркнет и пробегает в комнату. А мяучит она коротко:

'мя' с какой-то хрипотцой.

Весной Листик забеременела. Она ходит с толстым брюшком и по-прежнему ловко запрыгивает на подоконник. Спит, а ножки свисают.

Три раза она падала с подоконника во сне, как мешок с картошкой. В

Жаворонках я видел белую кошку с разными глазами. Один голубой, другой зеленый. Ее мамка падала с подоконника.

На время родов Листик куда-то пропала и появилась через полтора месяца худая, без набухших сосков. Котят ее я не видел.

Прошло недели две. Возвращаюсь как-то из Москвы, захожу – в комнате Листик на подоконнике спасается, а вокруг на полу шесть котов. Хитрюшка один из них. Рыжий – как обычно на кухне.

Посторонние коты, но меня не боятся, пришлось топнуть.

Несколько дней я видел, как Листик носилась от стаи котов. Иногда мне удавалось спасти ее на балконе, закрыв лаз. Когда она остается одна, начинает кувыркаться и тереться обо все вокруг. Ее шерстка от пыли стала серой. Я вымыл ее теплой водой. Листик испуганно сопротивлялась. Тщательно вытер и оставил ее сидеть и облизываться на сухом полотенце. Облизывается и урчит.

Вскоре Листик вновь забеременела. За два дня до родов она пришла ко мне. Не ушла даже ночью и легла сбоку на одеяло. Я уже начал засыпать, когда через лаз запрыгнул Хитрюшка. Листик мгновенно сорвалась, подбежала к балкону и зашипела на него. Хитрюшка испугался и долго не решался пройти.

А еще через день, без чего-то шесть, утром Листик разбудила меня мяуканьем за входной дверью. Впустил ее и лег досыпать. Она легла рядом и стала тужиться. Я понял, сейчас рожать будет. Осторожно взял и вынес ее наружу. С минуту она жалобно мяукала под дверью, потом ушла. В этот день я не мог ни читать, ни писать, ни смотреть телевизор. Стирал, потом сходил в Вяземы за рыбой и несколько часов занимался ей.

Листик опять надолго пропала. Месяца через два я вновь увидел ее во дворе. Она стала заходить ко мне как прежде. Но что-то пропало в ней. Я извинялся, ласкал и кормил ее. Кажется, она простила меня.

С разницей в две недели течка началась у армянской кошечки.

Однажды она зашла, наскоро поела и стала петь песенки для Мурмяши.

Повернется спиной, хвостик на бок и поет. И глазом косит. А он подходит и с удивлением нюхает ее. Армяшечка подождет, отходит на несколько шагов и снова поет. Сорок минут он ее нюхал, после чего она влепила ему пощечину. Я выпустил ее, а про Мурмяшу подумал, что, пожалуй, он еще молод для этого. Прошел месяц, и я увидел, как

Мурмяша любит армянку, а потом и других кошек. Как и все коты, он набрасывается как орел и зубами держит любимую за шею, вдавливая ее мордочку в землю.

Несколько раз видел, как во дворе Мурмяша поет с другим котом. Они садятся в нескольких сантиметрах друг от друга. Вупор друг на друга не смотрят и резких движений не делают.

До сих пор Хитрюшка откуда-то приносил свою добычу. А сегодня он при мне сам поймал полевую мышь. Тут же взял в зубы и поволок ее за угол дома. Косо глянул на меня на прощание – не хочет делиться. Я тоже завернул за угол, посмотреть. Мне повезло. Хитрюшке преградил дорогу другой кот. Не страшный, но с дороги не уходит. Я подошел близко и рассмотрел пушистую мышку в его зубах.

В середине лета по утрам в поселок стали наведываться бродячие собаки. Однажды, часа в четыре утра они разбудили меня, судя по возне и голосам их не меньше четырех. В поселке стали пропадать кошки. За Мурмяшу я не боялся. Хоть он и уходит ночью, когда вздумается, но они ходят вместе с Рыжим. Если на него нападут на улице, он залезет на дерево, если в подвале – выскочит в одно из окошек. Они задушили его. Миленький мой иногда пропадал сутками.

Сначала я беспокоился, потом привык. И этим утром его тоже не было.

Пошел в магазин. Женщина из соседнего дома остановила меня и рассказала, что слышала ночью, как в подвале кричит кошка, и лают собаки. Она пыталась прогнать их, но ничего не помогло. Сантехников искать долго, я сбил замок с подвала и спустился. Во второй комнате на полу лежал Миленький. Он уже остыл и отвердел. Никаких повреждений на нем не было, только кровь на губе. После армии я думал, что подвал – длинный зал. Оказалось, что это ряд пустых комнат без дверей. В комнате, где лежал Миленький на окне была решетка. Дома я обмыл его, взял лопату и пошел хоронить. В лесу вырыл ямку, положил полотенце, на него – Миленького, головкой на запад. Пытался сделать надгробие из глины, не получилось, трескается, когда обжигаешь. Дерево сразу отверг. В Москве искал небольшой камень, но везде продают большие и дорогие. Тогда купил пакет цемента и сделал камень из него. 'Коту Мотьке, который меня любил'. Иногда я звал его тимошечный Мотя.

Два года назад, когда я увлекся японскими кроссвордами, мне вдруг захотелось написать программу для их решения. Тогда я сделал всего лишь наброски на двух листах и отложил. Дальше идти без конкретного языка, без конкретных подпрограмм и обработки ошибок нельзя. К своей идее я вернулся, как только сделал ремонт. А ноутбук у меня уже был.

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

Выход лучше сделать в Excel-файл. Вы можете программно сделать его ячейки квадратными, каждую пятую горизонтальную и вертикальную линию – жирной. Заполняются крайние левые и верхние ячейки числами тоже программно. В процессе решения кроссворда на бумаге Вы зачеркиваете числа (назову их размерами блоков), которые полностью построены. Зачеркивание тоже можно сделать программно или окрашивать цифры другим цветом.

Исходные данные (размеры блоков) тоже удобно разместить в том же

Excel-файле. На листе с именем: 'Данные'. Для простоты их можно разместить в двух соседних столбцах. Программа создает, если их нет, другие листы с именами: 'Отладка', 'Итог', 'Тест'. Полученный файл удобно хранить, изменять, распечатывать, увеличивать или уменьшать при просмотре.

Глоссарий, чтобы исключить путаницу:

– Поле – вся совокупность клеток кроссворда.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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