/* Slowly moves east and west. Does not fire. */
var west = false;
while (true) {
if (west) {
if (getX() > 25) {
swim(180, 25);
} else {
west = false;
swim(0, 0);
}
} else {
if (getX() < 75) {
swim(0, 25);
} else {
west = true;
swim(0, 0);
}
}
}
/* Moves south-west when hit. Does not fire. */
var d = damage();
while (true) {
if (d != damage()) {
swim(45, 100);
var t = 0;
for (var t = 0; t < 100; t++) {}
d = damage();
stop();
}
}
¡Felicitaciones!
La solución funciona, pero se puede mejorar. Usa 'scan' para decirle al cañón a qué distancia disparar.
Este oponente se mueve hacia atrás y adelante, haciéndolo difícil de golpear. La expresión 'scan' devuelve el alcance exacto al oponente en la dirección especificada.
Este alcance es exactamente lo que el comando 'cannon' necesita para disparar con precisión.