У всех ботов на боевой арене внезапно началось головокружение, и никто не может объяснить, почему. Но кого это волнует, пока они все еще могут сражаться - хотя Brainfuck - единственный язык, который они понимают больше.
Прошло много времени с момента последнего представления, поэтому я наконец объявлю победителя BrainFuckedBotsForBattling: Поздравляем LymiaAluysia с победой с NyurokiMagicalFantasy!
Табло
| 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 |
Итоговые результаты за 09.10.2014
РЕДАКТИРОВАТЬ 6 : журналы отбрасываются из-за чрезвычайного размера и времени выполнения. Вы можете создать их самостоятельно, раскомментировав строки в RunThisTournament.py
.
EDIT5 : Реализована обработка сокращений в контроллере, больше нет времени выполнения. У этого есть побочный эффект, что числа и круглые скобки больше не рассматриваются как комментарии. Вы по-прежнему можете использовать их, если хотите предоставить аннотированную версию, но было бы очень полезно, если бы была и некомментированная версия вашего кода , поэтому мне не нужно удалять комментарии вручную. Спасибо!
EDIT4 : изменил название, потому что турнир был удален из горячих сетевых вопросов. Спасибо @Geobits за указание на это!
EDIT3 : Удаленные комментарии в программах bf, из-за неожиданного результата, должны быть исправлены сейчас. Если у кого-то есть проблемы с удалением его комментариев, пожалуйста, сообщите.
РЕДАКТИРОВАТЬ 2 : Так как это вызвало тайное время выполнения на моем довольно медленном компьютере, я сократил предел тайм-аута с 100000 циклов до 10000 циклов. Не то, чтобы кто-то перевернул результат запущенной игры за пределы этой точки.
EDIT1 : исправлена ошибка в скрипте конвертации, из-за которой интерпретатор не игнорировал числа в прокомментированных программах.
Описание
Это турнир Brainfuck, вдохновленный BF Joust . Два бота (программы Brainfuck) сражаются друг с другом на арене, которая представлена лентой памяти. Каждая ячейка может содержать значения от -127 до 128 и переносить их на свои пределы (поэтому 128 + 1 = -127).
Действительные инструкции похожи на обычные Brainfuck, что означает:
+ : 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
Арена имеет размер от 10 до 30 ячеек, которые выбираются псевдослучайно в каждой битве. На обоих концах находится «флаг», который имеет начальное значение 128, а все остальные ячейки обнуляются. Цель вашего бота - обнулить флаг противника в течение 2 последовательных циклов, прежде чем он обнулит ваш собственный флаг.
Каждый бот начинается со своего собственного флага, который является ячейкой [0] с его собственной точки зрения. Противник находится на другой стороне ленты.
[ 128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 128 ]
^ ^
my bot other bot
Оба бота выполняют свои действия одновременно, это считается одним циклом. Игра заканчивается после 10000 циклов или после достижения одного из условий победы. Если одна из программ достигает своего конца, она просто перестает делать гимн до конца игры, но все равно может победить.
Условия выигрыша
Ваш бот выигрывает при одном из следующих условий:
- Флаг вашего врага обнуляется перед вашим
- Ваш враг убирает указатель с ленты (выполняет
>
под вашим флагом или<
самостоятельно) - Значение вашего флага намного дальше от 0, чем значение флага вашего оппонента после 10000 циклов
правила
Ваш пост должен содержать имя вашего бота и его код.
- Вы можете использовать следующий синтаксис аббревиатур, чтобы сделать ваш код более читабельным:
- Например,
(+)*4
это то же самое++++
, что это справедливо для любой инструкции, за исключением непрямых скобок в скобках, поскольку логика цикла вступает в противоречие с логикой аббревиатуры. Пожалуйста, используйте[-[-[-
вместо([-)*3
- Например,
- Любой другой символ, кроме
+-><[].
комментария и, следовательно, игнорируется, за исключением()*
сокращений
Боты, которые не следуют правилам, будут исключены из турнира.
- Допускается только базовый Brainfuck, никакие другие варианты, которые поддерживают процедуры или арифметические операции
- Исходный код вашего бота не должен содержать одинаковые скобки
Вы можете узнать об основных стратегиях, но не использовать чужой код для своего собственного бота.
счет
Оценка бота определяется количеством побед против всех остальных ботов. Встреча между двумя ботами состоит из 10 матчей с разной длиной ленты памяти, что дает максимальный балл в 10 очков за бой. Ничья не дает очков в этом матче.
Управляющая программа
Вы можете найти управляющую программу на github, а также полные логи сражений. Список лидеров будет размещен здесь после его создания.
Не стесняйтесь клонировать репозиторий и попробовать свой бот против других самостоятельно. Используйте python Arena.py yourbot.bf otherbot.bf
для запуска матча. Вы можете изменить условия с помощью флагов командной строки -m
и -t
. Если ваш терминал не поддерживает escape-последовательности ANSI, используйте --no-color
флаг, чтобы отключить цветной вывод.
Пример ботов
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
DecoyBot будет выигрывать каждый матч с длиной ленты больше десяти, так как FastClearBot может избегать маленьких приманок, но не больших. Единственная ситуация, в которой FastClearBot может выиграть у DecoyBot, - это когда он достаточно быстр, чтобы достичь флага противника до того, как его противник собрал большие приманки.
источник
Ответы:
Нюроки волшебной фантазии
Я думаю, что пора стать серьезным ~ Я закончил свой компилятор для небольшого HLL, чтобы облегчить написание программ BF Joust. Это была моя первая серьезная попытка что-то с этим сделать. Концепция бота довольно проста. Он настраивает несколько приманок различной полярности, а затем сходит с ума с большим чистым покачиванием с обратным смещением в середине.
О, кстати, ожидаемый счет примерно 577 очков против холма последнего раунда. Это 93% выигрыша. <3
Скомпилировано | Исходный код
Изменить : Я выжал еще несколько побед из Нюроки.
Редактировать 2 : Эй, смотри, я сделал это снова!
Редактировать 3 : После некоторой борьбы с дурацкой ошибкой разбора в Arena.py, я наконец-то получил еще одно улучшение в ~ Это то, что я имею в виду под «временем стать серьезным», вы знаете. <3
источник
)
и*
или между*
и числом?Устройство маскировки бот
Этот бот в основном пытается скрыть свою базу, делая так, чтобы другие боты двигались прямо мимо него и с ленты.
источник
Burly Balder v3
Burly Balder - средний медленный порыв. Это делает две большие приманки, прежде чем перейти в режим пик. В спешном режиме он имеет цикл, который использует только 4 шага на каждую нулевую ячейку, и, когда ненулевая ячейка, он имеет анализ случая для [-18,18], прежде чем слепо уменьшить с 107 до очистки с
[-.]
. Он сбрасывает неизменный флаг за 242 шага, на 114 больше, чем неопределенный,-*128
и на 14 меньше, чем наивный[-]
. Когда клетка очищается, он продолжает покидать тропу из -2 приманок. У него есть специальный случай только для индекса 9, чтобы сохранить некоторые шаги для игр 10-го размера, и он оставляет ячейку с 1 приманкой.Общая информация: Балдер - нордический бог и сын Одина. Он известен в основном историей своей смерти : он боялся за свою безопасность, поэтому другие боги пытались предсказывать и защищать от любой угрозы. В конечном итоге он был убит Локи, потому что, когда они защищали его от мечей и стрел, они забыли защитить его от Омелы.
источник
BeatYouMate
был умным. Я боюсь, что приманки на большинстве ботов в следующем раунде станут еще больше, пока они не дадут штраф. Тогда, возможно, у нас появятся более крутые стратегии :)EvoBot 1
Это простой бот, созданный с помощью генетического алгоритма. Я начал с шаблона, и моя программа медленно корректировала числа, чтобы создать лучшего воина-бота. Код ниже был отредактирован для повышения читабельности.
Я использовал другие записи в конкурсе, чтобы измерить пригодность разных кандидатов.
Так как это была моя первая попытка evobot, я начал с простого шаблона:
Я предсказываю, что этот бот получит очки в диапазоне от 50 до 60 лет.
В настоящее время я работаю над обратным шаблоном приманки.EvoBot 2
Это бот, созданный по тому же генетическому алгоритму, но со следующим шаблоном:
Этот бот использует стратегию обратного приманки, чтобы установить 4 приманки разной высоты. Полученный бот:
Я ожидаю, что этот новый бот будет лучше, чем предыдущие, возможно, заработав очки в 70-х годах (возможно, намного выше, чем это, поскольку есть много новых записей).
источник
Генератор
Предполагается, что большинство людей будут обнулять ячейку, либо добавляя, либо вычитая ее, поэтому в среднем каждая ячейка займет 128 оборотов в ноль.
Аннотированная версия
источник
Итак, кто-то еще здесь использует генетический алгоритм, чтобы попытаться сделать программы здесь. Ну ... давным-давно, я написал BF Joust evolver для продолжающегося холма в канале IRC. Я решил дать этому повод для этого конкурса ~
И ... в отличие от другого человека с эволвером, мой эволвер может на самом деле изменить больше программы, чем количество повторений. :)
НестДарвин (Поколение 309)
Это лучший результат, который до сих пор достиг мой эволюционер. Я не уверен, насколько вложенная структура помогает в этом случае, но такие структуры были тем, что должен делать эволюционер. Ожидаемое выступление на горе 27.08.2014 года составляет 474 балла. (Рассчитывается путем запуска битвы на всех 21 длинах ленты и умножения на 10/21. Обратите внимание, что это не нормализовано для факта, что на этом холме есть одна дополнительная программа)
РЕДАКТИРОВАТЬ : Изменен список программ, которые я хочу войти в этот холм. Побежал в течение ночи. :)
РЕДАКТИРОВАТЬ 2 : я пошел и вручную проанализировал выход evolver. Несмотря на то, что NestDarwin выглядит совсем по-другому, в основном это оптимизированная версия TinyDarwin ... Свернутое вручную (с идентичной функциональностью) и проанализированное:
Итак, почти идентичная программа будет выглядеть следующим образом ... это в основном супероптимизированная версия TinyDarwin.
TinyDarwin был следующим. Не сильно отличается, хун? Я просто собираюсь снять его с холма. Я думал, что это было ясно, но ... хорошо, я был неправ.
Стало очевидным, что нынешний холм недостаточно силен, чтобы позволить ему развиваться гораздо более сложными вещами. :(
источник
Белый медведь Mk II
Есть два вида белых медведей : те, кто попадают в ловушку, и те, кто ловит других людей.
Пытается угадать полярность противника, а затем использует эту информацию, чтобы замкнуть противника в бесконечный цикл. Хорошо работает против простых клиринговых стратегий и несколько случайно против других. Можно легко избежать ловушек, поэтому я мог бы добавить некоторые стратегии резервного копирования позже.
источник
(]< (+)*290 (>)*9 ... [-])*2
?+
а другая использует-
.[(+)*3[-]]
,[(-)*6[+]]
), и он прекрасно работает (по крайней мере, для довольно небольших смещений).>>>>>>>>>((-)*4[+][--.]>)*21
двойной проверки ячейки, а вы(+/-)*290
вызывали запуск второго несинхронизированного цикла. Не ошибка смещения клиренса.Pacifist Bot
Мой бот верит, что насилие никогда не ответит, и постарается избежать боя любой ценой.
источник
Есть кто там?
Периодически оглядывается, чтобы определить, когда враг начал расчищать свои приманки, а затем бросается вперед.
Кажется, все хорошо, но я не уверен, что это из-за стратегии или просто потому, что я добавляю 10 к каждой ячейке перед очисткой.
Редактировать: Исправлена логическая проблема. Впервые пишу программу для брейкфука. Это соответствует своему названию.
источник
WALL-E 2.0
Прорывается к локации 9 и прибавляет к ней 128, быстро выигрывая на арене размера 10, если противник не изменил начальное значение флага. На больших аренах это работает как большая приманка. После этого он заполняет пространство между местоположением 9 и собственным флагом большими приманками. Когда ложные цели размещены, он ищет непустые места и пытается их быстро очистить.
Версия 2.0 создает большие приманки и допускает изменение начального значения флага. Это может также переключиться на резервную стратегию, если вещи начинают выглядеть волосатыми.
Эффективность этого бота основана на двух фактах:
источник
Смертельный Локе V2.1 (с Омелой)
Это, конечно, смертельный бот, и он убивает не только красивую Burly Balder a омелой, но и почти каждый раз побеждает против других ботов. Это комбинированный средний и быстрый порыв. Мой тест дает мне 567 баллов
Скомпилированный файл BFJ для битвы , источник генератора Racket BFJ:
Общая информация : Локе (Локи) - бог скандинавской мифологии, который любит играть со всеми и обманывать их. Он меняет форму (на животных и людей) и обычно идет своим путем. В рассказах он часто путешествует с другими богами и помогает им, а также делает маленькие трюки и расшевеливает вещи. Помимо убийства Балдера, он породил Хель (богиню ада / Гельвета), зверя Фенрира и змея Мидгарда, который начинает Рагнарок (скандинавский армагеддон).
Как это устроено
Вначале он делает большую (-17) приманку, затем создает
+-
шаблон вплоть до индекса 7. Он сканирует вперед с 13, оставляя след (+ 10, -32) + приманок, но когда он обнаруживает набор, он отменяет и начните средний * 1 срочный режим. Если ни одна ячейка не установлена, он также запустит медленный режим * 3.* 1 В режиме средней лихорадки он обнаружил активность оппонента в одном из индексов 7-13 и начинает с индекса 2. Некоторые оппоненты оставляют ноль, а другие оставляют другое значение, и теперь у него есть средства для обнаружения активности оппонента перед тем, как делать приманку в индекс 2-6 (-32, + 10) +. Если ячейка не имеет ожидаемого значения (-1, 1) или он закончил делать все приманки, он переходит в быстрый * 2 ускоренный режим.
* 2 В быстром режиме он ожидает, что его обнаружат, поэтому приманки не будут работать. Мы надеемся, что те, которые мы уже установили, останавливают противника и сосредоточены на пробежке через приманки противника. Он начинает мчаться в самую дальнюю точку, которую мы знаем, на основании предыдущего сканирования [9,14] или индекса 9, если мы были сделаны раньше, чем это. У него есть особый случай для первой приманки, когда мы просто добавляем 120 и plodd 27, так как он не хочет уменьшать значение ниже нуля, если это ловушка, но для каждой приманки после того, как мы покачиваемся в [-8,8] перед увеличением на 120 и 27 шагов, прежде чем продолжить движение к следующей соте.
Режим медленной скорости был удален, так как он не влиял на счет с текущим холмом, и это делает моего бота немного меньше (но не намного).
источник
Джеронимо
Это даже более оскорбительно, чем бот BestOffense Кейна, так как он не создает никакой защиты. Стратегия здесь такова: другие будут стараться быть умными, но чтобы быть умными, нужны циклы. Так что давайте просто перейдем к той части, в которой мы знаем, что враг находится, и очистим все, что мы найдем.
Кажется, выигрывает большинство матчей против примерных ботов ОП и бота Кейна.
источник
SternBot
Настоящий полусерьезный бот теперь, когда все началось. Решение проблемы симуляции некоторых из этих ботов.
источник
DoNothingBot
Это ничего не делает.
РЕДАКТИРОВАТЬ: Wow, я был удивлен, увидев, что он сделал лучшую работу, чем более чем на 20% всех ботов =) (Это означает, что он использует превосходную стратегию или ....?)
источник
DoNothingBot
CounterPunch - Отредактировано
Сбалансированная комбинация построения сильной защиты и последующей атаки.
Аннотированный:
Защищается аналогично Backtracker @ Geobit , но защищается от быстрых атакующих, сначала ставя быструю приманку перед флагом.
Атака является вложенной очисткой с противоположной полярностью, чтобы быстро очистить приманки с небольшими значениями. Наихудший сценарий должен быть приманкой 64 (любая полярность).
Редактировать 1: улучшить эффективность атаки против приманок (была логическая ошибка при переключении полярности).
Изменить 2: Тестирование показывает, что пауза работает немного лучше в самом внутреннем цикле.
источник
Backtracker
Стратегия обратного приманки. Начните укладывать приманки спереди назад, чтобы никто не пропустил остальные, пока я их строю.
Если размер доски меньше 20 или около того, это не сработает против ботов быстрой атаки, так как мы просто передадим друг друга, прежде чем я начну приманку.
Примечание: я не BF, но это делает то, что я хочу от меня. Если нет, пожалуйста, дайте мне сейчас.
источник
Не могу коснуться этого
Это оборонно-ориентированная программа, которая пытается определить, как противник очищает клетки, и создает приманку соответствующего размера.
В настоящее время я работаю над версией, способной победить обе полярности.
источник
ImpatientTripwire (также известный как YandereBot)
Пытается быть путаницей, чтобы он мог приманить (в основном) соответствующей полярности, но сдается, если вы берете слишком много времени и предполагаете, что вы наоборот. Имеет обратную растяжку для небольших досок.
Текущая версия: 1.3 - отредактирована для улучшения на небольших досках за счет проигрыша в играх из-за того, что враги крадутся мимо во время проверки триплэйра
Прошлые версии: 1.2.1
(Мне нужен более понятный алгоритм: /)
источник
([)*300
вернуться к[[[ and so on
?Lightfoot Plodder - отредактированный
Основанный на Plodder , этот быстрый бегемот способен быстро « перематывать » вперед через последовательные нули , пока не достигнет чего-то отличного от нуля (в этот момент он начинает дойти, как и ожидалось).
Теперь улучшен с помощью более надежного алгоритма скимминга, который также позволяет выполнять быструю перемотку вперед с помощью небольших приманок и собственных больших приманок.
Редактирование # 2 : Теперь можно вернуться к скиммингу, если он найдет больше карманов нулей.
источник
Неохотный Ран v2
Стратегия проста. Попытайтесь заставить противника думать, что ее флаг является приманкой и предшествует доске и выпадает (своего рода трип-провод / вибратор). После 10 полных раундов она сдается и пытается определить, находится ли противник под ее флагом, и если нет, она будет делать -17 приманок, пока не достигнет ячейки набора. Метод очистки, который она использует, является особым случаем для [-12,12] и начинает дойти, как Локе.
Общая информация: Ран - морская богиня мифологии Северных стран, которая берет моряков, прежде чем они умрут в море.
источник
Микки V4
Для V4 я использовал тот же метод, что и V3, против обновленных ботов, но с более одновременным населением (30, а не 10).
Разработано против всех 60 ботов, включая
BurlyBalderV3
иLethalLoke
(но исключая 2botsonecup, который не компилируется моей строгой реализацией).Я обнаружил совершенно разные боты и показатели успеха, если начал с разных случайных семян. Поэтому я решил разделить эти разные исходные точки на популяции и позволить им иногда перекрестно опылять.
За 1400 поколений 30 одновременно развивающихся групп создали эту программу:
Я рассчитываю, что процент выигрышей этого бота будет 90,0% по сравнению с текущим урожаем. (Длина ленты 1135/125/0 выиграна / проиграна / ничья).
V3 информация
Расчетный коэффициент выигрыша 89,2% (длина ленты 1124/62/74 выиграна / проиграна / ничья).
V2 информация
Программа генерации теперь имеет анализ, который сообщает, какая часть конца программы не используется, и обрезает ее, прежде чем генерировать из нее следующие поколения. Это означает, что случайные мутации происходят только в используемых частях программы, и поэтому эволюция происходит быстрее.
72% против текущего урожая в то время. (892/204/143 длины ленты выиграл / проиграл / разыгран).
V1 информация
31500 поколений, всего 12 ботов столкнулись. 65% (длина ленты 165/80/7 выиграна / проиграна / ничья). Я использую все 21 длины ленты.
Потенциальные боты ранжируются по:
пустяки
The Naming of Cats is a difficult matter, It isn't just one of your brainfuck bots
источник
Азартный игрок
Это тесно связано с моим ботом Geronimo. Но там, где Geronimo играет наверняка, Gambler старается быть быстрее, делая то, что у него получается лучше всего - азартные игры: он идет в 20-ю ячейку и начинает отсчет с нуля.
Это означает, что он может легко проиграть только потому, что арена не такая большая. Но если это так, это может быть несколько циклов, которые имеют значение.
Интересный факт: я действительно рассматривает возможность выхода кучу ботов , которые все похожи ,
(>)*X(>[-])*Y
гдеX in 9..29
иY = 30 - X
. Но я думаю, что ввести двадцать ботов было бы слишком много :) Или даже сорок, если бы у меня было две версии: одна с нулем[+]
и одна с ней[-]
.источник
Dumbot
Удивительно глупый бот, который просто портит окружающую среду и надеется, что боты, с которыми он сражается, сорвутся с ленты.
(Я не уверен, что это даже работает - это не ошибка, хотя!)
Аннотированный (с чем я думаю ):
(Я буду поражен, если это выиграет одну битву)
источник
CropCircleBot
Этот бот использует продвинутые алгоритмы, которые были переданы инопланетянами через круги на полях, которые они установили на земле. Это изменит человечество, обеспечит огромный технический прогресс и даже решит многие экологические проблемы.
источник
BeatYouMate
И поскольку каждый должен опубликовать бота, который побьет первого бота, которого они разместят, вот бот-укладчик с 5 приманками:
источник
CleverAndDetermined
Устанавливает несколько маленьких ловушек, затем перебирается на другую сторону и пытается очистить все, выше или ниже нуля. Сбой на
----
.источник
+++
раньше[-]
действительно умно, чтобы избежать простых ловушек!(
, могу ли я рассматривать это как комментарий?MetaJSRandomBot
Идея этого бота состоит в том, чтобы сделать что-то совершенно случайное, все еще действительный код js без особой бесполезности. Я написал следующий код ( ссылка JSFiddle ) для его генерации. Давайте посмотрим, как хорошо это делает =)
источник
Прусская рулетка
Русская рулетка сделала ставку со своим другом Прусским, и теперь настала его очередь играть.
источник
Больше
Гонка вооружений начинается !!
И строит, и разрушает стены высотой
1618, больше, чем у большинства конкурентов. Также имеет немного логики, чтобы побить клокера, защитников флага, анти-альтернаторов и ботов, которые принимают нетронутый флагАннотированная версия
источник
PatientBot
Частично серьезный бот. этот бот будет пытаться выиграть до 100000 циклов. он пойдет к вражескому флагу, оставив на пути несколько ловушек, немного уменьшит его, вернется и защитит флаг.
он будет предполагать, что все, больше чем 1 или меньше чем -1, является флагом, и когда это встретит один, это возвратится. он защищается, просто постоянно увеличиваясь. это предполагает, что большинство программ будут использовать [], чтобы проверить, стал ли флаг 0, и поэтому (+) * 100000 будет намного быстрее
Изменить: не могу заставить его работать на BF Joust переводчик. я сдаюсь. Может быть, вы должны сказать мне, как улучшить мой код.
Редактировать: теперь бот создает место непосредственно перед флагом 2, и после того, как он немного уменьшил флаг, он ищет 2. Это означает отмену сценария, в котором бот найдет ячейку 0, отличную от ячейки до флаг.
источник
[<]
это не очень хорошая идея, так как он повторяет возвращение до тех пор, пока ячейка под вашим указателем не станет равной нулю , что является либо одной из ячеек перед вашим флагом, либо просто самоубийством, если ваш указатель достигает флага (так как ваш флаг надеюсь не ноль ).