Las reglas del juego son las siguientes:
- Hay dos jugadores.
- El juego comienza con N cantidad de piezas de juego colocadas una al lado de la otra en una fila.
- Tomando turnos, cada jugador remueve una pieza de juego.
- Una pieza solo puede ser removida si hay otra pieza inmediatamente a su derecha.
- Un jugador pierde si no puede remover una pieza.
Por ejemplo, si el estado actual del juego es XOOXXX, donde X denota una pieza de juego y O un espacio vacío, solo se pueden remover las piezas en los espacios 4 y 5. Las piezas en los espacios 1 y 6 no tienen otra pieza inmediatamente a su derecha. Si se remueve la pieza en el espacio 5, el estado del juego se convierte en XOOXOX. Ahora no hay piezas removibles, y el jugador cuyo turno es remover una pieza pierde.
No he podido deducir una estrategia óptima para este juego, pero aquí están algunas de las ideas que he tenido (que quizás no sean de interés):
Hay esencialmente dos tipos de movimientos, uno donde se remueve una pieza OXX --> OOX, y uno donde se remueve una pieza y otra queda sin remover XXX --> XOX (la pieza más a la izquierda ya no se puede remover). Dado que el segundo tipo es esencialmente quitar dos piezas del grupo de piezas removibles, pensé que debería ser posible hacer algo con la paridad, por ejemplo, asegurarse siempre de que haya un número impar de piezas removibles, pero no he llegado a ninguna parte con esto.
A medida que avanza el juego, las piezas se dividen en grupos más pequeños y más pequeños de piezas adyacentes, así que otra idea que tuve fue tratar cada grupo como su propio subjuego, pero creo que esto es un callejón sin salida ya que el mismo jugador puede hacer varios movimientos en un grupo si el otro jugador lo deja solo.
También pensé que podría ser posible aplicar algún tipo de lógica de inducción o programación dinámica, pero no soy muy bueno en eso.
¡Cualquier comentario sobre el tema es muy apreciado! :)