В игре Го есть правило ко, которое в основном гласит, что немедленное возвращение одного камня не является допустимым ходом.
Я работаю над компьютерной программой Go и пытаюсь реализовать правило ko. Для эффективности меня устраивает более расслабленное определение, преследующее две цели:
В настоящее время я хожу с:
Если в предыдущем полуобороте был взят ровно один единственный камень, то в следующий за этим полуоборот (другим игроком) игра на месте этого камня не разрешается.
Это смягчено, потому что оно не пытается обнаружить, что ко действительно присутствует, оно связано только с предотвращением неправильного хода. Например:
Эта ситуация не ко, потому что нет возможности отбить. Однако играть на месте захваченного камня все же недопустимый ход, потому что это было бы самоубийством. Я считаю, что одно или другое (незаконный отлов или самоубийство) применимо всегда.
Мой вопрос в том, соответствует ли моя эвристика двум заявленным целям. (Я думаю, что это так.)
Нет, эта логика, к сожалению, не работает: она предотвращает ходы, которые на самом деле являются законными, потому что они включают снэпбэк.
Белые захватывают:
Теперь с вашим определением:
Если в предыдущем полуобороте был захвачен ровно один камень
В этом случае; белые захватили единственный камень.
то не разрешается играть на месте этого камня в следующие пол-оборота (другим игроком).
Эта позиция отмечена как . Тем не менее, черные вполне могут играть там, так как они захватывают всю группу белых и, таким образом, не повторяют позицию на доске:
Ваше правило подходит для обнаружения простых kos, но не всех запрещенных повторений. РЕДАКТИРОВАТЬ: он неправильно запрещает Snapbacks, как показано в ответе balpha , и, таким образом, не соответствует вашему условию (2). Из вашего вопроса мне неясно, включают ли «ходы, которые нелегально отбивают ко», которые вы хотите предотвратить, только немедленные отбивания или также более поздние нелегальные отбивания; Поэтому я не могу сказать, выполняется ли ваше условие (1).
Простого правила недостаточно, когда на доске более одного ко. Таким образом, правило ко сложнее, чем вы предполагаете, и существует в нескольких вариантах. Наиболее математически элегантные формы исключают повторение всей доски , и они, вероятно, также наиболее удобны для программирования. Вы можете проверить Сэнсэя на Ко . Ваше правило не может предотвратить невозможные ходы в таких ситуациях, как тройное ко .
PS Удобным ускорением может быть то, что ход не может быть недопустимым повторением, если на доске больше камней любого цвета, чем когда-либо прежде в игре.
Забудь, что я когда-либо был здесь
PJTrail
мафу
мафу