Creando un juego de mesa AI

9

Quiero codificar un juego de mesa cuyo nombre es Okey y sobre todo popular en Turquía. http://en.wikipedia.org/wiki/Okey

Pero tengo algunos problemas con la IA.

Firmemente déjame explicarte el juego ...

El juego es jugado por 4 jugadores.

En este juego hay 106 fichas, 2 de ellas son bromistas falsos. Otros 104 azulejos se dividen en 4 colores, generalmente verde, negro, azul y rojo. Todos los colores tienen dos juegos de fichas. Un conjunto contiene 13 fichas que se numeran secuencialmente del 1 al 13.

Cada jugador comienza 14 fichas (una es la inicial 15 y comienza primero) y lanza una de las fichas más no deseadas al siguiente jugador. El siguiente jugador puede obtener este mosaico o puede obtener otro mosaico de la pila en el medio de la mesa. El juego se jugó en sentido antihorario.

El objetivo de este juego es encontrar la secuencia válida de 14 fichas tan pronto como sea posible. El jugador puede alinear fichas por números secuenciales en el mismo color hasta 13. Para el ejemplo Verde 1, Verde 2, Verde 3. Aquí hay una excepción, 1 puede seguirse a 13. Por ejemplo, Rojo 12, Rojo 13 y Rojo 1 es un conjunto válido Pero Red 13, Red 1 y Red 2 no son válidos.

O el jugador puede alinear fichas por colores en el mismo número. Por ejemplo, Verde 1, Negro 1, Rojo 1, Azul 1.

Cada conjunto debe tener 3 o más mosaicos para ser válido y cada uno de estos conjuntos se denomina "Por". Menos de 3 fichas no es válido para el acabado. Un conjunto de acabado válido puede ser así. G: Verde, B: Azul, R: Rojo, BL: Negro G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13

Lo último, al comenzar el juego, se selecciona un mosaico para determinar el comodín (okey). Por ejemplo, si selecciona Azul 3; Blue 4 será un comodín (okey) y el jugador puede usar este mosaico en lugar de cualquier mosaico que el jugador necesite para ganar o completar un conjunto (por).

Por supuesto, estas reglas son reglas generales y se resumen para explicar la pregunta. Si puede leer inglés, puede consultar este enlace para obtener más información http://tr.wikipedia.org/wiki/Okey o página traducida por Google Translate http://translate.google.com/translate?js=n&prev=_t&hl= es & ie = UTF-8 & layout = 2 & eotf = 1 & sl = tr & tl = es & u = http: //tr.wikipedia.org/wiki/Okey

Entonces, ¿qué algoritmo de IA que puedo usar? Busqué la teoría minimax y la poda alfa beta. Pero estas teorías son generalmente sobre el juego de 2 jugadores como el ajedrez o el tic-tac-toe.

La pregunta original está en stackoverflow: /programming/4419628/creating-a-board-game-ai

bahadir arslan
fuente
1
Puede usar muchos algoritmos de IA, por lo que "cuál" es una compensación de diseño (o posiblemente de ingeniería). ¿Quieres una IA "perfecta" que pueda "resolver" el juego (es decir, jugar de manera óptima)? ¿O quieres una IA de "juego" que juegue lo suficientemente bien como para no avergonzarse, pero lo suficientemente débil como para ser vencible (especialmente si quieres varios niveles de dificultad)? ¿O simplemente quieres una IA "tonta" que juegue sin lógica para que puedas probar el juego? Muchas opciones, ninguna inherentemente correcta o incorrecta.
Ian Schreiber
Creo que necesitaría un algoritmo desarrollado específicamente para este problema, aunque es posible que pueda usar varias técnicas / algoritmos dentro de él. Puede obtener una buena respuesta en ai.stackexchange.com
Matthew Read
@ Ian, quiero que la IA pueda jugar un juego aceptable. Puede ser más tarde puedo agregar niveles de dificultad. Entonces necesito un punto de partida. @Matethew agregaré mi pregunta allí. Gracias a todos.
bahadir arslan
¡Ay! Parece que ai.stackexchange.com estaba cerrado, aunque ese habría sido el lugar perfecto para preguntar ... triste.
bummzack
Las versiones multijugador más conocidas de minmax son MaxN y Paranoid Search
Druzil

Respuestas:

3

Si intercambias fichas por cartas, la descripción del juego suena increíblemente similar al juego de cartas Gin Rummy. Es posible que pueda encontrar algunos recursos de IA directos al buscar en contra de eso.

Una opción para AI que es independiente del número de jugadores y puede usarse para crear diferentes personalidades de AI:

  1. Juega el juego de mesa, idealmente con algunos amigos, aunque puedes jugar todas las manos tú mismo, pero con una computadora a mano y Excel abierto.
  2. Habla y carga cuál es tu proceso de pensamiento. Habrá una serie de puntos discretos que tendrá en cuenta al tomar una decisión. Cosas como "¿el mosaico no deseado me da un conjunto jugable" o "acercarme a un conjunto" o "agregar a un conjunto jugable existente".
  3. Luego, una vez que tenga la lista de todos los elementos que considera al tomar una decisión sobre qué mosaico recoger y qué mosaico descartar, comience a crear pesos de números para ellos en función de lo que es más importante para usted.
    1. Ejemplo: puede ser tres veces más importante para usted obtener el tercer mosaico en una secuencia que obtener el cuarto mosaico en una secuencia existente.
  4. Una vez que tenga todos estos pesos para todas las cosas que mira al tomar una decisión, puede usar Excel para calcular una puntuación para cada acción. Entonces tiene una hoja de trabajo donde cada fila representa una opción de acción y cada columna representa un factor decisivo. Si ese factor es verdadero para esa acción, lo multiplica por el peso, si ese factor es falso, lo puntúa a cero. Luego sumas todos los puntajes y el que tiene el valor más alto es lo que la IA elegirá hacer.
  5. Juega el juego con Excel abierto. Cada turno vea si el resultado del puntaje coincide con el resultado que usted elegiría. Si no ajusta los pesos en función de su pensamiento hasta que lo haga. Después de varios juegos, la IA debería jugar el juego de la misma manera que tú. Si has estado jugando constantemente con un grupo de amigos que tienen pesos diferentes, entonces tendrás IA con varias personalidades.

A continuación, puede controlar la dificultad no siempre seleccionando la opción mejor calificada. Como cuanto menor es el puntaje, peor es la decisión.

Wkerslake
fuente
Aquí hay un artículo sobre la creación de IA para Gin Rummy. Podría probar algunas ideas útiles. aifactory.co.uk/newsletter/2007_02_imperfect_info.htm
Tim Holt
Lo veré lo antes posible. Gracias @Tim Holt y @skerslake
bahadir arslan
También buscaría estrategias MahJongg. No está tan estrechamente relacionado, pero aún está cerca.
Loren Pechtel el