Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

#641. Шаг влево, шаг вправоЕ

0 views
Skip to first unread message

InternetFix

unread,
Mar 4, 2009, 6:00:04 AM3/4/09
to
Дело было давно, когда я только учился
программировать. Один баг запомнился особенно.
Решил написать игру в шашки. Ну, сделал поле,
расставил шашки, объяснил компу основные правила Ц
куда ходить, как есть, как ходить нельзя и т.д. Мой
ход, ход компа Ц и на цикл.

Стал тестировать Ц играть. Сначала, вроде, всё
нормально: комп примитивно играет, но правильно.
Вдруг замечаю, что шашек компа становится всё
меньше (я столько не съедаю). ЗадумалсяЕ А, хрень
какая-то, играем дальше. Через несколько ходов мои
шашки стали тоже исчезать, причём в тылу, а на их
месте стали появляться шашки компа! Ничего не
понятно!. Несколько прогонов Ц то же самое.

Когда разобрался, выяснил: так как компу было
прописано лходить вперёд на соседнее свободное
место╗ (по правилам шашек), то он просто уходил за
край доски Ц там же препятствий нет! У меня
прорисовывалось только поле шашек 8х8, а его шашки
уходили на 0-й, 9-й, 10-й столбец массива. Потом
коварно, из невидимости, у меня в тылу ел мои шашки
по всем правилам лесли рядом наискосок вражеская
шашка, и за ней Ц пусто, то надо есть╗.
Исправил сей баг по-русски: чтобы не писать везде в
коде ограничения по координатам, просто расширил
массив (-2 to 11)х(-2 to 11) и все неотображаемые
клетки вокруг игрового поля забил тройным рядом
своих шашек. Теперь шашки компа за край не совались
Ц занято!


(c) ithappens


0 new messages