Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-01-2010
gandalf85 gandalf85 is offline
Miembro
 
Registrado: dic 2009
Posts: 11
Poder: 0
gandalf85 Va por buen camino
Gracias por responder Ñuño

Va a estar difícil encontrar esos libros ya que no están en la biblioteca de mi ciudad pero “El libro gigante de los juegos para ordenador tiene buena pinta haber si lo encuentro en alguna librería y le puedo echar un vistazo mas detalladamente.

Nunca he sabido jugar al Reversi; Ponía Fichas y luego la maquina siempre convertía mis fichas pero yo las suyas no. supongo que es cuestión de leer las instrucciones…

A lo bruto ya lo había intentado:
-->Primero lo hice que moviera Aleatoriamente a una columna (Obviamente no tiene Inteligencia)
-->Luego hice que antes de mover comprobara si hay ya 3 del usuario y si encuentra 3 le tapa la 4 posición, sino las encuentra mueve Aleatoriamente (Sigue sin tener Inteligencia pero no es tan tonto)

La Idea es Ponerle Inteligencia para que El Ordenador también vaya a ganar…
Para ello lo mejor es utilizar la estrategia MiniMax porque te adelantas a las posibles jugadas eligiendo la combinación óptima… Aunque también se que esto le puede llevar mucho tiempo y que habría que mezclarlo con el Algoritmo de Poda. Pero de momento lo que me interesa saber es como hacer el árbol de estados.

Seguiré buscando información sobre el Algoritmo haber si me aclaro, porque encuentro mucha paginas que hablan sobre el pero en todas pone lo mismo;
es un árbol de exploración donde a partir de un estado inicial del tablero, se busca aquellos valores mínimos que maximicen la posibilidad de ganar para ello hay que considerar que tras la realización de una jugada MAX, viene una jugada MIN y tras la misma viene otra MAX y así sucesivamente hasta llegar al objetivo

Pero no se como valorar el tablero para buscar dichos valores. En otros juegos como el Ajedrez valoran las casillas según la ficha que hay en el tablero por ejemplo donde hay un peón (vale 1), caballo (2), Alfil (3)… Así saben donde están las piezas con mayor valor…

Si alguien sabe donde puede encontrar el algoritmo explicado paso a paso que lo diga; ya que informacion interesante si que he encontrado por google pero no una explicacion detallada.




Responder Con Cita
  #2  
Antiguo 10-01-2010
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 18
cocute Va por buen camino
Aqui tienes el codigo de un Conecta4 ya hecho con Inteligencia artificial, y muy chulo hasta con grágficos 3D
http://members.fortunecity.com/schut...tFour3DSrc.zip
(ademas compila sin problemas en cualquier delphi sin componentes de terceros)

aqui tienes un PDF con la explicacion del funcionamiento del conecta4, en ingles, pero......
http://www.farfarfar.com/games/conne...r/connect4.pdf


puedes mirar el codigo
pero vamos si es para algun trabajo mejor que lo intentes por tus medios aunque no quede tan sofisticado,
nadie se va a creer que ese juego lo has hecho tu.

aqui hablan de lo mismo y dan ideas de como hacerlo:
http://foro.hardlimit.com/programaci...a-4-11456.html

aqui tienes un ejemplo en delphi pero solo la base como ya tienes, pero quizas te de alguna idea nueva para la interface
source
http://delphi.about.com/library/code...nnect4_src.zip
ejecutable
http://delphi.about.com/library/code...nnect4_exe.zip

Última edición por cocute fecha: 10-01-2010 a las 16:54:21.
Responder Con Cita
  #3  
Antiguo 10-01-2010
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 28
Delphius Va camino a la fama
Hola gandalf85,

Al parecer, creo que estás confundiendo y mezclando lo que es el algoritmo MiniMax o Min-Max con la heurística.

El algoritmo Min-Max sólo se limita a obtener los mínimos y los máximos, tal como lo has descrito, explorando sus ramas y alternando Mínimos y Maximos. La heurística es cosa aparte. La heurística es quien te dá el valor, que luego el algoritmo Min-Max captura y los evalúa.

No es que el algoritmo Min-Max debe ajustarse al juego, mas bien es que debe definirse una heurística apropiada al juego.
El algoritmo es fijo, no cambia. Y si, es como dicen: se explora el árbol buscando máximos y/o mínimos. La poda alfa-beta ayuda a evitar recorrer ramas innecesarias.

No está demás limitar la profundidad. Prueba con 5 ramas, cuanto mucho, para empezar.

A ese juego la verdad es que nunca lo he entendido, por lo que no te sabría decir como podrías definir la heurística. Quizá puedas hacer una especie de ponderación entre la cantidad de piezas y espacios libres disponibles. Prueba con diferentes heurísticas y a ver que sale.

Las heurísticas del Ajedrez no son tan simples como piensas. No es una simple cuestión de la posición o valoración de las piezas. Son más de 40 o 50 variables (ya no recuerdo bien). Es más, ¡algunos diseñan sus algoritmos para ser capaces de cambiar de heurística sobre la marcha!

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
no conecta la BD megaredoxk Conexión con bases de datos 14 21-07-2008 17:33:55
Mysql no conecta en red !!!!!!!!!!!! david_uh Varios 7 16-07-2007 22:06:44
No me conecta IB en Internet tulio Firebird e Interbase 2 20-03-2007 16:07:26
Juego genial en línea GRATUITO! Amilius Humor 0 25-06-2004 22:45:53
¿Cómo borrar un grid sin tener que ir línea a línea? Isaac Varios 2 18-02-2004 16:13:14


La franja horaria es GMT +2. Ahora son las 16:25:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi