Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

niveles de dificutad para un juego de ajedrez?

Iniciado por Mental, Febrero 09, 2018, 11:12:24 PM

Tema anterior - Siguiente tema
Febrero 09, 2018, 11:12:24 PM Ultima modificación: Febrero 09, 2018, 11:14:37 PM por Mental
Buenas, estuve creando desde hace un buen cacho de tiempo mogollon de sprites, diseno de niveles, panoramas, animaciones etc.. para un proyecto que.. llevaría demasiado tiempo en crearse  asi que me dije...vamos a hacer mejor algo mas facil en realizarse.. como un juego de ajedrez. 

De base soy autor/grafista y animador 2D. Mi punto fuerte esta en el dibujo, estudie Unity, compre libros, etc, pero es completamente inutil, mi mecanismo mental no fue programado para el c# (chiste malo). Asi que las dudas que posteare aqui sobre programacion, son para informarme, y no profundizarlas. ya me las apañare para buscar algun programador en un futuro.
 
este ajedrez sera algo bastante experimental, el juego obedece a otras leyes que el ganar/perder o matar/destruir, ...pero no voy a hablar mas sobre ello de momento, lo dejare en intriga. lo presentare en un futuro de manera mas completa.
 
de momento mi duda principal es: 
 
Como podria un programador programar los niveles de dificultad para un ajedrez?
 
porque vamos.. ya jugue en algunos juegos de ajedrez en modo hard y.. la com***dora me hacia jacke mates siempre sin que pudiera siquiera acabar con una sola ficha del rival! no es ue sea noob, es que era practicamente imposible, para programar algo asi hace falta ser un genio matematico o se podria copiar/pegar algun codigo de ajedrez ya hecho desde algun sitio web? 
 
disculpen mi ignorancia si este es el caso!^^' porque programar niveles de dificultad para cualquier juego que no sea el ajedrez como call of dutty o super mario.. ni pregunto! pero algo tan calculador y logico como un ajedrez.. help? 

Cita de: Mental date=1518214344vamos a hacer mejor algo mas facil en realizarse.. como un juego de ajedrez
   


AL CONTRARIO, un jugador de com***dora para un ajedrez requiere de inteligencia artificial q es uno de los temas mas avanzados q puedes estudiar en desarrollo de juegos
 
si quieres hacer un juego al q sea facil cambiarle la dificultad prueba con un tetris... puedes aumentar la velocidad a la q caen las piezas, o un poco mas dificil hacer escasas las piezas q le servirian al jugador

Cita de: Braltor date=1518215242AL CONTRARIO, un jugador de com***dora para un ajedrez requiere de inteligencia artificial q es uno de los temas mas avanzados q puedes estudiar en desarrollo de juegos
   
   
      si quieres hacer un juego al q sea facil cambiarle la dificultad prueba con un tetris... puedes aumentar la velocidad a la q caen las piezas, o un poco mas dificil hacer escasas las piezas q le servirian al jugador
   


vale pero.. no voy a pedir a nadie que me haga un AI de ajedrez, seria como una dictadura  fijo que no hay un codigo magico de AI que se puede copiar y pegar de alguna parte? :/

Febrero 09, 2018, 11:41:52 PM #3 Ultima modificación: Febrero 09, 2018, 11:43:29 PM por lightbug
Cita de: Mental date=1518214344porque vamos.. ya jugue en algunos juegos de ajedrez en modo hard y.. la com***dora me hacia jacke mates siempre sin que pudiera siquiera acabar
   


jesus, si jugaste al chessmaster en facil ya te das cuenta que es dificil, en dificil es imposible directamente
 
Cita de: Mental date=1518214344Como podria un programador programar los niveles de dificultad para un ajedrez?
   


Concuerdo con @Braltor, no elegiste el más fácil de los generos, pero podés hacer una trampita, ponele que hay un alfil en diagonal amenazando a una piez tuya, yo partiría de lo siguiente:
 
