Necesito Algoritmo

Hola amigo necesito encontrar un algoritmo o algo parecido para resolver este juego.
Pon nueve monedas en tres filas como se ve en el dibujo.
x x
x x x
x x x x
Cada jugador, por turnos, debe ir quitando una o más monedas, siempre
que todas pertenezcan a la misma fila. Pierde el jugador que se ve obligado
a quitar la última moneda.
Si el primer jugador hace un primer movimiento correcto, y sigue
jugando racionalmente, ganará siempre. Si no lo hace, ganará el segundo
jugador, siempre que juegue de manera racional. ¿Puedes descubrir este primer movimiento?
Solución
El primer jugador puede estar seguro de que ganará si en su primer
movimiento saca tres monedas de la fila inferior.
En cualquier caso, una partida que deje uno de los siguientes esquemas
de
monedas también ganará con toda seguridad:
Una moneda en cada una de las tres filas
Dos monedas en cada una de dos filas
Tres monedas en cada una de dos filas
Una moneda en una fila, dos en otra y tres en la tercera
Así podremos ganar aunque no movamos primero, siempre y cuando el otro
jugador no haga el movimiento correcto de apertura.
Puede tener más Filas y cada fila con más bolas eso es relativo.
Necesito un algoritmo optimo sin muchos if then else.
Gracias, Pavel

1 Respuesta

Respuesta
1
EL algoritmo del movimiento ganador es sencillo.
Si lo necesitas en pseudocódigo me lo indicas y te lo mando el lunes.
Resumido sería dejar siempre dos filas con más de una moneda. Y luego que nunca se lleve la última.
Puede hacerse recursivo.
Algo así :
Para cada linea
Cuento cual es la última que tiene más de 2 monedas y el número de filas que tiene dos monedas.
Si el número de filas con más de dos monedas es par, saco todas menos 2. Sino, saco una.
Y solucionado.
(Creo que no me he equivocado, si es así házmelo saber y lo tomo más en serio.)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas