Nota: a pesquisa de favoritos da comunidade será lançada em breve
Neste KoTH, o objetivo é ser o último bot vivo. As moedas serão colocadas em áreas aleatórias, e seu bot deve obter as moedas primeiro. Se um bot se depara com outro bot, o bot com mais moedas vence e o outro bot morre. Mais detalhes abaixo.
Tipos de moedas
Haverá 2 tipos de moedas: ouro e prata. O ouro adiciona 5 moedas à força do bot e a prata adiciona 2. Depois que uma moeda é coletada, outra moeda é colocada em outro local no tabuleiro. A qualquer momento, há uma moeda de ouro e quatro moedas de prata na arena.
Colisões de bot
No caso de dois robôs tentarem ocupar o mesmo espaço, aquele com mais moedas permanecerá e o que tiver menos moedas ... não. O bot vencedor ganhará 85% das moedas dos oponentes (arredondado para cima). Se eles estão empatados, ambos morrem. Se três ou mais tentarem ocupar o mesmo espaço, o mais poderoso vence e recebe 85% de todas as moedas do outro bot. No caso em que o bot mais poderoso é o empate, todos os bots morrem tentando entrar no espaço.
Arena
O comprimento lateral da arena é calculado com 4 + botCount
. Ao colocar bots no início do jogo, lugares aleatórios são escolhidos. O sistema garante que nenhum robô inicie no mesmo espaço ou próximo um do outro. As moedas são geradas aleatoriamente, excluindo um quadrado de 3 por 3 centrado em cada bot. Se um bot é encontrado fora da arena, ele morre instantaneamente. A arena começa em (0,0), ou Noroeste, no canto superior esquerdo, e a localização de um bot é sempre um número inteiro.
Seu bot
Seu bot deve ser uma função, em qualquer linguagem orientada a objetos que possua matrizes, números inteiros, strings e funções. Observe que todos os envios serão convertidos para Javascript, para simplificar. Para armazenar informações entre movimentos, use botNotes.storeData(key, value)
e botNotes.getData(key, value)
. Você não pode armazenar ou acessar dados de qualquer maneira, exceto a que é fornecida através dos parâmetros e botNotes
. Você deve criar uma função que, quando chamada, retorna uma string north
, east
, south
, west
, ou none
. Haverá 3 argumentos para a função:
Um objeto com quatro inteiros (
locationX
,locationY
,coins
,arenaLength
), sua localização atual, suas moedas, eo comprimento da arenaUma matriz multidimensional com as coordenadas X e Y de outros bots e sua contagem de moedas,
[[0,5,4],[4,7,1],[7,4,12]]
Uma matriz com os locais das moedas listados (o ouro é sempre o primeiro)
Este é um desafio do tipo rei da colina, proibidas as brechas padrão . Sua função será executada milhares de vezes, sempre que for permitido um "movimento". Note que se o jogo exceder 20.000 jogadas , o bot com mais moedas ganha. Isso será feito 8.000 vezes, para remover a aleatoriedade.
Chatroom: https://chat.stackexchange.com/rooms/81347/gold-collectors-koth
Prémios:
Primeiro Lugar: Recompensa de 100 pontos
Favorito da Comunidade: resposta aceita de 15 pontos
Vencedores:
Primeiro Lugar: TBTPTGCBCBA
Segundo Lugar: Big King Little Hill
Terceiro Lugar: Potencialmente Vitorioso
Quarto: Polido Bot bêbado e míope
Quinto Lugar: Moeda de Segurança