Física del juego
Para comprender mejor como funciona una batalla en Robocode hemos traducido las preguntas FAQ del wiki de robocode sobre las normas del juego.
¿Puedo disparar con energía más alta de 3 o más baja que 1?
La respuesta es no y sí. No puedes disparar con energía mayor que 3, y sí que puedes disparar con energía de hasta sólo 0.1. Si llamas una leña función (por ej. setFire) con un valor mayor que 3, Robocode lo ajustará a 3, y si lo llamas con una energía más bajo de 0.1 que lo ajustará a 0.1.
¿A que velocidad se mueve una bala?
Una bala viaja a una velocidad entre 11 y 19.7 dependiendo de la energía. Cuanto más energía mas lenta. La fórmula para calcularla es velocidad = 20-3*power
¿La velocidad del robot se suma a la velocidad de la bala?
No. La velocidad de la bala no es afectada por la velocidad del robot.
¿Cuál es el rango de alcance de una bala?
La bala no tiene ningún rango. No se para hasta que golpea un BOT o una pared.
Deseo disparar una bala cada turno, pero no puedo. ¿Por qué?
Cada vez que disparas se genera un cierto calor. Debes esperar hasta que está fresco para disparar. Si das una orden del fuego cuando tu arma está caliente, no hará nada. El calor generado por un tiro es 1 + (potencia de fuego/5). El arma se refresca en un índice de -0.1 por turno (nota que puedes cambiar esto el parámetro cuando creas la batalla, nadie lo hace generalmente). Significa que puedes disparar una bala cada 16 turnos.
¿Cuánto daño hace una bala?
Ver la pregunta siguiente.
¿Cómo gano o pierdo energía?
Pierdes energía cada vez que golpeas una pared, eres alcanzado por una bala enemiga, chocaste con un enemigo, o disparas tu arma. La cantidad de energía que pierdes por ser alcanzado es 4 * energía de la bala + 2 * máximo (energía de la bala – 1, 0). Por tanto la cantidad máxima es 16. Cuando disparas, pierdes una cantidad de energía igual a la energía de la bala disparada. Cuando una de tus balas golpea a enemigo, ganas una cierta energía (consigues 3 * energía de la bala). Cuando golpeaste a robot enemigo, tomas 0.6 daños. Cuando golpeas una pared, el robot (avanzado) tomará un daño del máximo (abs(velocidad) * 0.5 – 1, 0).
Algunas veces el robot está deshabilitado. ¿Qué sucede?
No puede matarse, cuando su energía cae a cero porque golpea una pared o dispara, tu robot se deshabilita. No podrá moverse ni disparar. Si eres bastante afortunado y alguna de tus balas golpea a enemigo, conseguirá un poco energía y se rehabilitará.
Estoy deshabilitado, pero mi energía es mayor que 0. ¿Por qué?
Llamaste getXXX () (por ejemplo la función getVelocity()) demasiadas veces en un turno. El límite es 10000 llamadas de función getXXX () por turno. Para evitar inhabilitarse en tales situaciones, puedes almacenar los valores dentro de variables para el uso futuro. Eso también será un poco más rápido.
¿Con qué velocidad me muevo?
Puedes moverse a una velocidad máxima de 8. ¿Puedes modificar tu velocidad máxima usando setMaxVelocity. Observa que el robot acelera siempre para alcanzar la velocidad máxima.
¿Cuánto acelero?
Aceleras en 1 por turno, y frenas 2 por turno. Por ejemplo, si te estás moviendo a una velocidad de 8 e inviertes tu dirección tus velocidades serán [6.4.2.0.1.2.3.4.5.6.7.8].
¿Con qué velocidad me doy vuelta?
Cuanto más rápido vas, más lento das vuelta. La fórmula para calcularla en grados (10 – 0.75 * abs (velocidad)).
¿Cuál es el tamaño de un robot en el mapa?
El tamaño de un robot es 36×36. Se modela pues como un cuadrado que no rota, así que siempre es igual sin importar su posición o rotación.
¿Cómo puedo detectar cuando un enemigo ha disparado?
No hay manera directa de detectar cuando un enemigo encendido, pero tú puede deducirlo supervisando la pérdida enemiga de energía. Una pérdida entre 0.1 y 3 significa generalmente que disparó una bala (puede haber otras razones, tales como ser alcanzado por un disparo o un golpe con la pared).
¿Cómo puedo detectar la posición y dirección de una bala enemiga?
No puedes. No hay manera de saberlo, directamente o indirectamente. Pero por supuesto, puedes conjeturar siempre…
¿A qué velocidad puedo dar vuelta a mi arma?
El arma gira 20 grados por turno.
¿Puedo saber la posición del arma enemiga?
No. Tampoco, puedes saber la posición del radar enemigo.
¿A que velocidad puedo dar vuelta a mi radar?
Gira a 45 grados por turno.
¿Puedo especificar la posición inicial de mi robot?
No. Los bots se ponen aleatoriamente en el campo de batalla al principio de cada ronda.
Aún no hay comentarios.
Deja un comentario
-
Archivos
- Mayo de 2007 (4)
- Abril de 2007 (3)
- Marzo de 2007 (2)
-
Categorías
-
RSS
Subscripciones RSS
RSS de los Comentarios