2012-07-28 7 views
5

Quiero probar algunas tácticas de juego de cartas entre sí, mi objetivo es saber que la táctica de bruja sería mejor en la vida real. Para hacer esto hice una simulación, pero no sé si hice una buena. Entonces me gustaría saber cómo crear una buena simulación.Encuentra la mejor táctica de juego contra otra táctica, por ejemplo, en el juego de cartas Toepen

No se puede simular cada factor que se presiona en la vida real, por ejemplo, faroles. También hay algunos factores que se pueden eliminar, eliminé la mayor cantidad posible. Los factores que quedan, como el farol, están fuera del alcance. Es imposible simular eso.

Utilizo mi proyecto de simulación para comparar algunas tácticas entre sí. De esta forma, puede ver qué táctica puede usar contra otra táctica. La desventaja de esto es que solo puedes usar esto si conoces la táctica del otro jugador. Cuando no sabe qué táctica puede usar en su contra, necesita una computadora para probarla. Entonces, solo puedes usar este proyecto para revisar tu estilo de juego.

Esta pregunta no se trata de crear una "táctica de dios", sino de escribir un buen software de simulación que pueda usarse para simular, por ejemplo, juegos de cartas. Así que me gustaría saber cómo se puede hacer una buena simulación:

  • ¿Qué tengo que tomar a lo largo?
  • ¿Cómo puedes saber que tu simulación es una buena simulación?
  • ¿Cómo debo procesar situaciones? Genere, por ejemplo, algunas manos aleatorias, o pruebe todas las posibilidades.
+0

¿Podría quizás reescribir su pregunta a un enfoque más general? Me gustaría saber más acerca de cómo podrías hacer una buena simulación. – Dagob

Respuesta

4

Respuestas a sus tres preguntas:

  1. factores como tarjetas peguen entre sí y diferentes técnicas de reproducción aleatoria realmente no debería importar. Supongo que modelaría la mezcla usando una fuente de ruido pseudoaleatorio (como rand()) para aleatorizar el orden de las cartas. La mayoría de las técnicas de mezcla son probablemente lo suficientemente buenas como para ser un modelo perfectamente adecuado para tus propósitos.

  2. No conozco el juego lo suficiente como para saber cómo se pueden describir las estrategias. La prueba que describió debe responder la pregunta de cuál de esas tácticas ganará cuando compitan cara a cara. Si esas son las dos únicas estrategias, y son lo suficientemente simples como para poder implementarlas por completo, entonces sí, su prueba le dirá cuál es mejor. Si este juego es como la mayoría de esos juegos e involucra muchas estrategias y sutilezas diferentes, entonces saber cuál de estas dos estrategias ganará cuando las dos se pongan cara a cara probablemente no le diga mucho acerca de cuál es realmente la mejor estrategia.

  3. Básicamente cubrí esto en mi respuesta a tu segunda pregunta, pero si has programado las tácticas al 100% correctamente, entonces los resultados del bot cara a cara serán útiles porque te dirán cuál de esos dos las estrategias ganarán más a menudo cuando compitan cara a cara. Creo que en la mayoría de los juegos como este, sin embargo, eso solo no dice mucho acerca de cuán buena es la estrategia en general. Una vez más, no sé lo suficiente sobre este juego para decirlo con certeza, pero si el juego involucra muchas estrategias posibles, la prueba probablemente no diga mucho que sea súper útil.

2

No puede probar nada con este tipo de simulación. Todo lo que realmente se está apoyando es que la simulación A es mejor que B, pero no cómo funcionarían en el mundo real o contra otras estrategias de .

Puede obtener una idea general de lo que podría funcionar mejor o peor, pero eso es todo.

+2

