18/02/2020, 03:21:08 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Homenaje a aladan
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Mejor jugada en el Dominó en C  (Leído 4992 veces)
0 Usuarios y 1 Visitante están viendo este tema.
leonardo09
Leonardo Andrés Jofré Flor
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 798

Leonardo Jofré


Ver Perfil WWW
« : 03/06/2008, 04:48:56 »

Me gustaria saber si alguien tiene idea de como hacer un programa que analice la mejor jugada en el dominó , es un proyecto de computacion muy interesante , podriamos hacer los programas y luego hacer una cmpetencia entre nosotros para ver quien manejó mejor las probabilidades en el software estadistico.
En línea

nunca seré buen matemático
Luis Fuentes
el_manco
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 45.967


Ver Perfil
« Respuesta #1 : 03/06/2008, 05:13:57 »

Hola

 Punto de partida (un tanto obvio):

 - Debes de analizar primero las jugadas posibles. Eso es lo fácil.
 - Luego asignar a cada una, cierta puntuación basada en lo "buena" que sea cada una de ellas. El criterio para hacer esto debe de dártelo alguien que sepa jugar bien al dominó. No es mi caso.
 
 Para nota:

 - Hacer que el sistema aprenda. La idea es que al final de la partida el ordenador retoque sus criterios (penalizándolos o bonificándolos) en función de si le llevaron o no a la victoria. Para ello debe de registar todas las jugadas que se han hecho a lo largo de la partida. La dificultad estriba en conseguir que el ordenador identifiqué jugadas similares, quedándose sólo con las significativamente distintas. En otro caso el número de combinaciones a analizar se hará inabarcable.

 - Ejemplo burdo de aprendizaje:

   Se trata del típico programa que juega al tonto-juego del tres en raya. Una forma curiosa de programarla es la siguiente. Se trata de no darle ni una sola norma para que juegue bien. En principio juega aleatoriamente y al final de cada partida, le da un puntito a aquellas jugadas que hizo si ganó o se lo resta si perdió. Esa puntuación va ponderando la probailidad de que escoja una u otra jugada.

 Pues bien hice el experimento y el resultado es bueno. La forma de que aprenda rápido es ponerlo a jugar contra si mismo (las partidas son casi instantáneas). Después de unas 80.000 partidas... tachán... ya jugaba perfecto.

 ¿Por qué es un ejemplo burdo? Por que en este caso se memorizan absolutamente todas las posibles jugadas ([texx]3^9[/texx]) (cuando lo programé en su día ni siquiera me preocupé de eliminar las simetrías). En cualquier juego mínimamente más complejo es IMPOSIBLE memorizar todas las combinaciones.

 Entonces en general no se puede pretender no dar ninguna norma previa, sino que hay que "dirigir" este proceso de aprendizaje.

Saludos.
En línea
leonardo09
Leonardo Andrés Jofré Flor
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 798

Leonardo Jofré


Ver Perfil WWW
« Respuesta #2 : 03/06/2008, 05:22:03 »

Depende el manco

imaginate , que tienes una matriz de 4x7 [texx](a_{i,j})[/texx], la cantidad de filas designa la cntidad de jugadores , y la cantidad de columnas los puntos de las cartas (0,1,2...6) , luego se hace un trabajo estadistico en la cual en esta matriz:

[texx]a_{0,0}=[/texx] la probabilidad de que el jugador [texx]1[/texx] , tenga la pinta [texx]0[/texx]
[texx]a_{1,3}=[/texx] la probabilidad de que el jugador [texx]2[/texx] , tenga la pinta [texx]3[/texx]
y así sucesivamente ...
de esta manera calcular la jugada que mas perjudaca a los oponentes sin perjudicarte a ti mismo.

Saludos, Leonardo Jofré
En línea

nunca seré buen matemático
Luis Fuentes
el_manco
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 45.967


Ver Perfil
« Respuesta #3 : 03/06/2008, 05:25:54 »

Hola

 ehhh.. bueno tu estás dando ya un criterio de buena jugada...me parece bien. Repito que para mi es un experto en dominó quien debe de opinar.

 Pero tu primera frase "depende el manco". ¿El qué depende? No sé de que hablas...

Saludos.
En línea
leonardo09
Leonardo Andrés Jofré Flor
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 798

Leonardo Jofré


Ver Perfil WWW
« Respuesta #4 : 03/06/2008, 05:27:21 »

Continuo...

Tampoco puedo esperar que el sistema adquiera estabilidad estadistica como para ponderar las jugadada mejor.

Imaginate que cuando un jugador pasa (o sea no puede jugar en su turno) , la probabilidad de que el tenga la pinta por la cual pasó se reduce a [texx]0[/texx] , por la cual la probabilidad de que los otros tengan esa pinta crece.

Hay que tomar muchas consideraciones , por eso propongo un concurso para verificar quien tomó en consideración el mejor algoritmo estadistico

Ademas ¿Sabes programar en C tambien?
En línea

nunca seré buen matemático
leonardo09
Leonardo Andrés Jofré Flor
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 798

Leonardo Jofré


Ver Perfil WWW
« Respuesta #5 : 03/06/2008, 05:30:03 »

Experto en dominó? , no creo que sea tan dificil