- prioridad de la pieza enemgia, si dicho alfil va a ir ciegamente a matar a un peón (dependiendo de la situación, claro) no es una jugada muy inteligente, en cambio, si tu pieza corresponde con la reina, o , dah, el rey, sería mucho más inteligente que se produzca dicho movimiento. En conclusión, cada pieza podrá tener una prioridad, pensalo como un "wanted" de las peliculas de vaqueros. Ahora, lo mismo se aplica con la pieza que va a realizar el movimiento, si podés matar a una pieza enemiga importante con un peón, mejor.
 
- iteraciones posteriores, una vez que la pieza hizo el movimiento, que pasa si se dio el tema de la prioridad anterior, pero dejo al descubierto a su rey, o a tu reina? ... es decir, podés simular 1 iteración del jugador contrario una vez que la IA elija mover tal pieza (vamos a seguir con el alfil), quizás al realizar una iteración le da que vos (jugador) le mata a la reina o rey, entonces suspende dicho movimiento y realiza otro, de la misma pieza. Este numero podrías aumentarlo a 10, pero las simulaciones que debe de hacer se incrementan mucho y puede ser un lío. Obviamente una vez los i movimientos de tal pieza queden desaprobados, se pasará a otra pieza.
 
Una vez tengas esto, como lo mínimo en implementar una IA de ajedrez (usando como punto de referencia lo que uno mismo hace al jugar al ajedrez) podés empezar a meter dificultad.
 
Yo pienso que los niveles de dificultad se pueden disfrazar modificando pequeñas partes de lo anterior, por ej, en vez de simular 2 iteraciones lo hacés con 0, entonces es un jugador que no presta atencion a situaciones futuras... o podés ignorar cada x jugadas una oportunidad obvia, como matar a la reina, simplemente "se lo perdio"... y las cosas que se te ocurran, pero tenés que tener una base solida del jugador IA experto para poder ir degradando el gameplay poco a poco.
 
 
 
 


Febrero 10, 2018, 12:18:15 AM #5 Ultima modificación: Febrero 10, 2018, 12:24:35 AM por Mental
muchas gracias @lightbug! y los demas por bajarme los pies en la tierra  como el chessMaster en dificil es practicamente... imposible! me imagine que era una inteligencia artificial que se podia copiar y pegar el codigo en cualquier juego, ignorancia la mia. creo que de momento sera mas sencillo hacer el juego en modo 2 jugadores. Y crear un modo single en un futuro con las dificultades easy y medium.

Un juego de ajedrez no es una inteligencia artificial. Inteligencia Artificial se entiende como un ente que va adquiriendo conocimientos mediante resultados. 
 
Más bien es una inteligencia simulada, se trata de algoritmos de evaluación. Cada ficha se evalua para, luego la pieza con más "puntos" obtenidos por la predicción de movimiento será elegida como la mejor apuesta. Se trata de un algoritmo lógico.
 
Si existen juegos de ajedrez con IA estos se ajustan a la dificultad de la persona, van adquiriendo las habilidades mediante tus movimientos y estrategias, esto si es complicado de programar, se conoce como red neuronal. 

Febrero 25, 2018, 08:25:14 PM #7 Ultima modificación: Febrero 25, 2018, 08:25:48 PM por lightbug
Cita de: francoe1 date=1519570407Un juego de ajedrez no es una inteligencia artificial. Inteligencia Artificial se entiende como un ente que va adquiriendo conocimientos mediante resultados. 
   
   
      Más bien es una inteligencia simulada, se trata de algoritmos de evaluación. Cada ficha se evalua para, luego la pieza con más "puntos" obtenidos por la predicción de movimiento será elegida como la mejor apuesta. Se trata de un algoritmo lógico.
   
   
      Si existen juegos de ajedrez con IA estos se ajustan a la dificultad de la persona, van adquiriendo las habilidades mediante tus movimientos y estrategias, esto si es complicado de programar, se conoce como red neuronal. 
   


