Todos os bots na arena de batalha foram repentinamente fodidos e ninguém pode explicar o porquê. Mas quem se importa desde que ainda seja capaz de lutar - embora Brainfuck seja a única língua que eles entendem mais.
Já faz um tempo desde a última submissão, então finalmente vou anunciar o vencedor de BrainFuckedBotsForBattling: Parabéns a LymiaAluysia por vencer com NyurokiMagicalFantasy!
Placar
| Owner | Bot Score |
|--------------------|-------------------------------|
| LymiaAluysia | NyurokiMagicalFantasy - 600 |
| Sylwester | LethalLokeV2.1 - 585 |
| weston | MickeyV4 - 584 |
| Sp3000 | YandereBot - 538 |
| Comintern | CounterPunch - 512 |
| Sylwester | BurlyBalderV3 - 507 |
| LymiaAluysia | NestDarwin - 493 |
| IstvanChung | Bigger - 493 |
| Manu | DecoyMaster - 489 |
| archaephyrryx | Wut - 478 |
| DLosc | LightfootPlodder - 475 |
| archaephyrryx | 99BottlesOfBats - 461 |
| Sylwester | TerribleThorV2 - 458 |
| MikaLammi | WallE2.0 - 443 |
| Mikescher | MultiVAC - 441 |
| archaephyrryx | Twitcher - 439 |
| Timtech | MetalDetector - 438 |
| AndoDaan | BeatYouMate - 433 |
| csarchon | TheWallmaster - 427 |
| Sparr | SeeSawRush - 412 |
| archaephyrryx | Stitcher - 406 |
| PhiNotPi | RandomOscillator - 403 |
| ccarton | AnybodyThere - 398 |
| Comintern | 2BotsOneCup - 392 |
| kaine | SternBot - 387 |
| PhiNotPi | EvoBot2 - 385 |
| PhiNotPi | EvoBot1 - 381 |
| Brilliand | TimedAttack - 373 |
| Sylwester | ReluctantRanV2 - 373 |
| AndoDaan | PrimesAndWonders - 359 |
| Nax | TruthBot - 357 |
| DLosc | Plodder - 356 |
| weston | FastTrapClearBot - 345 |
| MikaLammi | PolarBearMkII - 340 |
| Sp3000 | ParanoidBot - 336 |
| Moop | Alternator - 319 |
| TestBot | FastClearBot - 302 |
| icedvariables | PyBot - 293 |
| TestBot | DecoyBot - 293 |
| kaine | BestOffense - 291 |
| Geobits | Backtracker - 289 |
| bornSwift | ScribeBot - 280 |
| IngoBuerk | Geronimo - 268 |
| flawr | CropCircleBot - 239 |
| plannapus | CleanUpOnAisleSix - 233 |
| frederick | ConBot - 230 |
| frederick | 128Bot - 222 |
| AndoDaan | EndTitled - 219 |
| PhiNotPi | CloakingDeviceBot - 215 |
| AndoDaan | GetOffMate - 206 |
| DLosc | ScaredyBot - 205 |
| isaacg | CleverAndDetermined - 202 |
| PhiNotPi | CantTouchThis - 202 |
| Moop | StubbornBot - 174 |
| Cruncher | StallBot - 168 |
| IngoBuerk | Gambler - 157 |
| BetaDecay | RussianRoulette - 129 |
| flawr | DoNothingBot - 123 |
| SebastianLamerichs | Dumbot - 115 |
| mmphilips | PacifistBot - 112 |
| SeanD | DontUnderstand - 92 |
| proudHaskeller | PatientBot - 83 |
| frederick | Dumberbot - 70 |
| flawr | MetaJSRandomBot - 68 |
| Darkgamma | TheRetard - 61 |
| BetaDecay | Roomba - 61 |
| BetaDecay | PrussianRoulette - 31 |
| frederick | Dumbestbot - 0 |
Pontuações finais de 09.10.2014
EDIT6 : Logs descartados devido ao tamanho e tempo de execução extremos. Você pode gerá-los você mesmo, descomentando as linhas RunThisTournament.py
.
EDIT5 : Implementado tratamento de abreviação no controlador, sem grandes tempos de execução. Isso tem o efeito colateral de que números e parênteses não são mais tratados como comentários. Você ainda pode usá-los se desejar fornecer uma versão anotada, mas seria muito útil se também houvesse uma versão não comentada do seu código , portanto, não preciso remover os comentários manualmente. Obrigado!
EDIT4 : O título foi alterado porque o torneio foi removido das perguntas da rede quente. Obrigado a @ GeeBits por apontar isso!
EDIT3 : Comentários removidos em programas bf, devido a um resultado inesperado, devem ser corrigidos agora. Se alguém tiver algum problema com a remoção de seus comentários, informe.
EDIT2 : Como causou um tempo de execução arcano no meu computador muito lento, reduzi o limite de tempo limite de 100000 ciclos para 10000 ciclos. Não que alguém tenha desviado o resultado de um jogo de corrida além desse ponto.
EDIT1 : Corrigido um erro no script de conversão, fazendo com que o intérprete não ignorasse os números nos programas comentados.
Descrição
Este é um torneio Brainfuck inspirado em BF Joust . Dois bots (programas Brainfuck) estão lutando entre si em uma arena representada por uma fita de memória. Cada célula pode conter valores de -127 a 128 e quebrar em seus limites (então 128 + 1 = -127).
Instruções válidas são semelhantes às do Brainfuck comum, o que significa:
+ : Increment cell at your pointer's location by 1
- : Decrement cell at your pointer's location by 1
> : Move your memory pointer by 1 cell towards the enemy flag
< : Move your memory pointer by 1 cell away from the enemy flag
[ : Jump behind the matching ']'-bracket if the cell at your pointer's location equals 0
] : Jump behind the matching '['-bracket if the cell at your pointer's location is not 0
. : Do nothing
A arena tem um tamanho de 10 a 30 células, que é pseudo-aleatoriamente escolhida a cada batalha. Nas duas extremidades, há um 'sinalizador' localizado com um valor inicial de 128, enquanto todas as outras células são zeradas. O objetivo do seu bot é zerar a bandeira do inimigo por 2 ciclos consecutivos antes que ele zere sua própria bandeira.
Cada bot começa com sua própria bandeira, que é a célula [0] de sua própria perspectiva. O oponente está localizado no outro lado da fita.
[ 128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 128 ]
^ ^
my bot other bot
Ambos os bots executam suas ações simultaneamente, isso é considerado um ciclo. O jogo termina após 10000 ciclos ou assim que uma das condições vencedoras é atingida. Se um dos programas chegar ao fim, ele simplesmente pára de fazer qualquer coisa até o final do jogo, mas ainda pode vencer.
Condições vencedoras
Seu bot vence em uma das seguintes condições:
- A bandeira do seu inimigo é zerada antes da sua
- Seu inimigo move o ponteiro para fora da fita (é executado
>
em sua bandeira ou<
por conta própria) - O valor da sua bandeira está mais longe de 0 do que o valor da bandeira do seu oponente após 10000 ciclos
Regras
Sua postagem deve conter um nome para seu bot e seu código.
- Você pode usar a seguinte sintaxe de abreviação para tornar seu código mais legível:
- por exemplo,
(+)*4
é o mesmo que++++
, isso é válido para qualquer instrução, exceto parênteses sem parênteses entre parênteses, pois a lógica do loop colide com a lógica de abreviação. Por favor use em[-[-[-
vez de([-)*3
- por exemplo,
- Qualquer outro caractere que não
+-><[].
seja um comentário e, portanto, ignorado, exceto as()*
abreviações
Bots que não seguirem as regras serão excluídos do torneio.
- Somente o Brainfuck básico é permitido, nenhuma outra variante que suporte procedimentos ou operações aritméticas
- O código-fonte do seu bot não deve conter colchetes incomparáveis
Você pode se informar sobre estratégias básicas, mas não use o código de outra pessoa para o seu próprio bot.
Pontuação
A pontuação de um bot é determinada pelo número de vitórias contra todos os outros bots. Um encontro entre 2 bots consiste em 10 partidas com diferentes comprimentos de fita de memória, o que resulta em uma pontuação máxima de 10 pontos por encontro. Um empate não resulta em pontos para esta partida.
Programa de controle
Você pode encontrar o programa de controle no github, junto com os registros completos das batalhas. A tabela de classificação será postada aqui assim que for gerada.
Sinta-se livre para clonar o repositório e experimentar seu bot contra os outros por conta própria. Use python Arena.py yourbot.bf otherbot.bf
para executar uma partida. Você pode modificar as condições com os sinalizadores de linha de comando -m
e -t
. Se o seu terminal não suportar seqüências de escape ANSI, use o --no-color
sinalizador para desativar a saída colorida.
Bots de exemplo
FastClearBot.bf
(>)*9 Since the tape length is at least 10, the first 9 cells can be easily ignored
([ Find a non-zero cell
+++ Increment at first, since it could be a decoy
[-] Set the cell to zero
]> Move on to the next cell
)*21 Repeat this 21 times
DecoyBot.bf
>(+)*10 Set up a large defense in front of your flag
>(-)*10 Set up another one with different polarity
(>+>-)*3 Create some small decoys
(>[-] Move on and set the next cell to zero
. Wait one round, in case it is the enemy's flag
)*21 Repeat this 21 times
O DecoyBot vence todas as partidas com um comprimento de fita superior a dez, pois o FastClearBot pode evitar os pequenos chamarizes, mas não os maiores. A única situação em que o FastClearBot pode vencer o DecoyBot é quando é rápido o suficiente para alcançar a bandeira do inimigo antes que seu oponente construa grandes chamarizes.
fonte
Respostas:
Nyuroki Magical Fantasy
Eu acho que está na hora de falar a sério ~ Eu terminei meu compilador para um pouco de HLL para facilitar a escrita de programas BF Joust. Esta foi a minha primeira tentativa séria de fazer algo com isso. O conceito do bot é bem simples. Ele configura alguns chamarizes de polaridades variadas e depois enlouquece com uma grande oscilação clara com um deslocamento reverso claro no meio.
Ah, a propósito, a pontuação esperada é de aproximadamente 577 pontos contra a colina da última rodada. Essa é uma taxa de vitória de 93%. <3
Compilado | Código fonte
Edit : Eu espremi mais algumas vitórias de Nyuroki.
Edit 2 : Ei, olha, eu fiz de novo!
Edit 3 : Depois de lutar um pouco com um bug estúpido de análise no Arena.py, finalmente consegui outra melhoria em ~ Isto é o que quero dizer com "hora de levar a sério", você sabe. <3
fonte
)
e*
ou entre*
e número?Bot do dispositivo de camuflagem
Esse bot basicamente tenta esconder sua base, fazendo com que outros bots passem por ele e saiam da fita.
fonte
Burly Balder v3
Burly Balder é uma corrida lenta média. Faz dois chamarizes grandes antes de entrar no modo rápido. No modo acelerado, ele possui um loop que usa apenas 4 etapas em cada célula zero e, quando uma célula diferente de zero, faz uma análise de caso para [-18,18] antes de reduzir cegamente com 107 antes de limpar com
[-.]
. Ele limpa uma bandeira inalterada em 242 etapas, 114 a mais que uma incerta-*128
e 14 a menos que uma[-]
clara ingênua . Quando uma célula é limpa, ele continua deixando um rastro de -2 chamarizes. Ele tem um caso especial apenas para o índice 9 salvar algumas etapas para jogos de tamanho 10 e deixa a célula com um chamariz.Curiosidades: Balder é um deus nórdico e filho de Odin. Ele é conhecido principalmente pela história de sua morte : estava com medo de sua segurança, então os outros deuses tentaram prever e se proteger contra todas as ameaças. Ele acabou sendo morto por Loki, pois enquanto eles o protegiam contra espadas e flechas, eles se esqueceram de protegê-lo contra o visco.
fonte
BeatYouMate
foi inteligente. Temo que os chamarizes na maioria dos bots fiquem ainda maiores na próxima rodada até que dê uma penalidade. Então vamos talvez ter algumas estratégias mais frescas :) emergentesEvoBot 1
Este é um bot simples criado via algoritmo genético. Comecei com um modelo e meu programa ajustou lentamente os números para criar um melhor robô-guerreiro. O código abaixo foi editado para aumentar a legibilidade.
Eu usei as outras entradas na competição para medir a adequação dos diferentes candidatos.
Como essa foi minha primeira tentativa de evobot, comecei com um modelo simples:
Prevejo que este bot receberá uma pontuação na faixa de 50 a 60 anos.
Atualmente, estou trabalhando em um modelo de chamariz reverso.EvoBot 2
Este é um bot criado pelo mesmo algoritmo genético, mas com o seguinte modelo:
Este bot usa a estratégia de engodo reverso para definir 4 engodos de altura variável. O bot resultante é:
Eu espero que este novo bot se saia melhor do que os bots anteriores, possivelmente obtendo uma pontuação nos anos 70 (provavelmente muito maior do que isso, pois existem muitas novas entradas).
fonte
Alternador
Ele supõe que a maioria das pessoas zere uma célula adicionando ou subtraindo a ela, portanto, em média, cada célula fará 128 voltas a zero.
Versão anotada
fonte
Então, alguém aqui usando um algoritmo genético para tentar criar programas aqui. Bem ... há muito tempo atrás, escrevi um evolver BF Joust para uma colina em andamento em um canal de IRC. Eu decidi dar uma volta para este concurso também ~
E ... diferente da outra pessoa com um evolver, meu evolver pode realmente mudar mais do programa do que repetir contagens. :)
NestDarwin (geração 309)
Este é o melhor resultado que meu evolver conseguiu até agora. Não tenho certeza de quanto a estrutura aninhada ajuda nesse caso, mas estruturas como essa foram o que o evolver deve ser capaz de fazer. O desempenho esperado na colina 27.08.2014 é 474 pontos. (Calculado executando a batalha em todos os 21 comprimentos de fita e multiplicando por 10/21. Observe que isso não é normalizado pelo fato de que este morro tem um programa extra)
EDIT : Lista alterada de programas que eu quero entrar nesta colina. Ran evolver durante a noite. :)
EDIT 2 : Analisei manualmente a saída do evolver. Apesar de parecer muito diferente, o NestDarwin é basicamente uma versão otimizada do TinyDarwin ... Minimizado manualmente (com funcionalidade idêntica) e analisado:
Portanto, um programa quase idêntico seria o seguinte ... que é basicamente uma versão super otimizada do TinyDarwin.
TinyDarwin foi o seguinte. Não é muito diferente, hun? Eu só vou retirá-lo da colina. Eu pensei que era distinto, mas ... bem, eu estava errado.
Tornou-se aparente que a colina atual não é forte o suficiente para permitir que evolua coisas muito mais complexas. :(
fonte
Urso polar Mk II
Existem dois tipos de ursos polares : aqueles que ficam presos e aqueles que prendem outras pessoas.
Tenta adivinhar a polaridade do oponente e depois usa essas informações para prender o oponente em um loop infinito. Funciona bem contra estratégias simples de compensação e um tanto aleatoriamente contra outras. As armadilhas podem ser facilmente evitadas, por isso posso adicionar algumas estratégias de backup posteriormente.
fonte
(]< (+)*290 (>)*9 ... [-])*2
?+
e a outra usa-
.[(+)*3[-]]
,[(-)*6[+]]
) e ele funciona muito bem (pelo menos para muito pequenas compensações).>>>>>>>>>((-)*4[+][--.]>)*21
o de verificar duas vezes a célula e a sua,(+/-)*290
causando o acionamento do segundo loop fora de sincronização. Não é culpa da compensação de offset.Bot Pacifista
Meu bot acredita que a violência nunca é a resposta e tentará evitar o combate a todo custo.
fonte
Alguém aí?
Periodicamente, olha para trás para determinar quando o inimigo começou a limpar seus engodos e depois se apressa.
Parece fazer bem, mas não tenho certeza se é por causa da estratégia ou apenas porque estou adicionando 10 a cada célula antes de limpar.
Editar: corrigido um problema de lógica. Primeira vez que escrevi um programa de foda cerebral. Faz jus ao seu nome.
fonte
WALL-E 2.0
Corre para o local 9 e adiciona 128, ganhando rapidamente na arena tamanho 10 se o oponente não tiver alterado o valor inicial da bandeira. Em arenas maiores, isso funciona como isca grande. Depois disso, preenche o espaço entre o local 9 e a própria bandeira com grandes chamarizes. Quando os chamarizes são colocados, ele procura por locais não vazios e tenta limpá-los rapidamente.
A versão 2.0 cria engodos maiores e tem alguma tolerância em relação à alteração do valor inicial do sinalizador. Também pode mudar para a estratégia de backup se as coisas começarem a parecer peludas.
A eficácia desse bot é baseada em dois fatos:
fonte
Lethal Loke V2.1 (com visco)
É claro que este é um robô mortal e ele mata não apenas a bela Burly Balder com visco, mas ganha quase sempre contra os outros bots. É uma corrida média e rápida combinada. Meu teste me dá uma pontuação de 567
Arquivo BFJ compilado para batalha , fonte do gerador Racket BFJ:
Curiosidades : Loke (Loki) é um deus da mitologia nórdica que gosta de brincar com todos e enganá-los. Ele é um metamorfo (em animais e pessoas) e geralmente segue seus próprios caminhos. Nas histórias, ele costuma viajar e ajudar os outros deuses e faz pequenos truques e agita as coisas. Além de matar Balder, ele foi pai de Hel (deusa do inferno / Helvete), a besta Fenrir e a serpente Midgard que inicia Ragnarok (armageddon nórdico).
Como funciona
No começo, ele faz um grande chamariz (-17) e cria um
+-
padrão até o índice 7. Ele avança de 13 para 13 deixando um rastro de (+ 10, -32) + chamarizes, mas quando detecta um conjunto, ele aborta e inicie um modo de aceleração médio * 1. Se nenhuma célula estiver definida, ele também iniciará o modo de aceleração lento * 3.* 1 No modo de corrida média, ele detectou a atividade do oponente em um dos índices 7-13 e ele começa no índice 2. Alguns oponentes deixam um zero e outros deixam um valor diferente e agora ele tem meios de detectar a atividade do oponente enquanto antes de fazer iscas. índice 2-6 (-32, + 10) +. Se o valor não for esperado da célula (-1, 1) ou ele terminar de fazer todos os chamarizes, ele entrará no modo rápido * 2 rush.
* 2 No modo de corrida rápida, ele espera que tenha sido detectado para que os engodos não funcionem. Esperamos que os que já definimos parem o oponente e se concentrem em passar pelas armadilhas do oponente. Ele começa a correr no ponto mais distante que conhecemos, com base na varredura anterior [9,14] ou no índice 9, se formos feitos antes disso. Ele tem um caso especial para o primeiro engodo, onde adicionamos 120 e 27, já que ele não deseja reduzir o valor abaixo de zero, é uma armadilha, mas para cada engodo depois de passarmos a [-8,8] antes de aumentar em 120 e dando 27 passos antes de avançar para a próxima célula.
O modo slow rush foi removido, pois não afetou a pontuação na colina atual e torna meu bot um pouco menor (mas não muito).
fonte
Geronimo
É ainda mais ofensivo do que o bot BestOffense de kaine, pois não cria nenhuma defesa. A estratégia aqui é: outros tentarão ser espertos, mas ser esperto leva ciclos. Então, vamos pular para a parte em que sabemos que o inimigo está e limpar tudo o que encontramos.
Parece ganhar a maioria dos jogos contra os bots de exemplo do OP e o bot de kaine.
fonte
SternBot
Um bot meio sério agora que tudo começou. Abordando a natureza simulada de alguns desses bots.
fonte
DoNothingBot
Não faz nada.
EDIT: Uau, fiquei surpreso ao ver que ele fez um trabalho melhor do que mais de pelo menos 20% de todos os bots =) (Isso significa que ele usa uma estratégia superior ou ....?)
fonte
DoNothingBot
CounterPunch - Editado
Combinação equilibrada de construir uma forte defesa e depois atacar.
Anotado:
Defende semelhante ao Backtracker do @ Geobit , mas defende contra atacantes velozes colocando um engodo rápido na frente da bandeira primeiro.
O ataque é limpo com polaridade oposta para limpar rapidamente os chamarizes com valores pequenos. O pior cenário deve ser um chamariz de 64 (qualquer polaridade).
Edit 1: Melhorar a eficiência de ataque contra chamarizes (houve um erro lógico na troca de polaridade).
Editar 2: o teste indica que a pausa tem um desempenho um pouco melhor no loop mais interno.
fonte
Backtracker
Uma estratégia de chamariz reversa. Comece a colocar iscas na parte de trás da frente, para que ninguém pule o resto enquanto eu as construo.
Se o tabuleiro for menor que o tamanho 20 ou mais, isso não funcionará contra robôs de ataque rápido, já que passaremos um pelo outro antes que eu comece a enganar.
Nota: Eu não BF, mas isso faz o que eu quero para mim. Caso contrário, deixe-me agora.
fonte
Não pode tocar nisto
Este é um programa orientado para a defesa que tenta determinar como o oponente está limpando as células e cria um chamariz do tamanho apropriado.
Atualmente, estou trabalhando em uma versão que pode vencer as duas polaridades.
fonte
ImpatientTripwire (tcp YandereBot)
Tenta ser um fio de trip para que ele possa colocar iscas (principalmente) da polaridade correspondente, mas desiste se você demorar demais e assume que você é a paridade oposta. Possui um fio de trip reverso para pequenas placas.
Versão atual: 1.3 - editada para se sair melhor em placas menores, à custa de perder jogos devido a inimigos passando furtivamente durante a verificação de fios
Versões anteriores: 1.2.1
(Preciso de um algoritmo claro melhor: /)
fonte
([)*300
voltar para[[[ and so on
?Lightfoot Plodder - EDITADO
Com base no Plodder , esse gigante veloz é capaz de "avançar rapidamente" através de z consecutivos rapidamente, até atingir algo diferente de zero (nesse ponto, começa a trabalhar como esperado).
Agora aprimorado com um algoritmo de skimming mais robusto, que também permite avançar rapidamente através de pequenos chamarizes e chamarizes maiores.
Edição # 2 : Agora é possível voltar ao skimming se encontrar mais bolsões de zeros.
fonte
Rán relutante v2
A estratégia é fácil. Tente fazer com que o oponente pense que a bandeira dela é uma isca e passe antes do tabuleiro e solte (uma espécie de arame / vibrador). Após 10 rodadas completas, ela desiste e tenta determinar se o oponente está em sua bandeira e, caso contrário, fará -17 iscas até atingir uma célula definida. O método de limpeza que ela usa é um caso especial para [-12,12] e começa a andar de maneira semelhante a Loke.
Curiosidades: Rán é uma deusa do mar da mitologia nórdica que leva marinheiros antes de morrerem no mar.
fonte
Mickey V4
Para a V4, usei o mesmo método da V3, contra os bots atualizados, mas com populações mais concorrentes (30 e não 10).
Desenvolvido contra todos os 60 bots, incluindo
BurlyBalderV3
eLethalLoke
(mas excluindo o 2botsonecup, que é compilável pela minha estrita implementação).Descobri bots muito diferentes e taxas de sucesso se eu começasse com sementes aleatórias diferentes. Então, decidi separar esses diferentes pontos de partida em populações e deixá-los ocasionalmente polinizar.
Em 1400 gerações, 30 populações em evolução simultânea criaram este programa:
Calculo que a taxa de vitórias deste bot seja 90,0% em relação à safra atual. (1135/125/0 comprimentos de fita vencidos / perdidos / empatados).
Informação V3
Taxa de vitórias calculada de 89,2% (1124/62/74 comprimentos de fita ganhos / perdidos / empatados).
Informação V2
O programa de geração agora tem uma análise para determinar qual parte do final do programa não está sendo usada e a apara antes de gerar as próximas gerações. Isso significa que mutações aleatórias ocorrem apenas em partes usadas do programa e, portanto, a evolução é mais rápida.
72% em relação à safra atual da época. (892/204/143 comprimentos de fita vencidos / perdidos / empatados).
Informação V1
31500 gerações, apenas 12 bots enfrentados. 65% (comprimentos de fita 165/80/7 vencidos / perdidos / empatados). Eu uso todos os 21 comprimentos de fita.
Os bots em potencial são classificados por:
Jogo de perguntas sobre cultura geral
The Naming of Cats is a difficult matter, It isn't just one of your brainfuck bots
fonte
Jogador
Isso está intimamente relacionado ao meu bot Geronimo. Mas onde Geronimo está jogando com certeza, o Jogador tenta ser mais rápido, fazendo o que faz melhor: jogar: vai para a vigésima cela e começa a zerar a partir daí.
Isso significa que pode facilmente perder apenas porque a arena não é tão grande. Mas, se for, podem ser os poucos ciclos que contam.
Curiosidade: Eu estava realmente pensando em entrar em um monte de bots que parecem
(>)*X(>[-])*Y
ondeX in 9..29
e ondeY = 30 - X
. Mas acho que digitar vinte bots seria um pouco demais :) Ou até quarenta se eu tivesse duas versões, uma com zero[+]
e outra com isso[-]
.fonte
Dumbot
Um bot notavelmente estúpido que mexe com o meio ambiente e espera que todos os bots que ele enfrenta sejam eliminados.
(Não tenho certeza se isso funciona - mas não há erro!)
Anotado (com o que eu acho que faz):
(Ficarei desconcertado se isso vencer uma única batalha)
fonte
CropCircleBot
Este Bot usa algoritmos avançados que foram transmitidos por alienígenas através de círculos que eles colocaram na Terra. Isso mudará a humanidade e proporcionará enormes avanços tecnológicos e até resolverá muitos problemas ambientais.
fonte
BeatYouMate
E como todo mundo deve postar um bot que vencerá o primeiro bot que postar, aqui está um bot de engodo com mais de 5 anos:
fonte
CleverAndDetermined
Define algumas pequenas armadilhas, depois corre para o outro lado e tenta limpar tudo, acima ou abaixo de zero. Falha
----
.fonte
+++
antes[-]
é realmente inteligente para evitar armadilhas simples!(
. Posso tratá-lo como um comentário?MetaJSRandomBot
A idéia por trás desse bot é tornar algo totalmente aleatório, que ainda é um código js válido sem muita inutilidade. Eu escrevi o seguinte código ( link JSFiddle ) para gerá-lo. Vamos ver o quão bem faz =)
fonte
Roleta Prussiana
A Roleta Russa fez uma aposta com seu amigo Prussiano, e agora é sua vez de jogar.
fonte
Maior
A corrida armamentista começa !!
Constrói e destrói muros de altura
16 a18, maiores que a maioria dos concorrentes. Também tem um pouco de lógica para vencer o cloaker, defensores de bandeiras, anti-alternadores e bots que assumem uma bandeira intocadaVersão anotada
fonte
PatientBot
Um bot parcialmente sério. este bot tentará vencer pelo limite de 100000 ciclos. ele irá para a bandeira inimiga enquanto coloca algumas armadilhas no caminho, diminui um pouco, volta e defende a bandeira.
assumirá que tudo maior que 1 ou menor que -1 é a bandeira e, quando encontrar uma, ela voltará. defende simplesmente incrementando constantemente. isso pressupõe que a maioria dos programas use [] para verificar se o sinalizador se tornou 0 e, portanto, (+) * 100000 será muito mais rápido
Edit: não é possível fazê-lo funcionar no intérprete BF Joust. Estou desistindo. talvez você deva me dizer como melhorar meu código.
Edit: agora o bot aparece no local logo antes da flag 2 e, depois de diminuí-la um pouco, procura um 2. Isso significa cancelar o cenário em que o bot encontraria uma célula 0 diferente da anterior à bandeira.
fonte
[<]
não é uma boa ideia, pois ela repete o processo até que a célula sob o ponteiro seja igual a zero , que é uma das células na frente da sua bandeira ou simplesmente suicida se o ponteiro chegar à bandeira (desde a sua bandeira) espero que não seja zero ).