Bejeweled se puede considerar como un juego en 2 pasos: en el primer paso haces algún movimiento, y en el segundo paso las piezas que fueron eliminadas por tu movimiento son reemplazadas. Este segundo paso puede considerarse como un turno de oponentes. Una vez que piensas en el juego de esta manera, se convierte en un ejemplo de un juego de suma cero. Otros ejemplos de juegos de suma cero incluyen ajedrez, damas y tic-tac-toe.
Las versiones de computadora de los juegos de suma cero a menudo usan “minimax” http://en.wikipedia.org/wiki/Min… para implementar jugadores de IA. Como dice Wikipedia, el objetivo es “minimizar la posible pérdida mientras se maximiza la ganancia potencial”. Esto se hace mirando todos los movimientos disponibles para obtener la mejor ganancia, luego mirando los movimientos de los oponentes para ver qué podría perderse en respuesta. Este proceso puede repetirse en turnos futuros mientras haya tiempo y memoria.
Ejemplo de ajedrez: la IA tiene la capacidad de tomar un peón o una torre. Con solo esta información, la IA gana más al tomar la torre, pero cuando la IA examina los turnos de los jugadores ve que si toma la torre, perderá a su reina, mientras que si solo toma el peón, nada sucederá. Ahora el mejor movimiento (ganancia potencial más pérdida potencial) es tomar el peón. Mirando un turno más allá, la IA puede ver si pierde a su reina por la torre que la IA ganará con un jaque mate. No es un mal movimiento después de todo.
De vuelta a Bejeweled. Durante el paso del jugador, el jugador puede ver todos los movimientos disponibles y elegir los que les darán más puntos para ese movimiento. Luego está el truco de calcular la respuesta de los oponentes, luego, para cada respuesta posible, el jugador puede calcular el mejor movimiento posible.
- ¿Por qué las computadoras pueden completar algunas tareas excepcionalmente bien y otras terriblemente?
- ¿Cuál es el algoritmo matemático para el reflejo del equilibrio humano?
- ¿Por qué la gente habla de algoritmos como si pudieran resolver todos los problemas?
- ¿Cuáles son algunos buenos algoritmos matemáticos que miden el litoral de una masa continental en particular?
- ¿Cómo se desarrollan los algoritmos de cálculo de pi?
La parte difícil sobre la respuesta del “oponente” al rellenar el tablero es la desviación principal de juegos como el ajedrez, donde puedes asumir que tu oponente es inteligente. El tablero Bejeweled se llena (hasta donde yo sé) al azar, lo que significa que cualquier movimiento tiene la posibilidad de comenzar una cadena masiva que le otorgue al jugador una cantidad ridícula de puntos. Esta posibilidad es, sin embargo, muy pequeña. Existe una posibilidad mucho mayor de que si tiene dos piezas en una línea al lado del lugar donde caerán nuevas piezas, pueda obtener una cadena agrupada para obtener más puntos. Contra un jugador inteligente, la IA debe asumir que el jugador elegirá el mejor movimiento posible y usarlo para determinar cuál será su pérdida. Contra un oponente aleatorio, una suma de las probabilidades es mejor.
La otra pregunta que se me ocurrió cuando leí por primera vez esta pregunta es si Bejeweled, como Tetris http://arxiv.org/abs/cs.CC/0210020, es un problema en NP.