AI Challenge

A

Hola gente,

Hace poco descubri la web AI Challenge donde basicamente lo que tienes que hacer es programar la inteligencia de unas hormiguitas para luchar contra otras. Para ello en la web te puedes descargar el Starter Package en el lenguaje de programación que mas te guste y empezar a darle comportamientos "inteligentes a tus hormigas" como puede ser buscar comida o atacar a otras hormigas.

Una vez tienes algo programado, subes la versión al servidor se compila y empiezas a jugar contra otros bots.

Mi bot es este : http://aichallenge.org/profile.php?user=6048 si veis las repeticiones es bastante malillo y muchas veces mis hormigas se matan entre ellas. E.g: repeticion ultima partida, yo soy jomacel http://aichallenge.org/visualizer.php?game=32614&user=6048

Si alguien participa podríamos hacer un ranking mediavidero. Al principio cuesta enterarse de todo o como empezar, a si que si tenéis dudas puedo intentar resolverlas.

Básicamente te descargas el starter pack que suele venir con el código básico y clases para manejar el mapa o los movimientos. Dentro del fichero MyBot insertas el comportamiento de tus hormigas haciendo uso de las funciones que vienen definidas o puedes crear las tuyas propias, luego lo subes en un zip todo esperas a que compile en la web y entonces te mete en la cola de partidas para pelear con otros.

Ah se me olvidaba, tambien hay que descargarse los "tools" para probar el funcionamiento del bot en tu ordenador antes de subirlo.

Web : http://aichallenge.org/

2
Headhunt

Curioso. ¿es necesario saber progamación o algo más que la informática nivel usuario que conocemos la gran mayoría de los mortales?

1 respuesta
A

#2 Si , necesitas almenos saber programar lo basico para hacer que las hormigas se muevan, luego ya puedes utilizar algoritmos para buscar rutas optimas y demás movidas.

Nadie se atreve? Vaya exito!

Nucklear

Lo iba a postear yo el otro dia pero al final se me paso. Debería ir en el foro de Desarrollo y Diseño.

1 respuesta
A

#4 Ah, que lo muevan entonces. Tu estas participando?

1 respuesta
Nucklear

#5 Me gustaria hacerlo en python, pero no tengo micho tiempo. Lo interesante seria compartir entre varios el codigo para aprender.

1 respuesta
ItNaS

creo que voy a utilizar esto como excusa para aprender python de una puta vez xd

1
A

#6 Yo estoy con C# y bueno mi bot basicamente se mueve aleatoriamente o a buscar comida pero si hay una pared de por medio de la comida se queda la hormiga bloqueda.

Cuando tenga algo mas currado no me importaria compartirlo, mi intencion es meter un sistema que busque rutas hasta una posicion, asi almenos no se me bloquean en las paredes XD

Intentare con el algoritmo A: http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda_A (el el enlace se come el * final)

ItNaS

un A* o un D* crece exponencialmente, asegurate que no haya limitaciones de tiempo por turno (en robocode las hay) porque a la mínima que lo intentes con una posición algo lejana lo vas a flipar.

1 respuesta
A

#9 Si hay limitaciones de tiempo por turno :S, y de memoria hay limite de 1.5GB, quiza si me sobra tiempo en las primeras rondas puedo empezas a cachear posiciones a medida que voy descubriendo el mapa. Que opinas? Hay algun otro algoritmo mas eficiente para evitar obstáculos?

1 respuesta
elkaoD

#10 aunque cachées posiciones el camino tienes que recalcularlo desde cada nueva posición, y aunque cachées caminos entre pares de puntos, crece exponencialmente de nuevo así que no sólo tienes problemas de tiempo sino de memoria.

Yo usaría A* igualmente, porque por lo que he visto el juego tiene Fog of War, así que no deberías tener problemas para mandar las hormiguitas a lugares cercanos. Haz que las hormiguitas funcionen en "local" y punto, si quieres ir a lugares lejanos que sea explorando. Si es necesario lo de llegar a un lugar lejano, lo usaría en momentos puntuales, quizá para una hormiga exploradora que vaya abriendo camino a las demás.

El juego lo he visto un poco por encima, a lo mejor me meto, aunque me da algo de pereza. Ya he jugado a juegos de este tipo y todos pecan de lo mismo: son un puto coñazo xD Creo que su gran problema es que la mayoría acaban convirtiéndose en concursos de optimización de algoritmos trilladísimos en lugar de en el ingenio.

PiradoIV

Tremendo este hilo :'), habrá que darle caña en Ruby

Meleagant

Hace años estuve jugando a uno parecido con batallas de robots.

Podías darles instrucciones como desplazarse, crear otro robot, grabar instrucciones en la memoria de otro robot (amigo o enemigo, y esto daba mucho juego). Se programaba en un lenguaje parecido a ensamblador.

Me lo bajo y echo unas pruebecillas.

MacSpawn

Wiiiiiiiii me apunto!

1
12 días después
Tryptamine

A* solo tiende a ser exponencial en el peor caso, que viene a ser un laberinto. El comportamiento en un plano 2D es lineal respecto a la distancia, añadiendo obstáculos sencillos puede subirse a n² o n³, y no creo que sea buena idea usar objetivos múltiples porque aumenta mucho la complejidad y además me parece que es una mala estrategia para el juego.

2 respuestas
B

#15 no he entendido un carajo xDDD, me gustaría mucho participar pero me falta mucho mucho por saber...

A

Como lleváis vuestras hormigas? Poner por aquí vuestro perfil si presentais algo. Yo no he tenido tiempo aun de hacer nada serio

Yandr0s

Ostias acabo de descubir esto omg!

En cuanto saque tiempo diseñare mis ultrapoderosas hormigas para dominar el mundo MUAHAHAH

PiradoIV

Yo hice un par de pruebas hace una semana o así en Ruby, es súper entretenido pero a nada que cargues un mapa de los de maze... ya es algo más complicado xD, a ver si saco tiempo y trasteo con A* que no lo había tocado antes.

elkaoD

#15 cierto, quise decir potecial, no exponencial.

ItNaS

yo me he pillado un libro de python para aprender y irlo aplicando a este juego. mñn voy a buscarlo a correos que ganas!! xd

Yandr0s

Joder yo no consigo ni ejecutarlo xD He instalado un interprete de python, pero no me lo reconoce al ejecutar el tutorial, voy apañao asi xDD

eisenfaust

Dejo esto por aquí: https://www.ai-class.com/

1 respuesta
Idontknow

#23 Yo me puse a hacer ese cursillo y he durado poco...

Voy a probar a programar unas hormiguitas en Java xD

Thanat0s

Joooooooder, que mañana tengo que madrugar y justo veo esto ahora, me voy a poner a ver como va la cosa.

Ya contaré mis avances :D

Edit: vale demasiado tarde para ponerse ahora, que sino no duermo.
Añadido a favoritos y en mis ratos libres iré haciendo algo que me mola esto.

Edit2: me he vuelto a poner y el tutorial está guay, ahora ya toca pensar algo para mejorar todo esto.
Está chulo el challenge.

Usuarios habituales