20 Junio 2006

RealTimeBattle IV (comunicados de guerra)

Del robot de entrada salida Basica que dije en anterior articulo os dejo el log de entrada capturada que tiene la cualidad que sale masticadito, aunque para mas informacion, lo analizaremos paso a paso, no es todo el log pero si el mas interesante:


Num Unknow Mensajes:2.450500e+04
INITIALIZE
Num Unknow Mensajes:1.365060e+06
GAME_STARTS
ROBOTS_LEFT
Num Unknow Mensajes:1.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
GAME_OPTION
Num Unknow Mensajes:2.000000e+00
RADAR
Num Unknow Mensajes:3.000000e+00
COORDINATES
Num Unknow Mensajes:3.000000e+00
INFO
Num Unknow Mensajes:3.000000e+00
ENERGY
Num Unknow Mensajes:9.848000e+03
WARNING:Warning
Unknown message:A
RADAR
Num Unknow Mensajes:3.000000e+00
COORDINATES
Num Unknow Mensajes:3.000000e+00
INFO
Num Unknow Mensajes:3.000000e+00
WARNING:Warning
Unknown message:ccelerate
WARNING:Warning
Unknown message:Ac
ENERGY
Num Unknow Mensajes:1.912900e+04
WARNING:Warning
Unknown message:celerate
WARNING:Warning
Unknown message:Acc
RADAR
Num Unknow Mensajes:3.000000e+00
COORDINATES
Num Unknow Mensajes:3.000000e+00
INFO
Num Unknow Mensajes:3.000000e+00
WARNING:Warning
Unknown message:elerate

….continua….

NumUnknow Mensajes: son las lineas basura algunas veces y otras veces son cosas que no se han podido reconocer como

GAME_OPTION
Num Unknow Mensajes:2.000000e+00

Las dos lineas desconocidas son los parametros de Opcion.

Porque el formato de los mensajes son en varias lineas (3 casi siempre), donde la primera es un texto tal cual con el tipo de mensaje Radar, Initialize, Warning… y despues una linea con cada parametro del mensaje.

Por eso si vemos el log, se ve claramente donde esta las lineas de basura porque se van a calcoño el numero de lineas como por ejemplo:
Las de antes de Iniciar el robot (INITIALIZE):
Num Unknow Mensajes:2.450500e+04 <- que hay casi 20.000 lineas de basura

Esto significa que el bucle de lectura esta leyendo como un cosaco y el RealTimeBattle como todavia no ha iniciado nada pues responde con basura (numeros al azar sin un encabezado de mensaje), hasta que si ya manda el inicio.

Y despues de iniciar tenemos:
Num Unknow Mensajes:1.365060e+06
GAME_STARTS
Casi 1 millon de lineas de basura hasta que el server empieza el juego.

Pero justo despues ya vemos que nos tragamos una linea como basura pero que es informacion:
ROBOTS_LEFT
Num Unknow Mensajes:1.000000e+00

Por parte de la salida pues segun el codigo fuente, el robot solo de momento corre hacia adelante:
if(comienzo)
{
printf(”Accelerate 5\n”);
fflush(stdin);
}
Se ve que es interesante hacer un “flush flush” para que vuelque bien la salida porque sino hay problemas, por cierto esta dentro de una condicional porque sino el RealTimeBattle se queja (con warnings) de que queremos acelerar el robot antes de tiempo.

Y bueno hasta aqui el interesante analisis y un poco superficial pero sobrado de como se comunica el RealTimeBattle.

Anteriores Articulos:

Por: MD | Consejos, Trucos y Tutoriales | | Referencias ()

12 comentarios

El webmaster de www.tomatesasesinos.com no se hace responsable de los comentarios aqui vertidos por los visitantes.

»

Suscripción RSS a los comentarios de la entrada.

Deje un comentario

XHTML: Etiquetas html permitidas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>