¿Cómo juega Words With Friends con la computadora?

No sé qué algoritmo exacto usa una aplicación específica, pero puedo especular. Este problema es equivalente a cómo funcionan los motores de búsqueda, aunque en un formato muy simplificado.

Hay dos problemas básicos por resolver. El primero es crear una lista de posibles palabras que se puedan jugar. Esta es la búsqueda. El segundo es decidir cuál de ellos sería la mejor opción para jugar en ese momento. Este es el ranking.

Ahora, dada una lista de palabras válidas (cualquier diccionario acordado), el objetivo es encontrar todas las palabras posibles de sus siete mosaicos. La informática tiene una multitud de algoritmos para hacer esto de manera eficiente. Como con cualquier búsqueda, el primer paso es construir estructuras de datos que faciliten un método de búsqueda eficiente, básicamente alguna forma de indexación. Se pueden utilizar estructuras de datos como Tries, etc. Pero tbh, con solo siete letras, el tamaño del diccionario de inglés, la potencia informática disponible incluso en los teléfonos inteligentes más básicos en la actualidad, junto con el hecho de que esperaríamos que la computadora demore al menos unos segundos en moverse. para no sentirse inferior, se puede usar un enfoque de fuerza bruta simple sin problema.

El segundo problema es más interesante. ¿Cuál de las palabras válidas es la mejor para jugar? La teoría de juegos entra en juego aquí. Claro que podría elegir el que tenga la puntuación más alta, pero esta palabra puede dejar grandes oportunidades para el oponente, molestos bonos triples adyacentes a una jugosa E o una A. Un algoritmo más sofisticado asignará varios pesos a este tipo de jugadas y calculará algún tipo de “recompensa” por cada jugada. Algo así como el puntaje de la palabra menos el riesgo de jugar esa palabra (calculada en alguna fórmula basada en el conocimiento y la experimentación de scrabble). Luego juega la palabra con el factor de recompensa más alto.