<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comentarios para Robotlego</title>
	<atom:link href="http://robotlego.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://robotlego.wordpress.com</link>
	<description></description>
	<lastBuildDate>Wed, 21 Oct 2009 20:51:10 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comentario de Polzic en ELECTROLEGO</title>
		<link>http://robotlego.wordpress.com/2009/05/31/electrolego/#comment-249</link>
		<dc:creator>Polzic</dc:creator>
		<pubDate>Wed, 21 Oct 2009 20:51:10 +0000</pubDate>
		<guid isPermaLink="false">http://robotlego.wordpress.com/?p=372#comment-249</guid>
		<description>Muy buen blog! Te invito a visitar el mío!

www.legosargentina.blogspot.com 

Muchas gracias!

Tambien estamos en Facebook, hacete fan de Legos Argentina</description>
		<content:encoded><![CDATA[<p>Muy buen blog! Te invito a visitar el mío!</p>
<p><a href="http://www.legosargentina.blogspot.com" rel="nofollow">http://www.legosargentina.blogspot.com</a> </p>
<p>Muchas gracias!</p>
<p>Tambien estamos en Facebook, hacete fan de Legos Argentina</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de jorge en Descubriendo el laberinto: Resumen (Aporte final)</title>
		<link>http://robotlego.wordpress.com/2008/06/16/descubriendo-el-laberinto-resumen-aporte-final/#comment-248</link>
		<dc:creator>jorge</dc:creator>
		<pubDate>Mon, 12 Oct 2009 16:06:18 +0000</pubDate>
		<guid isPermaLink="false">http://robotlego.wordpress.com/2008/06/16/descubriendo-el-laberinto-resumen-aporte-final/#comment-248</guid>
		<description>necesito saber que codigo utilizaste para que encuentre la ruta mas corta, estoy trabajando en un proyecto con lejos nxt y quiero hacer un trabajo similar. Porfavor si puedes compartir el código.</description>
		<content:encoded><![CDATA[<p>necesito saber que codigo utilizaste para que encuentre la ruta mas corta, estoy trabajando en un proyecto con lejos nxt y quiero hacer un trabajo similar. Porfavor si puedes compartir el código.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de LuxARTS en NXT MOBILE APPLICATION</title>
		<link>http://robotlego.wordpress.com/2009/05/31/nxt-mobile-application/#comment-247</link>
		<dc:creator>LuxARTS</dc:creator>
		<pubDate>Wed, 07 Oct 2009 22:35:06 +0000</pubDate>
		<guid isPermaLink="false">http://robotlego.wordpress.com/?p=361#comment-247</guid>
		<description>Hola! bueno te cuento, lo probe en mi nopkia 5200 y anda super! el problemita, muy tonto, es que no entra la aplicacion en la pantalla por lo que se ve asta donde alcanza y lo que falta no lo muestra... yo ya se como es asi que no nescecito ver la pantalla :P Saludos y muchas gracias por el programita!</description>
		<content:encoded><![CDATA[<p>Hola! bueno te cuento, lo probe en mi nopkia 5200 y anda super! el problemita, muy tonto, es que no entra la aplicacion en la pantalla por lo que se ve asta donde alcanza y lo que falta no lo muestra&#8230; yo ya se como es asi que no nescecito ver la pantalla <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  Saludos y muchas gracias por el programita!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Leyna en Descubriendo el laberinto: Resumen (Aporte final)</title>
		<link>http://robotlego.wordpress.com/2008/06/16/descubriendo-el-laberinto-resumen-aporte-final/#comment-246</link>
		<dc:creator>Leyna</dc:creator>
		<pubDate>Mon, 28 Sep 2009 14:45:24 +0000</pubDate>
		<guid isPermaLink="false">http://robotlego.wordpress.com/2008/06/16/descubriendo-el-laberinto-resumen-aporte-final/#comment-246</guid>
		<description>Hola, le cuento que estoy programando mi lego, pero cuando utilizo lal clase pilot me genera error al momento de compilar . 
Deseo saber porque es el problema.
Ademas tengo problemas al calibrar el sensor de luz, necesito una mano. Gracias</description>
		<content:encoded><![CDATA[<p>Hola, le cuento que estoy programando mi lego, pero cuando utilizo lal clase pilot me genera error al momento de compilar .<br />
Deseo saber porque es el problema.<br />
Ademas tengo problemas al calibrar el sensor de luz, necesito una mano. Gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de teko en Tutorial, Como instalar y correr Java con un robot Lego Mindstorms NXT usando Eclipse (metodo alternativo)</title>
		<link>http://robotlego.wordpress.com/2008/06/15/tutorial-como-instalar-y-correr-java-con-un-robot-lego-mindstorms-nxt-usando-eclipse-metodo-alternativo/#comment-242</link>
		<dc:creator>teko</dc:creator>
		<pubDate>Mon, 20 Jul 2009 02:08:49 +0000</pubDate>
		<guid isPermaLink="false">http://robotlego.wordpress.com/?p=11#comment-242</guid>
		<description>a la conexion es en bluetooth</description>
		<content:encoded><![CDATA[<p>a la conexion es en bluetooth</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de teko en Tutorial, Como instalar y correr Java con un robot Lego Mindstorms NXT usando Eclipse (metodo alternativo)</title>
		<link>http://robotlego.wordpress.com/2008/06/15/tutorial-como-instalar-y-correr-java-con-un-robot-lego-mindstorms-nxt-usando-eclipse-metodo-alternativo/#comment-241</link>
		<dc:creator>teko</dc:creator>
		<pubDate>Mon, 20 Jul 2009 02:07:56 +0000</pubDate>
		<guid isPermaLink="false">http://robotlego.wordpress.com/?p=11#comment-241</guid>
		<description>hola, quiero hacer yo la propia conexion con el controlador en lenguaje java, pero solo me falta el modulo de conexion entre celular y controlador de lejo tiene idea de comop hacerlo</description>
		<content:encoded><![CDATA[<p>hola, quiero hacer yo la propia conexion con el controlador en lenguaje java, pero solo me falta el modulo de conexion entre celular y controlador de lejo tiene idea de comop hacerlo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de meliza en Tutorial de Conexión Paralela de 2 robots Mindstorms NXT vía Bluetooth</title>
		<link>http://robotlego.wordpress.com/2008/05/25/tutorial-de-conexion-paralela-de-2-robots-mindstorms-nxt-via-bluetooth/#comment-240</link>
		<dc:creator>meliza</dc:creator>
		<pubDate>Fri, 10 Jul 2009 23:44:23 +0000</pubDate>
		<guid isPermaLink="false">http://robotlego.wordpress.com/?p=8#comment-240</guid>
		<description>hola, sabes hemos implementado lo que sale en el video que funciona perfectamentamente, solo los motores de los robots, sin embargo al querer utilizar los sensoresr(ultrasonicsensor) en esos robots arroja errores que son los siguientes:

Exception in thread &quot;AWT-EventQueue-0&quot; java.lang.NullPointerException 	
at icommand1.nxt.comm.NXTCommand.sendRequest(NXTComma
nd.java:642)
at  icommand1.nxt.comm.NXTCommand.setInputMode(NXTComma
nd.java:411)
at icommand1.nxt.SensorPort.setTypeAndMode(SensorPort.java:34)
at icommand1.nxt.I2CSensor.(I2CSensor.java:52)
at icommand1.nxt.UltrasonicSensor.(UltrasonicSensor.java:78)
at robot1.(robot1.java:13)
at partida$1.actionPerformed(partida.java:29)

partida es nuestra clase que contiene el main, que llama a robot 1y 2

Por favor si es posible que nos ayudes o el codigo de los icommand duplicados,
saludos,respondeme al mail por favor nefesh1820@yahoo.es</description>
		<content:encoded><![CDATA[<p>hola, sabes hemos implementado lo que sale en el video que funciona perfectamentamente, solo los motores de los robots, sin embargo al querer utilizar los sensoresr(ultrasonicsensor) en esos robots arroja errores que son los siguientes:</p>
<p>Exception in thread &#8220;AWT-EventQueue-0&#8243; java.lang.NullPointerException<br />
at icommand1.nxt.comm.NXTCommand.sendRequest(NXTComma<br />
nd.java:642)<br />
at  icommand1.nxt.comm.NXTCommand.setInputMode(NXTComma<br />
nd.java:411)<br />
at icommand1.nxt.SensorPort.setTypeAndMode(SensorPort.java:34)<br />
at icommand1.nxt.I2CSensor.(I2CSensor.java:52)<br />
at icommand1.nxt.UltrasonicSensor.(UltrasonicSensor.java:78)<br />
at robot1.(robot1.java:13)<br />
at partida$1.actionPerformed(partida.java:29)</p>
<p>partida es nuestra clase que contiene el main, que llama a robot 1y 2</p>
<p>Por favor si es posible que nos ayudes o el codigo de los icommand duplicados,<br />
saludos,respondeme al mail por favor <a href="mailto:nefesh1820@yahoo.es">nefesh1820@yahoo.es</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Henry Ixcot - 200312355 en Simulador de robots</title>
		<link>http://robotlego.wordpress.com/2009/06/14/simulador-de-robots/#comment-239</link>
		<dc:creator>Henry Ixcot - 200312355</dc:creator>
		<pubDate>Thu, 09 Jul 2009 06:41:16 +0000</pubDate>
		<guid isPermaLink="false">http://robotlego.wordpress.com/?p=409#comment-239</guid>
		<description>es un proyecto innovador para el aprendizaje del lenguaje java, tener nociones de programacion en java facilita muchisimos la programacion de un robot inicial, como bien dicen, crear un robot ganador es otra cosa. en la Clase de Inteligencia Artificial 1, en la facultad de ingenieria de la USAC, Guatemala, nos dejaron un proyecto sobre este simulador de batallas, 

inicialmente creamos un articulo introducctorio para robocode, el cual pueden bajar de:
- http://rapidshare.com/files/253680334/200312355_fase1.pdf.html

y un video sobre este articulo:
 - http://rapidshare.com/files/249196173/200312355_fase2.avi.html


luego en la siguiente fase, abordamos temas sobre posibles estrategias que podemos aplicar en robocode, ademas de un ejemplo paractico, del cual se realizo un aritculo que pueden descargar de:

y los videos sobre este articulo, los pueden ver en:
- http://www.youtube.com/watch?v=V8_Fl47jlDA      parte 1
- http://www.youtube.com/watch?v=c8Q1EF7-bSQ  parte 2
- http://www.youtube.com/watch?v=24_jWETo2IY     parte 3

inicialmente programar el robot es, adictivo, pero se llega a un punto en el cual las estrategias que se han utilizado no han funcionado bien, o siempre pierden contra algun robot en especial, pero no hay que desaminarse, lo mejor es iniciar a utilizar la clase ADVANCEDROBOT, para empezar a mejorar las acciones de nuestro robot, fase en la que necesitamos mas conocimientos de java, pero al seguir insistiendo obtendremos la satisfaccion de destruir a nuestro enemigos.

finalmente, les animos a programar su robot, espero que les ayuden los tutoriales (articulos) y para que se diviertan tambien incluyan mi robot inicial, que lo pueden bajar de:
- http://rapidshare.com/files/253682908/dictions.Jazz_1.0.jar.html</description>
		<content:encoded><![CDATA[<p>es un proyecto innovador para el aprendizaje del lenguaje java, tener nociones de programacion en java facilita muchisimos la programacion de un robot inicial, como bien dicen, crear un robot ganador es otra cosa. en la Clase de Inteligencia Artificial 1, en la facultad de ingenieria de la USAC, Guatemala, nos dejaron un proyecto sobre este simulador de batallas, </p>
<p>inicialmente creamos un articulo introducctorio para robocode, el cual pueden bajar de:<br />
- <a href="http://rapidshare.com/files/253680334/200312355_fase1.pdf.html" rel="nofollow">http://rapidshare.com/files/253680334/200312355_fase1.pdf.html</a></p>
<p>y un video sobre este articulo:<br />
 &#8211; <a href="http://rapidshare.com/files/249196173/200312355_fase2.avi.html" rel="nofollow">http://rapidshare.com/files/249196173/200312355_fase2.avi.html</a></p>
<p>luego en la siguiente fase, abordamos temas sobre posibles estrategias que podemos aplicar en robocode, ademas de un ejemplo paractico, del cual se realizo un aritculo que pueden descargar de:</p>
<p>y los videos sobre este articulo, los pueden ver en:<br />
- <a href="http://www.youtube.com/watch?v=V8_Fl47jlDA" rel="nofollow">http://www.youtube.com/watch?v=V8_Fl47jlDA</a>      parte 1<br />
- <a href="http://www.youtube.com/watch?v=c8Q1EF7-bSQ" rel="nofollow">http://www.youtube.com/watch?v=c8Q1EF7-bSQ</a>  parte 2<br />
- <a href="http://www.youtube.com/watch?v=24_jWETo2IY" rel="nofollow">http://www.youtube.com/watch?v=24_jWETo2IY</a>     parte 3</p>
<p>inicialmente programar el robot es, adictivo, pero se llega a un punto en el cual las estrategias que se han utilizado no han funcionado bien, o siempre pierden contra algun robot en especial, pero no hay que desaminarse, lo mejor es iniciar a utilizar la clase ADVANCEDROBOT, para empezar a mejorar las acciones de nuestro robot, fase en la que necesitamos mas conocimientos de java, pero al seguir insistiendo obtendremos la satisfaccion de destruir a nuestro enemigos.</p>
<p>finalmente, les animos a programar su robot, espero que les ayuden los tutoriales (articulos) y para que se diviertan tambien incluyan mi robot inicial, que lo pueden bajar de:<br />
- <a href="http://rapidshare.com/files/253682908/dictions.Jazz_1.0.jar.html" rel="nofollow">http://rapidshare.com/files/253682908/dictions.Jazz_1.0.jar.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Luis Gálvez [2005 11740] en Simulador de robots</title>
		<link>http://robotlego.wordpress.com/2009/06/14/simulador-de-robots/#comment-238</link>
		<dc:creator>Luis Gálvez [2005 11740]</dc:creator>
		<pubDate>Thu, 09 Jul 2009 06:11:47 +0000</pubDate>
		<guid isPermaLink="false">http://robotlego.wordpress.com/?p=409#comment-238</guid>
		<description>[Robocode]
Robocode es un API para Java muy versátil y robusto y es utilizado para fines educativos por varias razones. El primer objetivo de Robocode es aprender Java pero la razón que más no compete es la posibilidad de simular poderosos algoritmos de Inteligencia Artificial sobre está plataforma. Este juego no es online pero aún así con la llegada de la computación ubicua se pueden organizar batallas entre amigos programadores de sus propios robots o incluso, desde el wiki podremos retar a más de alguien interesado en demostrar
que su robot puede vencer al nuestro. Lo interesante de Robocode es que todo nivel de programadores puede participar, no excluyendo así a los newbies, que también pueden aprender Java jugando y aprovechando el espiritu de competencia que todos llevamos dentro para ponerle la pasión necesaria y aprender
jugando.
[Estrategia]
La estrategia que utilice durante el desarrollo de mi robot fué básicamente incluir en el comportamiento un movimiento que fuera dificil de seguir, y dependiendo del árbol de decisión, dicho movimiento e incluso la forma de apuntar y disparar cambiaran de acuerdo a las necesidades de la batalla.

[Videos]
A continuación dejo unos videos introductorios a Robocode.

Primera Parte
http://www.youtube.com/watch?v=WZSFiBVSsmw
Segunda Parte
http://www.youtube.com/watch?v=8ZbRHui6DHQ</description>
		<content:encoded><![CDATA[<p>[Robocode]<br />
Robocode es un API para Java muy versátil y robusto y es utilizado para fines educativos por varias razones. El primer objetivo de Robocode es aprender Java pero la razón que más no compete es la posibilidad de simular poderosos algoritmos de Inteligencia Artificial sobre está plataforma. Este juego no es online pero aún así con la llegada de la computación ubicua se pueden organizar batallas entre amigos programadores de sus propios robots o incluso, desde el wiki podremos retar a más de alguien interesado en demostrar<br />
que su robot puede vencer al nuestro. Lo interesante de Robocode es que todo nivel de programadores puede participar, no excluyendo así a los newbies, que también pueden aprender Java jugando y aprovechando el espiritu de competencia que todos llevamos dentro para ponerle la pasión necesaria y aprender<br />
jugando.<br />
[Estrategia]<br />
La estrategia que utilice durante el desarrollo de mi robot fué básicamente incluir en el comportamiento un movimiento que fuera dificil de seguir, y dependiendo del árbol de decisión, dicho movimiento e incluso la forma de apuntar y disparar cambiaran de acuerdo a las necesidades de la batalla.</p>
<p>[Videos]<br />
A continuación dejo unos videos introductorios a Robocode.</p>
<p>Primera Parte<br />
<a href="http://www.youtube.com/watch?v=WZSFiBVSsmw" rel="nofollow">http://www.youtube.com/watch?v=WZSFiBVSsmw</a><br />
Segunda Parte<br />
<span style="text-align:center; display: block;"><a href="http://robotlego.wordpress.com/2009/06/14/simulador-de-robots/"><img src="http://img.youtube.com/vi/8ZbRHui6DHQ/2.jpg" alt="" /></a></span></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cristian Acu - 200412794 en Simulador de robots</title>
		<link>http://robotlego.wordpress.com/2009/06/14/simulador-de-robots/#comment-236</link>
		<dc:creator>Cristian Acu - 200412794</dc:creator>
		<pubDate>Thu, 09 Jul 2009 04:37:09 +0000</pubDate>
		<guid isPermaLink="false">http://robotlego.wordpress.com/?p=409#comment-236</guid>
		<description>RoboCode es un simulador de combates entre robot-tanques desarrollado por Mathew Nelson para IBM Alphaworks en 2001. Es una aplicación desarrollada en Java, se emplea un enfoque orientado a objetos en el que el robot es avisado mediante la invocación de sus métodos. El codigo es libre y se puede descargar del sitio http://robocode.souceforge.net, la version actual es la 1.7.

La gran ventaja de ser codigo java, es que permite importar librerias y aumentar funcionalidades del robot. Existen 3 tipos de clases que se pueden programar en robocode:
- Robot: la clase basica que permite la creacion de robots sencillos.
- AdvanceRobot: esta permite mas flexibilidad y permite ejecutar acciones simultaneas sin necesidad que estas se finalicen para iniciar la siguiente, algo que no sucede con la clase robot.
- RobotTeam: Esta clase sirve para comunicar a varios robots pertenecientes a un equipo.

Cada robot esta formado por 3 partes: Un cuerpo de robot, un arma y un radar. Cada una pueden ser utilizadas independientemente del resto. 
Las acciones un robot son funciones basicas de movimiento, escaneo y ataque (disparo). Ademas cada robot contiene un conjunto de metodos que se activan al ocurrir un evento, por ejemplo chocar con un enemigo (OnhitRobot), chocar con una pared (OnhitWall), ser alcanzado por una bala (OnhitBullet), etc.
Como se ha descrito los robots tiene una buena cantidad de funcionalidades que lo hacen atractivo, pero una caracteristica que hace interesante a esta aplicacion-juego es la implementacion de estrategias que se enfocan por el camino de metodos de inteligencia artificial, desde implementaciones basicas como arboles de desicion hasta algo mas complejas como algoritmos geneticos.

Al hablar de implementar una estrategia siempre es recomendable conocer el contexto en que se desarrolla la accion, es decir debemos de definir detalles como los atributos que nos permiten conocer a nuestros enemigos por ejemplo identificar a cada uno, determinar su posicion en el campo, la cantidad de energia que tiene, etc. que se permite por cada robot y en base a esta informacion crear la estrategia.
Por ejemplo si se habla de implementar una estrategia con &quot;Arboles de desicion&quot;, se toma el caso que seamos atacados, alcanzados por una bala.
comenzariamos con la raiz, ataque. Si somos atacados podemos tomar el atributo de energia propia, si esta es poca procedemos a escapar; en el caso que fuese alta procedemos a conocer la energia del contrincante, si esta es baja procedemos a atacar, si es alta tenemos la opcion de escapar. Como se ve basamos en soluciones sencillos en la cual en base a cierto factor tomamos una de &quot;2&quot; posibles soluciones. El arbol de desiciones es un arbol binario.

Si Fuese el caso de un algoritmo genetico, es algo mas complicado. En la teoria &quot;los algoritmos geneticos&quot; son analogos a la ciencia de la genetica, contamos con un grupo de individuos que forman una poblacion, cada individio cuenta con caracteristicas ya sean beneficiosas o no (fenotipos), se realiza una seleccion de individuos sobre la poblacion y obtenemos un nuevo grupo que forman parte de una nueva generacion que contiene caracteristicas propias que lo hacen efectivo, tambien podemos encontrarnos con la mezcla de genes (Crossover)  o el desarrollo de nuevas caracteristicas (Mutacion algo muy raro que suceda).El objetivo de cada generacion es ir creando soluciones mejoradas.
En la practica se define una poblacion de robot, por ser una poblacion pequeña se espera que sea poco tiempo el necesario para desarrollar cada generacion de soluciones. En robocode ya se cuenta con una libreria que permite la programacion de algoritmos geneticos gracias a JGAP.

Si hablamos de &quot;redes neuronales artificiales (RNA)&quot; debemos de referirnos a la idea de como el cerebro humano interpreta la naturaleza de las cosas, interpretamos dependiendo de la informacion que tengamos sobre ellas lo que nos permite discernir en que objeto es o que no es. Es por ello que se compara con una red semantica la cual interpreta las entrada que se dan y las interpreta en base a la informacion relacionada que se encuentra dentro de la red, lo que le permite determinar a que se esta refiriendo, gracias a que se realizan relaciones logicas entre la informacion. Una caracteristica importante es que las RNA es que podemos tener muchas entradas. Podemos aplicar en los robots con hecho de determinar atributos del robot (energia, distancia, velocidad, etc.) y que la red neuronal resuelva que situacion es y como se puede resolver.

Hay otros metodos sencillos como el algoritmo del vecino mas cercano que funciona con la logica de hallar y utilizar el camino mas corto, es este caso la distancia del enemigo mas cercano.

Otros tan complejos como Clustering, el cual es mas notable en la mineria de datos, ya que son algoritmos capaces de ir aprendiendo de lo que van obteniendo lo que logran es dar significado a cada dato, por lo que al realizar las siguientes extracciones de datos ya puede clasificar e interpretar de manera automatica de que informacion se trata.

El area de de estrategias en robocode es amplia por lo que solo depende de la creatividad de cada quien y como se desea implementar. Ademas de ser una aplicacion muy entretenida uno va aprendiendo, es totalmente recomendable.

Mas informacion en:
Utilizacion de robocode
http://www.youtube.com/watch?v=u0B9gNOZQg0
Introduccion a Estrategias
http://www.youtube.com/watch?v=f1Mb9IXf2U8</description>
		<content:encoded><![CDATA[<p>RoboCode es un simulador de combates entre robot-tanques desarrollado por Mathew Nelson para IBM Alphaworks en 2001. Es una aplicación desarrollada en Java, se emplea un enfoque orientado a objetos en el que el robot es avisado mediante la invocación de sus métodos. El codigo es libre y se puede descargar del sitio <a href="http://robocode.souceforge.net" rel="nofollow">http://robocode.souceforge.net</a>, la version actual es la 1.7.</p>
<p>La gran ventaja de ser codigo java, es que permite importar librerias y aumentar funcionalidades del robot. Existen 3 tipos de clases que se pueden programar en robocode:<br />
- Robot: la clase basica que permite la creacion de robots sencillos.<br />
- AdvanceRobot: esta permite mas flexibilidad y permite ejecutar acciones simultaneas sin necesidad que estas se finalicen para iniciar la siguiente, algo que no sucede con la clase robot.<br />
- RobotTeam: Esta clase sirve para comunicar a varios robots pertenecientes a un equipo.</p>
<p>Cada robot esta formado por 3 partes: Un cuerpo de robot, un arma y un radar. Cada una pueden ser utilizadas independientemente del resto.<br />
Las acciones un robot son funciones basicas de movimiento, escaneo y ataque (disparo). Ademas cada robot contiene un conjunto de metodos que se activan al ocurrir un evento, por ejemplo chocar con un enemigo (OnhitRobot), chocar con una pared (OnhitWall), ser alcanzado por una bala (OnhitBullet), etc.<br />
Como se ha descrito los robots tiene una buena cantidad de funcionalidades que lo hacen atractivo, pero una caracteristica que hace interesante a esta aplicacion-juego es la implementacion de estrategias que se enfocan por el camino de metodos de inteligencia artificial, desde implementaciones basicas como arboles de desicion hasta algo mas complejas como algoritmos geneticos.</p>
<p>Al hablar de implementar una estrategia siempre es recomendable conocer el contexto en que se desarrolla la accion, es decir debemos de definir detalles como los atributos que nos permiten conocer a nuestros enemigos por ejemplo identificar a cada uno, determinar su posicion en el campo, la cantidad de energia que tiene, etc. que se permite por cada robot y en base a esta informacion crear la estrategia.<br />
Por ejemplo si se habla de implementar una estrategia con &#8220;Arboles de desicion&#8221;, se toma el caso que seamos atacados, alcanzados por una bala.<br />
comenzariamos con la raiz, ataque. Si somos atacados podemos tomar el atributo de energia propia, si esta es poca procedemos a escapar; en el caso que fuese alta procedemos a conocer la energia del contrincante, si esta es baja procedemos a atacar, si es alta tenemos la opcion de escapar. Como se ve basamos en soluciones sencillos en la cual en base a cierto factor tomamos una de &#8220;2&#8243; posibles soluciones. El arbol de desiciones es un arbol binario.</p>
<p>Si Fuese el caso de un algoritmo genetico, es algo mas complicado. En la teoria &#8220;los algoritmos geneticos&#8221; son analogos a la ciencia de la genetica, contamos con un grupo de individuos que forman una poblacion, cada individio cuenta con caracteristicas ya sean beneficiosas o no (fenotipos), se realiza una seleccion de individuos sobre la poblacion y obtenemos un nuevo grupo que forman parte de una nueva generacion que contiene caracteristicas propias que lo hacen efectivo, tambien podemos encontrarnos con la mezcla de genes (Crossover)  o el desarrollo de nuevas caracteristicas (Mutacion algo muy raro que suceda).El objetivo de cada generacion es ir creando soluciones mejoradas.<br />
En la practica se define una poblacion de robot, por ser una poblacion pequeña se espera que sea poco tiempo el necesario para desarrollar cada generacion de soluciones. En robocode ya se cuenta con una libreria que permite la programacion de algoritmos geneticos gracias a JGAP.</p>
<p>Si hablamos de &#8220;redes neuronales artificiales (RNA)&#8221; debemos de referirnos a la idea de como el cerebro humano interpreta la naturaleza de las cosas, interpretamos dependiendo de la informacion que tengamos sobre ellas lo que nos permite discernir en que objeto es o que no es. Es por ello que se compara con una red semantica la cual interpreta las entrada que se dan y las interpreta en base a la informacion relacionada que se encuentra dentro de la red, lo que le permite determinar a que se esta refiriendo, gracias a que se realizan relaciones logicas entre la informacion. Una caracteristica importante es que las RNA es que podemos tener muchas entradas. Podemos aplicar en los robots con hecho de determinar atributos del robot (energia, distancia, velocidad, etc.) y que la red neuronal resuelva que situacion es y como se puede resolver.</p>
<p>Hay otros metodos sencillos como el algoritmo del vecino mas cercano que funciona con la logica de hallar y utilizar el camino mas corto, es este caso la distancia del enemigo mas cercano.</p>
<p>Otros tan complejos como Clustering, el cual es mas notable en la mineria de datos, ya que son algoritmos capaces de ir aprendiendo de lo que van obteniendo lo que logran es dar significado a cada dato, por lo que al realizar las siguientes extracciones de datos ya puede clasificar e interpretar de manera automatica de que informacion se trata.</p>
<p>El area de de estrategias en robocode es amplia por lo que solo depende de la creatividad de cada quien y como se desea implementar. Ademas de ser una aplicacion muy entretenida uno va aprendiendo, es totalmente recomendable.</p>
<p>Mas informacion en:<br />
Utilizacion de robocode<br />
<a href="http://www.youtube.com/watch?v=u0B9gNOZQg0" rel="nofollow">http://www.youtube.com/watch?v=u0B9gNOZQg0</a><br />
Introduccion a Estrategias<br />
<span style="text-align:center; display: block;"><a href="http://robotlego.wordpress.com/2009/06/14/simulador-de-robots/"><img src="http://img.youtube.com/vi/f1Mb9IXf2U8/2.jpg" alt="" /></a></span></p>
]]></content:encoded>
	</item>
</channel>
</rss>
