¿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?
game-design
level-design
Vishnu
fuente
fuente
Respuestas:
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.
fuente
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.
fuente
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.
fuente