Ni siquiera lo sabes. Si tiene una carrera con simulación A frente a simulación B con A ganando, entonces solo ahora, esa Simulación A ganó una vez. Esto podría ser, porque la simulación A es superior o simplemente por accidente. Esas ejecuciones son [no deterministas] (http://en.wikipedia.org/wiki/Deterministic_algorithm#What_makes_algorithms_non-deterministic.3F). Tienes que repetirlos y hacer algunas estadísticas. –

1

Mi respuesta no se basa en la investigación, sino en cómo pienso en simular tácticas en un ámbito pequeño.

Esta es la forma en que hice mi simulación:

Lo primero que tiene que hacer es asegurándose de que se puede poner en práctica las tácticas que desea comparar. Si no hay manera de que pueda programarlos, entonces no hay forma de que pueda probarlos por su cuenta.

Escriba el alcance de la prueba en, podría ampliar su proyecto cada vez que tenga una idea nueva. Cuando haces eso estás creando un proyecto que nunca terminará. Marque lo que desea hacer y considere todas las opciones. Bluffing es un buen ejemplo. Es casi imposible implementar una simulación de bluff, se podría calcular la cantidad de posibilidades de ganar, pero una persona normal bluff, por ejemplo, cuando piensa que otras personas pasarán o que él ganará. Es mucho trabajo implementar "sentimientos" en un programa. No todos tienen las mismas sensaciones sobre faroles. Pero podrías hacer diferentes conjuntos de bluff (sentimientos) y dejar que el robot los use con cada táctica. Esto será mucho trabajo, en mi caso esto no valió la pena.

Descubre cómo quieres comparar las tácticas. ¿Desea saber cuánto% de cambio tiene que ganar? ¿O quieres hacer algunos juegos al azar por alguna otra razón?

Hay dialectos más de cada juego, descubre qué conjunto de reglas quieres seguir. Implementa esas reglas. La simulación será incorrecta cuando no hagas esto.

Implemente todas las tácticas, y use las mismas funciones tanto como sea posible. De esta manera estás probando las funciones principales automáticamente. Con este enfoque, puedes terminar antes y encontrarás errores que nunca habrías encontrado.

Pruebe el sistema. Las pruebas son muy importantes al simular. Un pequeño problema puede causar un resultado incorrecto. Recorre tu código con un depurador para saber si funciona. Haz un "modo de depuración", muestra en este modo los resultados de cada juego y revísalos. También permite que otras personas revisen cómo se juegan los juegos.

0

En sus más detalles de la solicitud le preguntas:

¿Qué es importante?

¿Cómo se puede hacer una buena simulación?

¿Cómo se puede saber que es relevante en una situación real?

La respuesta a la primera pregunta solo puede ser respondida por un experto en el juego; crear IA no es una tarea fácil y para crear una gran inteligencia artificial debes saber todas las estrategias del juego y debes programar esas estrategias.Entonces, o necesita saber cuándo usar esas estrategias o, en el caso de lo que está tratando de determinar, haga que la computadora pase por todas las combinaciones.

Hacer buenas simulaciones depende en gran medida de lo que se intenta lograr. Podrías seguir el método del Ajedrez y hacer que la IA desarrolle todos los escenarios posibles y elegir los mejores. En efecto, esto eliminaría las estrategias del juego por completo, pero también podría dar lugar a algunas nuevas; pero los buenos programas de ajedrez usan libros de apertura y lo que no. Para simular la vida real, probablemente quieras usar alguna combinación de estrategias y jugar todos los movimientos posibles según la situación.

Además, dices que no puedes fanfarronear, pero eso no es necesariamente cierto. Si se trata de una estrategia en el juego, probablemente debas programar faroles e intentar programar en respuesta a faroles. Si va a hacer eso, deberá implementar una habilidad de faroles y detectar la habilidad de faroles y también un porcentaje de faroles. Con eso, también podrías aprender con qué frecuencia los faroles pueden ser útiles para un determinado nivel de habilidad de la vida real. Si implementa faroles, probablemente quiera ejecutar su simulación con o sin ella.

Para probar su simulador, y asegurar que sea preciso para la vida real, le aconsejaría tener la computadora frente a todas las combinaciones/resultados conocidos y asegurar que los resultados sean los mismos que vería en la vida real. Después de eso, comience a completar el ciclo, pero aumente las pruebas lentamente, solo ejecute algunas estrategias al principio y verifique los resultados, luego agregue algunos más. Si pones todas las estrategias desde el principio, te será muy difícil descubrir que una de ellas no funciona correctamente.

+0

Pero, ¿cómo implementarías faroles entonces? Podrías hacer algunos tipos de faroles, pero hay muchas razones por las cuales alguien fanfarronearía en cierta situación. Además de eso, en la vida real hay muchas otras razones por las que fanfarronearías. Por ejemplo: puedes detectar algo que hace cuando está "mintiendo". Sé que un muy buen cuerpo necesita tener una "implementación faroleante". Pero cuando realmente quiere implementar eso, tendrá mucho trabajo para hacer una buena implementación. Supongo que necesitas hacer un largo estudio sobre faroles para detectar un estilo de juego. – Laurence

+0

muy cierto - No conozco las características específicas del juego al que te refieres, pero si investigas algo sobre Poker AI, deberías ser capaz de encontrar buena información y poder usar eso como punto de partida si/cuando decide agregar faroles en la mezcla. –

Cuestiones relacionadas