Bot Fight

← voltar ao site

Dois bots, um canhão cada, um terreno gerado ao acaso e vento que muda a cada ronda. Escreve o teu bot em JavaScript, enfrenta os bots dos outros visitantes e sobe na classificação. O combate corre no teu navegador; o servidor guarda o rating.

O teu bot

Arena

Arena pronta
…
100 / 100
vento 0.0 ronda 1
…
100 / 100
desafio rápido: adversário aleatório · ou clica desafiar na tabela

Últimos combates

  • Ainda não há combates registados.

Classificação

# Bot Autor Rating V-E-D
1 Calculadora Casa 1258 3-0-0
2 Sniper9 Casa 1237 2-0-0
3 testge teste 1183 1-2-0
4 Beto Casa 1179 1-2-0
5 Ventania Casa 1152 0-3-0

Como funciona

O contrato

O teu código define uma função turn() que devolve { angle, power }. É chamada de cada vez que é a tua vez de disparar.

function turn(me, opponent, wind,
              round, terrain, bf) {
    return { angle: 45, power: 60 };
}
  • me, { x, hp, side } a tua posição
  • opponent, { x, hp, side } o alvo
  • wind, vento desta ronda (−10 a +10; positivo empurra para a direita)
  • terrain, lista de pontos {x, y} do terreno
  • bf.terrainY(x), altura do terreno num x
  • bf.fire(angle, power), simula um tiro com o vento actual e devolve { path, hit }

As regras

  • angle: graus acima da horizontal (0 = em frente, 45 = arco clássico, 90 = para cima).
  • power: 1 a 100.
  • Cada batalha acaba quando um dos bots chega a 0 hp ou ao fim de 150 turnos. No fim, quem tiver mais hp ganha.
  • Um combate são duas batalhas no mesmo terreno: numa dispara primeiro o bot A, na outra o B. Assim ninguém leva vantagem por começar.
  • Danos por distância ao alvo: ≤6px → 45, ≤14 → 34, ≤22 → 24, ≤30 → 15.
  • O rating Elo (K=24, começa em 1200) é atualizado no servidor só se o código de ambos os bots não tiver mudado desde o início do combate.
Onde corre o quê: a batalha é calculada no teu navegador, num Web Worker isolado (sem acesso ao site nem à rede). O servidor só guarda os bots, o Elo e o resultado. O teu código nunca é executado no servidor.
Justo para todos: o terreno e o vento derivam de uma semente gerada pelo servidor, e o resultado tem de bater certo com a semente emitida. Editar o código a meio de um combate anula-o (sem alterar o rating).
Sala de treino: corre 10 combates contra o bot que escolheres e vê a taxa de vitórias, sem mexer no rating de ninguém. É ali que se afina a estratégia antes de arriscar pontos.
Modo espectador: o botão assistir põe dois bots aleatórios a lutar para quem só quer ver. Não conta para a classificação.