un experto en domino es aquellas persona que tiene la capacidad de contar las cartas haciendo perder jugadas a los contrincantes sin perjudicarse a si mismo ,
eso perfectamente lo puede hacer un programa en C
En línea

nunca seré buen matemático
Luis Fuentes
el_manco
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 45.967


Ver Perfil
« Respuesta #6 : 03/06/2008, 05:35:59 »

Hola

 En fin. Creo que no se me entendió mi primer mensaje. Era solo un esbozo, tu estás entrando en la parte "escoger la buena jugada" donde yo no entré. Ni voy a entrar.

 Si sé programar en C y me parece muy buena idea tu concurso. Aunque yo no voy a participar. No estoy para esos trotes.

Saludos.

P.D. No digo que no lo pueda hacer un programa en C, pero digo que alguien que sea bueno al dominó puede más rápidamente decir cuales son los buenos criterios. Ojo, porque hay más cosas: no es lo mismo perder puntuando poco que mucho...; se puede "cerrar" si nadie tiene jugada...; no te digo nada si se juega por parejas...

P.D.D. Tengo un amigo que es una máquina por cierto. Me apostó una vez que de 10 partidas me ganaba 8 o más. Y lo clavó. Por partida se entiende llegar a 100 puntos. Conste que yo soy muy malo, y no creáis que me planteó grandes cuestiones matemáticas para jugar...  :guiño:
En línea
Jabato
Visitante
« Respuesta #7 : 03/06/2008, 05:38:28 »

Este experimento se presta bien, creo, al uso de algoritmos genéticos para diseñar las mejores estrategias de juego, aunque me parece que el proyecto es bastante ambicioso y desde luego nada fácil de programar. No cabe duda de que es interesante si somos capaces de llevarlo a la practica aunque yo buscaría otro juego más sencillo, este parece bastante complicado. Razonar en el juego del dominó es muy difícil ya que hay que tener en cuenta en cada momento todas las jugadas realizadas por cada jugador a lo largo de la partida y saber interpretarlas correctamente. Yo conozco algo el juego y desde luego no es fácil jugar con un nivel medianamente aceptable.

Saludos, Jabato.
En línea
leonardo09
Leonardo Andrés Jofré Flor
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 798

Leonardo Jofré


Ver Perfil WWW
« Respuesta #8 : 03/06/2008, 05:40:31 »

el manco:
Te parece interesante con tus conocimientos de estadistica el hacer este tipo de concursos que hacen profundizar en la practica las probabilidades y no tanto en la teoría de papel y lapiz?
a mi me parece interezante ya que antes de programar hay que analizar la naturaleza del fenómeno , y eso en realidad es matemática aplicada.
En línea

nunca seré buen matemático
Luis Fuentes
el_manco
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 45.967


Ver Perfil
« Respuesta #9 : 03/06/2008, 05:42:54 »

Hola

 Que si, que si, que me parece interesante en serio. Lo que pasa es que lleva un tiempo que yo no tengo.

 Fíjate que Jabato, también opina que tampoco es tan fácil como parece. Otro matiz más que se me olvidó comentar, es que no llega con fijarse en si en la siguiente jugada voy a salir más o menos perjudicado, sino también preparse el terreno para las sucesivas.

 Tiene más miga de lo que parece, en serio...

Saludos.

P.D. Si haces un programa, lo pongo a jugar contra mi amigo: es un muy buen test.  :guiño:
En línea
leonardo09
Leonardo Andrés Jofré Flor
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 798

Leonardo Jofré


Ver Perfil WWW
« Respuesta #10 : 03/06/2008, 05:51:49 »

Perfecto , voy a ir escribiendo las lineas de codigo en el mismo foro , quizas sea una buena forma de empezar este foro de computación.

yo creo que hay que aplicar teoria de juego (así me conto un amigo)
Alguien sabe algo acerca de eso?
yo solo vi la pelicula de John Nash "Mente brillante"
En línea

nunca seré buen matemático
Jabato
Visitante
« Respuesta #11 : 03/06/2008, 06:47:30 »

Bien, yo empezaría por definir los parámetros que definen el juego, número de jugadores (2 ó 4), turno de jugadas y por generar el código de la dinámica del juego (reparto de fichas, etc) . Después debería realizarse un almacen histórico de jugadas para poderlo consultar cada vez que sea necesario, y por último definir las estrategias ... digamos básicas de cada jugador, cuando tratemos de mejorar esas estrategias ya decidiremos de que forma se pueden mejorar.

El tema tiene un tocao.

Saludos, Jabato.
En línea
leonardo09
Leonardo Andrés Jofré Flor
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Chile Chile

Mensajes: 798

Leonardo Jofré


Ver Perfil WWW
« Respuesta #12 : 06/06/2008, 21:54:58 »

Voy a empezar a escribir el código , los parametros van a ser las siguientes.


sea [texx]J_0 , J_1 , J_2 , J_3[/texx] los jugadores del dominó
sea [texx]0,1,2,3,4,5,6[/texx] los valores que se les puede asignar , a las cartas
sabemos que el espacio muestral de posibles cartas se define como[texx]\Omega:
{(m,n):m\wedge n=0,1,2,3,4,5,6\wedge m\neq{n}}[/texx]
 definimos la siguiente función [texx]N(i,j)=[/texx]
{la probabilidad de que el jugador i tenga la pinta j}
En línea

nunca seré buen matemático
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!