A ver... vos sabés que todos nosotros sabemos que es así ... y todos nosotros sabemos que vos sabés que todos nosotros sabemos, entonces si todos nosotros sabemos que vos sabés que todos nosotros sabemos ...ehh....  para que complicar todo más?!, sino a partir de ahora tendríamos que llamar todo SI (Simulated Inteligence) y ... ah me olvidaba los namespaces que tienen AI ! alguien por favor quiere pensar un segundo en los namespaces!!
 
 
 
 

Cita de: francoe1 date=1519570407Si existen juegos de ajedrez con IA estos se ajustan a la dificultad de la persona, van adquiriendo las habilidades mediante tus movimientos y estrategias, esto si es complicado de programar, se conoce como red neuronal. 
   


no conozco ningun algoritmo de juego de ajedrez q aprenda del jugador, creo q todos usan un arbol de busqueda de jugadas q generan por si mismos con las reglas del juego, incluso el mas moderno q es AlphaGo hace esto (para el juego chino Go)... el nivel de dificultad deberian ajustarlo por la profundidad del arbol y talvez una probabilidad entre busqueda (listo) o movida al azar (tonto)
 
y bueno desde q no existe una buena definicion de inteligencia nadie sabe lo q significa inteligencia artificial

Cita de: lightbug date=1519586714A ver... vos sabés que todos nosotros sabemos que es así ... y todos nosotros sabemos que vos sabés que todos nosotros sabemos, entonces si todos nosotros sabemos que vos sabés que todos nosotros sabemos ...ehh....  para que complicar todo más?!, sino a partir de ahora tendríamos que llamar todo SI (Simulated Inteligence) y ... ah me olvidaba los namespaces que tienen AI ! alguien por favor quiere pensar un segundo en los namespaces!!
   
   
       
   
   
       
   


Jajajajaja - Gracias, me hiciste cagar de risa. 
 
 
 
Cita de: Braltor date=1519590406no conozco ningun algoritmo de juego de ajedrez q aprenda del jugador, creo q todos usan un arbol de busqueda de jugadas q generan por si mismos con las reglas del juego, incluso el mas moderno q es AlphaGo hace esto (para el juego chino Go)... el nivel de dificultad deberian ajustarlo por la profundidad del arbol y talvez una probabilidad entre busqueda (listo) o movida al azar (tonto)
   
   
      y bueno desde q no existe una buena definicion de inteligencia nadie sabe lo q significa inteligencia artificial
   


A ver.... La inteligencia artificial toma sediciones mediante el resultado de anteriores acciones, va "aprendiendo". 
 
Si encuentro el proyecto de ajedrez te lo comparto para que le pegues una mirada. 
 
Lógicamente es muy tonto hacer IA no simulada para un vídeo juego. Por lo cual se basa solo en acciones que ya está establecidas. Cómo por ejemplo las IA basadas en FSM.
 
Era solo un comentario para facilitar la búsqueda, si pones IA Chess no es lo mismo a Algoritmos chess. Proba y verás que los resultados son diferentes.
 
Fijate está fuente
 
https://chessprogramming.wikispaces.com/Neural+Networks
 
Cómo comentaste AlphaIA es de Google y funciona con ANNs - 

Cita de: Braltor date=1519590406y bueno desde q no existe una buena definicion de inteligencia nadie sabe lo q significa inteligencia artificial
   


La definición formal de la vida real es la que propone @francoe1, la entidad debe ser capaz de responder de manera diferente (se supone más eficiente) ante el mismo estímulo o tarea que se le asignó, (en este caso jugar al ajedrez ), si te ponés a pensar de aquí viene el concepto de estupidez, tenés el mismo estímulo pero respondes de igual manera, cosa que se podría dar tranquilamente en un escenario de SI ... aún así no creo que sea vital ponernos a definirla ahora pero no deja de ser interesante el concepto para implementarlo en juegos.
 
Hay un juego que tiene algo parecido, las partidas pasan y tus enemigos (que en teoría son imagenes de la protagonista) aprenden tus propios movimientos, no recuerdo el nombre del juego ni lo puedo encontrar , se que usaba unrealEngine nada más... hasta que punto esto es simulado o inteligente? la verdad no lo se

