Este capitulo describe como usar el programa en sí mismo. Si te aburre leerlo de seguido, usa el método de prueba-error de toda la vida, y vuelve aquí si te atascas con algo de la interfaz. Aunque es buena idea leer la mini sección opciones de la linea de comandos (command line options) mostrada abajo. Ten en cuenta que no hay ayuda en el programa; es aquí donde debes buscar ayuda.
En la linea de comandos hay varias opciones que controlan el comportamiento global de RealTimeBattle. Aqui puedes elegir el "archivo de opciones" que determina los valores por defecto de las
'opciones' (options). También puedes seleccionar en que modo de juego se ejecutará el programa: debug
, normal
o competición
.
Uso: RealTimeBattle [opciones] Opciones: --debug_mode, -d debug mode. --debug_level [0-5], -D determina el nivel inicial de debug. Implica -d. --normal_mode, -n modo normal (por defecto). --competition_mode, -c modo competición. --no_graphics, -g sin gráficos. --option_file [file], -o selecciona el archivo de opciones (por defectot: $HOME/.rtbrc) --log_file [file], -l genera un fichero de registro (log file). Si 'file' es '-' el log se en viará a la salida estandar (STDOUT) --tournament_file [file], -t especifica un fichero de torneo para comenzar un torneo. --statistics_file [file], -s fichero en el que se guardarán las estadisticas. --message_file [file], -m redirecciona los mensajes a un fichero 'file'. Si ponemos '-' en lugar de un nombre de fichero, se redireccionarán a STDOUT. Si tanto el log c omo los mensajes son enviados a STDOUT, '-m' sera ignorado. --replay [file] -r repite un fichero de registro. Si se pone '-' como nombre de fichero la entrada será tomada de la entrada estandar (STDIN). --help, -h muestra este mensaje. --version, -v muestra el numero de versión.
Las diferencias entre los tres modos de competición son mostradas a continuación:
Para comenzar un torneo nuevo. La sección Comenzar un torneo nuevo (Start new tournament window) te dará mas información.
Replay a game. Te permite seleccionar un fichero de registro (log file) del juego para poder estudiarlo.
Detiene el juego, en el modo competición (competition-mode) la pausa del juego sera postpuesta hasta la finalizacion del juego actual.
Finaliza el torneo actual.
Muestra la ventana de opciones (options window).
Muestra la ventana de estadisticas (statistics window).
Esta opción puede ser usada para mostrar y ocultar las tres ventanas durante el juego: the Ventana de Arena (arena window), the Ventana de puntuación (score window) and the Ventana de mensajes (message window).
Finaliza el programa.
En el
modo debug (debug-mode) hay otro grupo de botones disponibles, los cuales estan pensados para ayudar en la depuración de Robots. Ten en cuenta que puedes depurar un proceso ejecutandose; si usas gdb
el comando es gdb robot-name process-number
.
En un juego modo debug (debug-mode)<@@ref>pauseden pausa (pausa) ejecutará un 'paso' hacia delante. Es muy útil cuando se depura un Robot, ya que de otra manera el robot es 'floodeado' con mensajes (N. del T. el robot recibe demasiados mensajes como para poder analizarlos).
Finaliza el juego actual. Tiene el mismo efecto que un timeout .
En el modo debug, se puede marcar un Robot en la ventana de puntuación (score window). Dicho Robot morirá al pulsar este botón.
Cambiar el nivel de depuración es una manera de señalar a los robots que mensajes y cuales no deben enviar. El rango posible es ente 0 y 5, donde 0 significa que no hay ningun tipo de debug y 5 es el maximo nivel de debug, esto es, todos los mensajes de debug seran enviados.
Cuando estas repitiendo un log-file que no sea desde la STDOUT, hay varios botones para controlar la repetición. Para mas información mira en la sección repetición (replaying).
Para seleccionar robots y arenas para el torneo, marca los archivos de la derecha y pulsa en el botón añadir (add)
. Los ficheros seleccionados son mostrados a la izquierda y pueden ser borrados igualmente, pulsando el botón eliminar (remove)
.
Un torneo consiste en un numero de secuencias de juegos. En cada secuencia el mismo robot compite en todos los juegos. Aqui se puede seleccionar el numero de juegos y de secuencias asi como el numero de robots de cada secuencia. Si pretendes jugar con todos los robots en todos los juegos mejor escoger una secuencia en lugar de incrementar el numero de juegos. La razon es evitar el reseteo de los procesos de los robots que llevan un periodo de tiempo, especialmente si hay muchos.
Tambien es posible cargar un torneo desde un archivo o salvar el torneo actual. El último torneo jugado será almacenado en /tmp/rtb/tmp.tour y será siempre mostrado cuando se abre la ventana. Si no está disponible se muestra un torneo vacío.
Debes seleccionar al menos dos robots y una arena para poder empezar.
Hay dos maneras de encontrar robots o arenas:
Ruta de búsqueda de Robots (Robot search path) y
Ruta de búsqueda de Arenas (Arena search path).
Por defecto siempre se busca en los subdirectorios Robots
and Arenas
de la instalación de Real Time Battle (por defecto: /usr/local/games/RealTimeBattle
), especificados en el Makefile principal, aun cuando en las opciones ponga otra cosa, pero si creas un directorio nuevo, o si tienes instalado Real Time Battle en otro directorio tendras que especificar estas opciones.
Aqui es donde tienen lugar las batallas. Si quieres una vista mas detallada, usa los botones de zoom o las teclas +, -, o 0. Los Robots son unos circulos coloreados con una pequeña marca en forma escuadra que muestra la dirección del radar. La linea gruesa es el cañón y la linea delgada apunta en la direccion frontal.
En esta ventana se muestran los robots que compiten en la secuencia actual.
Se muestran los mensajes enviados por los Robots usando Print y Debug. Los mensajes mas recientes son mostrados en la parte superior. Puedes limpiar la ventana y ver solo los mensajes nuevos de un robot en particular.
Aqui tienes la posibilidad de cambiar un gran numero de opciones.En el
Capitulo de opciones (Options chapter) puedes encontrar informacion mas detallada. Los cambios no serán aplicados hasta que pulses el botón apply
o el botón OK
.
Puedes guardar las opciones en un archivo: Salvar Opciones (Save options)
salvará las opciones a un fichero que tu elijas y Salvar por defecto (Save as default)
guardará las opciones en el fichero .rtbrc
de tu directorio home.
El botón Default
pondrá todas las opciones con sus valores por defecto.
Hay varias maneras de ver las estadisticas del tornoe. Puedes elegir entre:
Es posible ejecutar RealTimeBattle sin ningun tipo de gráficos. Esto
puede ser muy útil cuando se dan casos de series de tests o cuando se
ejecuta una competición. Para usar esta opcion tienes dos opciones:
pasar el parametro -g
cuando se ejecute el programa, o bien
deshabilitar los gráficos cuando se compila el programa (mira en el
fichero INSTALL
para mas información). La segunda opcion es mejor ya
que el ejecutable será menor e irá mas rápido en máquinas lentas. Ello
tambien te permite ejecutar RealTimeBattle en ordenadores que no
tengan gtk+
instalado.
Cuando se ejecuta sin gráficos tienes que indicarle un fichero de torneo, o de lo contrario no sucederá nada. También es buena idea crear un fichero de registro o un fichero de estadisticas si quieres saber el resultado.
El fichero de torneo se especifica en las opciones de la linea de comandos (command line option). Cuando se especifica un torneo, él comienza y finaliza automaticamente. Para mas información sobre como guardar las estadisticas mira en la seccion estadisticas (statistics file).
Un fichero de torneo esta conformado por cinco 'palabras'. Todas esas 'palabras' pueden ser escritar muchas veces, pero ten en cuenta que solo la ultima de esas 'palabras', que tiene un numero como argumento, es realmente importatnte. Todas las 'palabras' estarán seguidas de una comilla simple.
Toma un numero *
como
argumento. El numero indica cuantos juegos deben ser jugados por
torneo. El asterisco significa que el programa ejecutará un juego por
cada arena que haya. El valor por defecto es 1.
Toma un número *
como
argumento. El número significa cuantos robots competirán en cada
secuencia. El asterisco significa que el programa utilizará el máximo
número de robots disponibles. El valor por defecto es 2.
toma un número *
como argumento. Este número
indica cuantas secuencias serán jugadas en este torneo. El asterisco
implica que el programa tomará el numero de robots y el numero de
secuencias para todos los robots, y realizará un calculo binomial de
forma que cada robot compita contra cada uno de los otros robots
exactamente una vez. El valor por defecto es 1.
Toma uno o mas ficheros de robot como argumento.
Toma uno o mas ficheros de arena como argumento.
Los argumentos de fichero pueden ser algunos de los siguientes:
Busca la ruta del fichero:
Por ejemplo: Robot: empty.robot
toma el fichero dado
Por Ejemplo: Arena: /usr/local/games/RealTimeBattle/Arenas/Circle.arena
Busca en todas las rutas del path y selecciona todos los ficheros que encuentre.
Por Ejemplo: Arena: *
Busca en el directorio dado y toma todos los ficheros que encuentre.
Por Ejemplo: Robot: /usr/local/games/RealTimeBattle/Robots/*
Es posible también escribir numerosas veces el mismo fichero. Esto es,
si quieres 3 robots rotate_and_fire.robot, simplemente escribe
rotate_and_fire.robot tres veces. Esto se verifica tambien con *
.
Ejemplo de fichero de torneo:
R: * Arenas: Circle.arena Square.arena G/S: 2 r/s: 3 Sequences: *
A veces puede ser útil
repetir (replay) un
juego y analizarlo detalladamente o simplemente guardarlo para una
futura referencia. Añade -l
al iniciar RealTimeBattle, junto
con el nombre de fichero para activar esta opcion, y utiliza
'-'
para que el registro sea mostrado en la salida estándar.
El formato del fichero de registro es de la siguiente manera: cada linea consiste en una letra, que determina el tipo de informacion, seguido de una lista de argumentos separados por espacios. Se muestra la siguiente informacion:
H [games/sequence] [robots/sequence] [sequences] [robots]
A [line from the arena file]
G [sequence number] [game number]
O [option:value]
R [robot id] [x] [y] [cannon angle] [radar angle] [energy]
T [time elapsed]
P [robot id] [message to print]
C [cookie id] [x] [y]
M [mine id] [x] [y]
S [shot id] [x] [y] [dx/dt] [dy/dt]
D [type of object killed] [object id] (if robot: [points received] [position])
Puedes repetir un juego a partir de su
fichero de registro (log file)
pasando al programa desde
la linea de comandos (command line option) el parámetro "-r"
o bien desde la
ventana de control (control window).
Ten en cuenta que si el registro proviene de la entrada estándar
(comando "-r -"
), no podrás hacer demasiado, pero por otro lado podrás influir en el
desarrollo del juego:
El fichero de estadisticas se usa solo cuando es especificado un
fichero de torneo (tournament file). Las
estadisticas serán guardadas en dicho fichero cuando el torneo
finalize. De todoas modos, puedes salvarlas a mano usando el botón
save
de la
ventana de estadisticas (statistics window).