Este capítulo describe como utilizar el programa en sí. No obstante, si te resulta aburrido de leer, siéntete libre de usar el método habitual de prueba y error, y vuelve aquí si tropiezas con algo confuso en la interfaz de usuario. Es buena idea, sin embargo, leer la corta sección sobre opciones de la línea de comandos bajo estas líneas. Ten en cuenta que no hay ninguna ayuda integrada en el programa: es aquí donde debes buscar ayuda.
Hay varias opciones, en la línea de comandos, que determinan el
comportamiento general de RealTimeBattle. Es posible elegir un
fichero de opciones, donde se definan los valores por defecto de las
opciones. 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 modo de depuración --debug_level [0-5], -D determina el nivel inicial de depuración (implica -d) --normal_mode, -n modo normal (por defecto) --competition_mode, -c modo de competición --no_graphics, -g no se mostrarán gráficos --option_file [file], -o selecciona el fichero de opciones (por defecto (default: $HOME/.rtbrc) --log_file [file], -l genera un fichero de registro (log file). Si el fichero es "-", el registro se envía a STDOUT --tournament_file [file], -t especifica un fichero de torneo para comenzar un torneo automáticamente --statistics_file [file], -s fichero en que se guardarán las estadísticas al comenzar automáticamente --message_file [file], -m redirecciona los mensajes a un fichero. '-' como fichero es equivalente a STDOUT. Si tanto el registro como los mensajes son enviados a STDOUT, '-m' será ignorado --replay [file] -r reproduce un fichero de registro. Si se especifica '-' como fichero, la entrada se toma de STDIN --help, -h muestra este mensaje de ayuda --version, -v muestra el número de versión --port_number -p especifica el puerto para clientes remotos (el puerto por defecto es 32134)
La opción "port_number" está disponible solo si se eligió compilar
RealTimeBatle con la opción --enable-network. Véase el fichero
INSTALL
para más información.
Las diferencias entre los tres modos de juego se muestran en la siguiente tabla:
Modo | Debug | Normal | Competición |
Comando 'debug' disponible | Sí | No | No |
Pausa en el juego | Sí | Sí | No |
Juego paso a paso | Sí | No | No |
Uso de CPU ilimitado para robots | Sí | Sí | No |
Para comenzar un torneo nuevo. La sección Comenzar un torneo nuevo te dará más información.
Reproducir un torneo. Te pedirá que selecciones un fichero de registro (log file) del juego para poder estudiarlo.
Detiene el juego. En el modo de competición la pausa será pospuesta hasta que el juego actual termine.
Detiene el torneo actual.
Muestra la ventana de opciones.
Muestra la ventana de estadísticas.
Esta opción puede ser usada para mostrar y ocultar las tres ventanas utilizadas durante el juego: la ventana de la arena, la ventana de puntuación y la ventana de mensajes.
Finaliza el programa.
En el
modo de depuración (debug)
hay disponible otro conjunto de botones. Estos están pensados para
ayudar en la depuración de robots. Ten en cuenta que puedes depurar un
proceso ejecución; si utilizas gdb
el comando es
gdb robot-name process-number
.
Permite, en un juego en pausa, avanzar un paso de tiempo. Esto es muy útil cuando se ejecuta el robot en un depurador, ya que de otro modo el robot será saturado 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 de depuración, se puede marcar un robot en la ventana de puntuación. Ese robot morirá al pulsar este botón.
Cambiar el nivel de depuración es una manera de indicar a los robots que mensajes deben enviar. El rango es entre 0 y 5, donde 0 significa no depurar y 5 es el nivel más alto de depuración, esto es, todos los mensajes de depuración deben ser enviados.
Cuando estés reproduciendo un fichero de registro (log file), que no sea suministrado por la entrada estándar, hay varios botones para controlar la reproducción. Véase el capítulo acerca de la reproducción para más detalles.
Para seleccionar robots y arenas para el torneo, marca los ficheros a
la derecha y pulsa el botón añadir
. Los ficheros
seleccionados se muestran a la izquierda y pueden eliminarse de manera
similar.
Un torneo consiste en un número de secuencias de juegos. En cada secuencia el mismo robot compite en todos los juegos. Aquí se puede seleccionar el número de juegos y secuencias, así como el número de robots en cada secuencia. Si pretendes jugar con todos los robots en todos los juegos se recomienda seleccionar una sola secuencia y, en cambio, incrementar el número de juegos. El motivo es evitar que los procesos de los robots sean reiniciados, lo cual puede tomar un cierto tiempo, especialmente si el número de robots es grande.
También es posible cargar un torneo o salvar el torneo actual. El último torneo jugado se almacena en /tmp/rtb/tmp.tour y se muestra siempre cuando esta ventana se abre. Si no está disponible se muestra un torneo vacío.
Debes seleccionar al menos dos robots y una arena para poder empezar.
A fin de que el programa pueda encontrar los robots y arenas existen
dos opciones:
ruta de búsqueda de robots y
ruta de búsqueda de arenas.
Independientemente de las opciones, siempre se busca en los
subdirectorios Robots
y Arenas
en el directorio de
instalación de RealtimeBattle, especificado en el Makefile principal
durante la compilación (por defecto /usr/local/games/RealTimeBattle
),
pero si creas un directorio nuevo, o si instalaste RealTimeBattle en
otro directorio, tendrás que establecer estas opciones.
Aquí es donde tienen lugar las batallas. Si quieres una vista más detallada, usa los botones de zoom o presiona las teclas +, - ó 0. Los robots se representan como círculos coloreados con una marca en forma de escuadra que indica la dirección del radar. La línea gruesa es el cañón, y la línea delgada apunta en la dirección frontal.
En esta ventana se muestran los robots que compiten en la secuencia actual.
Aquí se muestran los mensajes enviados por los robots utilizando Print y Debug. Los mensajes más recientes son mostrados en la parte superior. Puedes limpiar la ventana y elegir ver solo los nuevos mensajes de un robot en particular.
Aquí tienes la posibilidad de cambiar un gran número de opciones. En
el
capítulo de opciones puedes encontrar
información más detallada sobre cada opción. Los cambios no serán
aplicados hasta que pulses bien el botón apply
o el botón OK
.
Puedes guardar tus opciones en un fichero: Save options
salvará las opciones a un fichero de tu elección, y Save as
default
las guardará en el fichero .rtbrc
de tu
directorio de usuario.
El botón Default
reiniciará todas las opciones a sus valores
por defecto.
Hay varias maneras de estudiar las estadísticas del torneo actual. Puedes elegir entre:
Si lo deseas, es posible ejecutar RealTimeBattle sin ningún tipo de
gráficos. Esto puede resultar muy útil cuando se está realizando una
serie larga de pruebas o se ejecuta una competición. Para utilizar
esta opción tienes dos opciones: bien pasar el parámetro -g
al
lanzar el programa, o deshabilitar los gráficos al compilar el
programa (véase el fichero INSTALL
para más
información). Esta última alternativa es útil ya que el ejecutable
será menor y, en consecuencia, más rápido en máquinas con poca
memoria. Ello también permite ejecutar RealTimeBattle en ordenadores
que no tengan gtk+
instalado.
Durante la ejecución sin gráficos es necesario proporcionar un fichero de torneo, o no ocurrirá nada. También es una buena idea crear un fichero de registro (log file) y/o un fichero de estadísticas si quieres conocer el resultado.
El fichero de torneo se indica como una opción de línea de comandos. Cuando se especifica, un torneo comenzará y terminará automáticamente. Para más información sobre como guardar las estadísticas mira en la sección sobre los ficheros de estadísticas.
Un fichero de torneo consiste en cinco palabras clave. Todas estas palabras clave pueden ser especificadas múltiples veces, pero recuerda que solo la última de las palabras clave que toma un número como argumento es tenida en cuenta. Todas las palabras clave deben ir seguidas de un punto y coma.
Toma un número o *
como argumento. El número indica cuantos
juegos deben ser jugados por torneo. El asterisco significa que el
programa toma el número exacto de arenas y lo utiliza como
argumento. El valor por defecto es 1.
Toma un número o *
como argumento. El número es cuantos
robots jugarán en cada secuencia. El asterisco significa que el
programa toma el número exacto de robots y lo utiliza como
argumento. El valor por defecto es 2.
Toma un número o *
como argumento. Este número indica cuantas
secuencias se jugarán en el torneo. El asterisco significa que el
programa toma el número exacto de robots y los robots por secuencia,
realiza un cálculo binomial para determinar el número de secuencias
necesario para que todos los robots se encuentren exactamente una vez,
y utiliza este número como argumento. El valor por defecto es 1.
Toma uno o más ficheros de robot como argumento.
Toma uno o más ficheros de arena como argumento.
Los argumentos de fichero pueden ser uno de entre los siguientes:
Busca el fichero en cuestión en la ruta definida.
Ejemplo: Robot: empty.robot
Usa el fichero en cuestión.
Ejemplo: Arena: /usr/local/games/RealTimeBattle/Arenas/Circle.arena
Busca la ruta completa y usa todos los ficheros encontrados.
Ejemplo: Arena: *
Busca en el directorio especificado y usa todos los ficheros encontrados.
Ejemplo: Robot: /usr/local/games/RealTimeBattle/Robots/*
Es posible indicar varias veces el mismo fichero. De modo que si
quieres tres robots rotate_and_fire.robot, simplemente escribe
rotate_and_fire.robot tres veces. Esto también es aplicable a *
.
Ejemplo de fichero de torneo:
R: * Arenas: Circle.arena Square.arena G/S: 2 r/s: 3 Sequences: *
A veces puede ser útil
reproducir un juego
y analizarlo en detalle o simplemente almacenarlo como referencia
futura. Añade el parámetro -l
al arrancar RealTimeBattle,
con el nombre de fichero como argumento, para activar esta opción, y
con argumento '-'
para que el registro sea mostrado en la
salida estándar.
El formato del fichero de registro es de la siguiente manera: cada línea consiste en una letra, que determina el tipo de información, seguida de una lista de argumentos separados por espacios en blanco. En concreto se muestra la siguiente información:
H [juegos/secuencia] [robots/secuencia] [secuencias] [robots]
A [línea del fichero de la arena]
G [número de secuencia] [número de juego]
O [opción:valor]
L [identificador de robot] [color del robot] [nombre del robot]
R [identificador de robot] [x] [y] [ángulo del cañón] [ángulo del radar] [energía]
T [tiempo transcurrido]
P [identificador del robot] [mensaje impreso]
C [identificador de galleta] [x] [y]
M [identificador de mina] [x] [y]
S [identificador de disparo] [x] [y] [dx/dt] [dy/dt]
D [tipo de objeto muerto] [identificador de objeto] (si es un robot: [puntos recibidos] [posición])
Puedes repetir un juego a partir de su
fichero de registro (log file) bien
pasando la
opción de línea de comando
"-r"
o desde la
ventana de control.
Ten en cuenta que si el registro proviene de la entrada estándar
(opción de línea de comando "-r -"
), no
podrás hacer mucho más que contemplar el juego, si bien de otro modo
puedes influir en el desarrollo del juego:
El fichero de estadísticas es un archivo empleado solo cuando se
especifica un
fichero de torneo.
Las estadísticas serán guardadas en este fichero cuando el torneo
termine. Por otra parte, puedes salvarlo a mano utilizando el botón
guardar estadísticas
en la
ventana de estadísticas.