Implementar algoritmo para la regla del ko en el Go

202101021420

@baduk @algoritmia

Premisa: almacenar posiciones anteriores es una solución para comprobar el ko pero hace compleja la comprobación si puede navegarse hacia atrás por los movimientos [[Yendo hacia atrás en los movimientos de Go]].

Para implementar la regla del super ko parece un requisito el tener un registro de todas las posiciones anteriores. El algoritmo compararía la nueva situación tras el movimiento a probar con cada uno de las posiciones anteriores, deteniéndose al encontrar una coincidencia (movimiento ilegal) o al haberlas comprobado todas sin encontrar coincidencia (movimiento legal).

Implementar la regla del ko es más sencillo. Sólo hay que recordar las dos posiciones anteriores, o marcar el ko en el movimiento que puede generarlo. De esta manera se entiende que el propio movimiento es el que ilegaliza una intersección para el siguiente movimiento. Esta ilegalización se da cuando se captura una sola piedra y jugar en la casilla de la piedra capturada capturaría la piedra del último movimiento y solo esta.