El ajedrez no necesita IA.
 
Te last guardián. En este título el perro utiliza redes neuronales, una semi IA.
 
Por ejemplo en juegos como Call of Duty ya se podría empezar a utilizar para los NPC una semi IA - esto no se utilizaba antes por problemas de hardware insuficiente. 
 
Tampoco es que un NPC basado en ANN sea un gran desafío de puede abstraer para ser utilizada solo las características necesarios e implementar propios algoritmos para las diferentes situaciones. 
 
Por ejemplo, en un FPS podemos hacer que nuestros NPC vayan directo al blanco y cuando lo tengan en mira disparen, pero si esto falla, la segunda vez trataría de buscar algún lugar para ponerse a cubierto. Podría conectarse con otros NPC para efectuar una estrategia más compleja, al tratarse de ANN el segundo NPC puede tomar otra decisión y el primero tendrá que evaluar una nueva operación. Al ser de esta manera el juego sería muy difícil de predecir. Y a esto se le puede llamar semi/IA. La IA más compleja está aplicada en la robótica y no es necesaria para vídeo juegos, ni siquiera es parecida. 
 
Pero existe un error de conceptos entre NPC (non player character) y IA - 
 
Los proyectos de ANN menos complejo sin para juegos de conducción - dejo un video 
 


   
eature=oembed" width="480">

 
 

Cita de: lightbug date=1519595565la entidad debe ser capaz de responder de manera diferente (se supone más eficiente) ante el mismo estímulo o tarea que se le asignó
   


esa definicion tambien corresponderia a un sistema caotico o aleatorio, por ejemplo el doble pendulo:
 

 
en serio q no existe una buena definicion de inteligencia, mucho menos una de IA
 
Cita de: francoe1 date=1519594486La inteligencia artificial toma sediciones mediante el resultado de anteriores acciones, va "aprendiendo".
   


eso es solo para el campo de "machine learning" q es una pequeña area de una gran area de investigacion (sin limites comprendidos) llamada inteligencia artificial... y una IA igual tendria q enfrentarse a nuestros propios monstruos: P vs NP
 
y como curiosidad ahora los desarrolladores de AlphaGo se estan enforcando en ganar en Starcraft...

Cita de: Braltor date=1519611473esa definicion tambien corresponderia a un sistema caotico o aleatorio, por ejemplo el doble pendulo:
   


Bueno, no del todo, te olvidaste la parte de eficiente .
 
Por ej, a que correspondería el caso de la com***dora que aprender a tocar clásico? hay algunos canales de youtube que se dedican a esto, brindan algoritmos de aprendizaje, algunos funcionan bastante mejores que otros. Aca dejo el un vid que recuerdo:
 


   
eature=oembed" width="480">

 
 

Cita de: lightbug date=1519619669Bueno, no del todo, te olvidaste la parte de eficiente .
   


eso esta muy bien puede ser una definicion mas completa
 
pero reconocer patrones y aprender no es todo lo q hace la inteligencia... tambien crea problemas, mapea soluciones con metaforas, y las resuelve creativamente, entre otras cosas
 
una IA actual puede componer musica o escribir un codigo fuente, pero no puede inventarse un problema como un proyecto de programacion, o inventar una solucion creativa
 
y eso es apenas la punta del iceberg, xq aun les queda tener eso llamado "conciencia" para lo q tampoco tenemos una definicion
 
x eso las IAs van a tener q enfrentarse a P vs NP para probar q tienen inteligencia, y como nosotros mismos no entendemos P vs NP vamos a estar lado a lado tratando de entenderlo...
 
y para los q les gusta estos temas como a mi aqui hay un estudio serio q enlaza la conciencia con el caos: https://translate.google.com/translate?sl=en&tl=es&js=y&prev=_t&hl=en&ie=UTF-8&u=https%3A%2F%2Ffuturism.com%2Fnew-study-links-human-consciousness-law-governs-universe%2F&edit-text=&act=url

Etiquetas: