Bejeweled Next Mejor selección de joyas

9

¿Existe una técnica de diseño de juego que pueda usar para eliminar completamente las situaciones de 'No quedan más movimientos'? es decir. El juego no debe contener escenarios imposibles.

Por lo que supongo, todo depende de qué joya y dónde le das al usuario después de que un grupo de joyas de 3 o 4 se disuelva.

Es posible ? An always infinitely solvable Bejewelled game?

Vishnu
fuente
2
hacer que todas las joyas azul
amb
+1 gran pregunta. Debería haber una solución bastante no complicada para esto, dependiendo de cuántas gemas nuevas generes.
cenizas999
@ ashes999: Gracias, pero las dos únicas ideas a partir de ahora, creo que esta eliminación de la situación ilegal es posible mediante 1.) la verificación de la fuerza bruta y la adición de joyas basadas en el cálculo bruto previsto, 2.) la introducción de cosas como bombas o el hipercubo que interactúa con cualquier joya creando una gran interrupción en el patrón del tablero.
Vishnu

Respuestas:

1

Ciertamente es posible crear un juego Bejeweled sin fin. PopCap lo ha hecho con el último Bejeweled 3 (el modo se llama "Modo Zen").

En primer lugar, debes asegurarte de que haya al menos un movimiento válido cuando generes el tablero por primera vez.

Cada vez que un jugador realiza un movimiento, debes calcular el tablero resultante y buscar movimientos válidos. Si no se encuentra ninguno, debes controlar las gemas que se generarán para restaurar un tablero válido. Como (al menos) 3 gemas se eliminarán con un movimiento y tendrás que generar 3 gemas de reemplazo, puedes asegurarte de que estas 3 gemas de reemplazo formen otro movimiento válido con el tablero actual. Modo sin fin logrado.

Por supuesto, no es ideal que el nuevo movimiento aparezca con nuevas gemas, pero es una forma barata de garantizar siempre un tablero jugable. Y dado que crear movimientos válidos en realidad significa intercambiar posiciones de gemas, no pasará mucho tiempo antes de que otros movimientos sean posibles.

Como ya se mencionó, las bombas y otros medios para despejar grandes partes del tablero agregarán más variedad a la jugabilidad, pero no son necesarios para garantizar un modo interminable.

bummzack
fuente
4

Si. De hecho, esto sería posible. Este no es un caso del problema de detención, ya que el caso está definido, no es arbitrario. Para responder esto, se deben responder dos partes; primero, si existe una solución, ¿se puede encontrar? Y segundo, siempre habrá una solución válida para encontrar.

La primera parte es cómo encontrar un conjunto de fichas de reemplazo (gemas) que producirían un tablero jugable. Esto se puede lograr a través de métodos de fuerza bruta, solo verifique cada conjunto de reemplazo posible hasta que se encuentre uno jugable (también habría métodos de fuerza no bruta más óptimos).

La segunda parte es determinar si siempre habrá un conjunto de reemplazo que producirá un conjunto jugable. Cualquier conjunto de fichas eliminado en un solo movimiento será un superconjunto de conjuntos de tres fichas, por lo que si en el caso mínimo de que solo se eliminen tres, si siempre se puede encontrar un conjunto jugable, entonces para todos los patrones posibles de fichas eliminadas habrá un conjunto jugable, ya que contendrá todas las soluciones para cada conjunto de tres fichas eliminadas, que es un subconjunto de las fichas eliminadas.

En el caso mínimo de borrar solo tres mosaicos en una fila / columna, un conjunto de reemplazo que contiene dos mosaicos de tipo A separados por un mosaico de tipo B (donde el tipo A es el tipo de mosaico por encima o por debajo del conjunto despejado de tres en el caso de una columna de tres, o hacia la izquierda o la derecha en el caso de una fila de tres). Esto producirá un movimiento en el que intercambiar el centro de estas tres fichas con la ficha A apropiada junto a él producirá un conjunto de tres. Esto muestra que siempre se puede encontrar un conjunto de mosaicos que producirán un movimiento válido a lo largo de la columna / fila donde se borraron los mosaicos originales. Restringir futuros movimientos a esa columna o fila, si bien es una solución válida para un juego infinito, no sería muy divertido. Pero usando todas las reglas para los juegos de estilo joya común, Es fácil demostrar que siempre existirá una solución que permitirá movimientos fuera de esa fila / columna también. Supongamos que colocamos tres mosaicos tipo A, donde A es uno de los mosaicos arriba o debajo / izquierda o derecha del conjunto de tres eliminado. Esto producirá un mosaico de estilo "bomba" que despejará un área cuando se retire. Si luego colocamos otro conjunto de fichas de reemplazo que da como resultado una coincidencia con esa bomba, se eliminará un área de fichas. Esta área contendrá un número de 3 subconjuntos de mosaicos dentro de otras filas, lo que significa que los movimientos futuros no se limitarán necesariamente a una sola fila / columna. Esto producirá un mosaico de estilo "bomba" que despejará un área cuando se retire. Si luego colocamos otro conjunto de fichas de reemplazo que da como resultado una coincidencia con esa bomba, se eliminará un área de fichas. Esta área contendrá un número de 3 subconjuntos de mosaicos dentro de otras filas, lo que significa que los movimientos futuros no se limitarán necesariamente a una sola fila / columna. Esto producirá un mosaico de estilo "bomba" que despejará un área cuando se retire. Si luego colocamos otro conjunto de fichas de reemplazo que da como resultado una coincidencia con esa bomba, se eliminará un área de fichas. Esta área contendrá un número de 3 subconjuntos de mosaicos dentro de otras filas, lo que significa que los movimientos futuros no se limitarán necesariamente a una sola fila / columna.

Matthew R
fuente
Solo gira 120 grados a la vez, ¿verdad? Entonces, ¿qué sucede si muestra un tablero que (debido a movimientos anteriores) tiene distribuciones puntuables en otra parte del tablero, que requiere 5 movimientos de un bloque recién colocado, y el jugador hace clic primero en algo incorrecto ?
Clockwork-Muse
Rota 120 grados? Bejeweled no implica rotaciones. ¿Estás pensando en Bejeweled Twist ?
Matthew R
Lo siento, no, estaba pensando en Hexic . Pero, con suficientes gemas diferentes, sería posible entrar en una situación en la que el motor tendría que generar un trío coincidente cada vez para permitir el juego continuo (porque nada más se anotaría). Lo cual puede ser interesante de ver, pero no muy jugable.
Clockwork-Muse
Siempre podrá generar un conjunto de reemplazo de tres mosaicos idénticos del mismo tipo que un mosaico a la izquierda / derecha o arriba / abajo de ese conjunto, lo que crearía un conjunto más grande que luego se eliminaría. Esto significa que todos los mosaicos en la fila o columna del mosaico original pueden ser eliminados. En la mayoría de los juegos de estilo joya, los conjuntos más grandes conducen a fichas especiales que limpian áreas o todo un tipo de ficha determinado. Esto podría conectarse en cascada según sea necesario para eliminar suficientes fichas para que se pueda generar un tablero jugable independientemente del estado inicial del tablero.
Matthew R
3

Has tocado el problema de la detención en la informática.

Dada una descripción de un programa de computadora arbitrario, ¿podemos deducir si se detendrá en algún momento o se ejecutará para siempre? Hay una razón por la que esto se llama un "problema".

La respuesta corta es: no, no puedes garantizar que un juego Bejeweled nunca tendrá movimientos ilegales. Porque garantizarlo llevaría un tiempo informático infinito.

caballero666
fuente
44
Solo para su información, el problema de detención dice que hay problemas imposibles de resolver, no todos. Para este problema específico, creo que simplemente no puedes hacerlo (o el juego será ridículamente simple, como 2 colores y una cuadrícula de 3 * 3, por ejemplo), hay demasiados caminos posibles en un juego de 'tamaño normal' como este .
Valmond
1
También para su información: la generación actual de juegos Bejeweled (de PopCap) tiene un modo interminable ... por lo que parecen haber resuelto el problema con éxito :) Se aseguran de que siempre haya un movimiento válido generando nuevas gemas que garanticen un movimiento válido ( solo se aplica cuando actualmente no hay ninguno disponible).
bummzack
1
@bummzack: lamento decir que te equivocas bummzack, pero en el popcap bejeweled (que me enorgullece decir que soy el máximo goleador tanto en clásico como en velocidad). La versión clásica deja de decir .NO se mueve hacia la izquierda y te ofrece un gameover
Vishnu
@ knight666: Bueno, no creo que eso sea imposible, como en la otra publicación de Mathew R, da una buena idea de usar una bomba cuando el ai prevé que podría surgir una situación ilegal.
Vishnu
@Vishnu Bueno, escribí la generación actual , que sería Bejeweled 3, y esto solo se aplica al modo sin fin (o modo Zen o lo que sea). Soy consciente de que este no era el caso en la versión clásica ...
bummzack