Для начала определю правила:
1) Шашки ходят по диагонали на одну клетку и только вперёд. 2) Клетка, на которую ходят, должна быть пустой. 3) Если есть шашка/дамка, которая может бить - она обязана это сделать. 4) Если есть несколько таких шашек/дамок - бить можно любой из них. 5) Шашки бьют прыгая по диагонали через соседнюю клетку, на которой находится шашка/дамка противника. Шашки бьют, как вперёд, так и назад. 6) Если после прыжка шашка может сбить ещё шашки/дамки противника - она обязана это сделать. 7) Когда шашка достигает противоположного края доски, она становится дамкой. 8) Если шашка стала дамкой после того, как сбила шашку/дамку противника и став дамкой у неё появилась возможность сбить ещё шашки/дамки противника - она обязана это сделать. 9) Дамки ходят по диагонали прыгая через любое кол-во пустых клеток как вперёд, так и назад. 10) Дамки бьют прыгая по диагонали через любое кол-во пустых клеток среди которых находится ровно одна шашка/дамка противника. 11) Если после прыжка дамка может сбить еще шашки/дамки противника - она обязана это сделать. 12) Если после прыжка через шашку противника, дамка может стать на такую клетку, с которой может сбить еще шашки противника - она обязана это сделать (если есть несколько таких клеток - дамка может стать на любую из них). 13) Два последовательных прыжка шашки/дамки не могут быть в противоположных направлениях (то есть только в том же либо в перпендикулярном).
А теперь вопрос... Как всё вышенаписанное эффективно проверить. Особенно пункт 3 и пункт 12. В 3-ем нужно проверить все шашки - может ли какая-то бить. А в 12-ом - все клетки по диагонали. |