He tratado de extraer solo la parte del problema donde estoy teniendo problemas, esto es parte de un proyecto más grande que estoy haciendo (no deberes). Creo que es más fácil describirlo como un juego (ya que lo necesito para terminar un juego en el que estoy trabajando). Este es un juego para un jugador, tal como lo describo.Encontrar un algoritmo para equilibrar este juego
START Se empieza con una de dos posiciones:
- peso
(2,0,-1)
y unored
juego - peso
(3,1,-1)
y dosred
juega
FIN El juego termina cuando no tener más juegos. El objetivo es terminar el juego con peso (0,0,0)
.
Hay dos tipos de juegos red
y blue
. Dado un juego, eliges una de las cuatro piezas: A,B,C,D
que te dan peso adicional y posiblemente jugadas adicionales. Estas son las reglas:
En un
red
juego:- Un añade peso
(0,-2,-1)
- B añade peso
(1,-1,-1)
y añade unred
juego - C añade peso
(2,0,-1)
y dosred
obras - D agrega peso
(0,2,1)
y dosblue
jugar s
- Un añade peso
Las reglas para blue
jugadas son similares, pero las dos primeras columnas de pesos se intercambian y la última columna es inversa y los tipos de obras se invierten, por lo que se obtiene de esta forma:
En un
blue
juego:- un añade peso
(-2,0,1)
- B añade peso
(-1,1,1)
y añade unblue
juego - C añade peso
(0,2,1)
y dosblue
jugadas - D añade peso
(2,0,-1)
y dosred
jugadas
- un añade peso
PREGUNTA ¿Puede este juego puede ganar ?
Estoy tratando de escribir un programa que gane el juego eligiendo jugadas para que el saldo final sea (0,0,0)
cuando no tenga más jugadas. Solo que no puedo hacerlo. Entonces ahora creo que tal vez no hay algoritmo para ganar el juego. Realmente me gustaría saber por qué es eso.Si alguien tiene alguna idea de cómo puedo probar eso, ¡por favor, hágamelo saber! O, si lo intentas y encuentras una manera de ganar, entonces dímelo también. ¡¡Gracias!!
Para confirmar, ¿comienza con '(1, 0, 0)' y una jugada aleatoria? Además, ¿están todas las piezas disponibles para ti en cada paso, o solo obtienes cada pieza una vez, o te dan un conjunto de piezas elegidas al azar? – templatetypedef
@templatetypedef Lo siento, tenía las condiciones de inicio equivocadas. He editado los detalles así que es ahora. – Daniel
¿Qué sucede cuando intentas forzarlo brutalmente enumerando a través de todos los movimientos posibles? – mbeckish