Semua bot di arena pertempuran tiba-tiba mendapatkan brainfucked dan tidak ada yang bisa menjelaskan alasannya. Tapi siapa yang peduli selama mereka masih bisa bertarung - walaupun Brainfuck adalah satu-satunya bahasa yang mereka pahami lagi.
Sudah lama sejak pengiriman terakhir jadi saya akhirnya akan mengumumkan pemenang BrainFuckedBotsForBattling: Selamat kepada LymiaAluysia karena telah menang bersama NyurokiMagicalFantasy!
Papan angka
| 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 |
Skor Akhir dari 09.10.2014
EDIT6 : Log yang dibuang karena ukuran dan waktu proses yang ekstrem. Anda dapat membuatnya sendiri dengan menghapus komentar pada baris RunThisTournament.py
.
EDIT5 : Penerapan Singkatan diterapkan ke controller, tidak ada runtimes besar lagi. Ini memiliki efek samping bahwa angka dan tanda kurung tidak diperlakukan sebagai komentar lagi. Anda masih dapat menggunakannya jika Anda ingin memberikan versi beranotasi, tetapi akan sangat membantu jika akan ada juga versi yang tidak diomentari dari kode Anda , jadi saya tidak perlu menghapus komentar secara manual. Terima kasih!
EDIT4 : Mengubah judul, karena turnamen dihapus dari pertanyaan jaringan panas. Terima kasih kepada @Geobits karena menunjukkan ini!
EDIT3 : Komentar yang dihapus dalam program bf, karena hasil yang tidak terduga, harus diperbaiki sekarang. Jika ada yang punya masalah dengan menghapus komentarnya, tolong laporkan.
EDIT2 : Karena itu menyebabkan runtime misterius pada komputer saya yang cukup lambat, saya mengurangi batas waktu habis dari 100.000 siklus menjadi 10.000 siklus. Bukan berarti siapa pun yang membalikkan hasil permainan yang berjalan di luar titik ini.
EDIT1 : Memperbaiki bug dalam skrip konversi yang menyebabkan penerjemah tidak mengabaikan angka dalam program yang dikomentari.
Deskripsi
Ini adalah turnamen Brainfuck yang terinspirasi oleh BF Joust . Dua bot (program Brainfuck) saling bertarung di arena yang diwakili oleh pita memori. Setiap sel dapat menyimpan nilai dari -127 hingga 128 dan membungkus pada batasnya (jadi 128 + 1 = -127).
Instruksi yang valid mirip dengan Brainfuck biasa, yang berarti:
+ : 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
Arena memiliki ukuran 10 hingga 30 sel yang dipilih secara acak setiap pertempuran. Di kedua ujungnya terdapat 'bendera' yang terletak yang memiliki nilai awal 128, sementara semua sel lainnya di-nolkan. Tujuan bot Anda adalah untuk nolkan bendera musuh selama 2 siklus berturut-turut sebelum ia nolkan bendera Anda sendiri.
Setiap bot dimulai dari benderanya sendiri, yang merupakan sel [0] dari sudut pandangnya sendiri. Lawan terletak di sisi lain dari rekaman itu.
[ 128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 128 ]
^ ^
my bot other bot
Kedua bot melakukan aksinya secara bersamaan, ini dianggap satu siklus. Permainan berakhir setelah 10.000 siklus atau segera setelah salah satu syarat kemenangan tercapai. Jika salah satu program mencapai akhirnya, ia hanya berhenti melakukan anthing sampai akhir permainan, tetapi masih bisa menang.
Kondisi menang
Bot Anda menang di bawah salah satu kondisi berikut:
- Bendera musuh Anda diunggulkan sebelum bendera Anda
- Musuh Anda memindahkan penunjuknya keluar dari kaset (dieksekusi
>
pada bendera Anda atau<
sendiri) - Nilai bendera Anda lebih jauh dari 0 daripada nilai bendera lawan Anda setelah 10.000 siklus
Aturan
Posting Anda harus berisi nama untuk bot Anda dan kodenya.
- Anda dapat menggunakan sintaks singkatan berikut untuk membuat kode Anda lebih mudah dibaca:
- misalnya
(+)*4
sama dengan++++
, ini berlaku untuk instruksi apa pun kecuali tanda kurung yang tidak cocok dalam tanda kurung karena logika loop bertabrakan dengan logika singkatan. Silakan gunakan[-[-[-
sebagai ganti([-)*3
- misalnya
- Setiap karakter selain dari
+-><[].
komentar dan karenanya diabaikan, kecuali()*
untuk singkatan
Bot yang tidak mengikuti aturan akan dikeluarkan dari turnamen.
- Hanya Brainfuck dasar yang diizinkan, tidak ada varian lain yang mendukung prosedur atau operasi aritmatika
- Kode sumber bot Anda tidak boleh mengandung tanda kurung yang tidak cocok
Anda dapat memberi tahu diri sendiri tentang strategi dasar tetapi tidak menggunakan kode orang lain untuk bot Anda sendiri.
Mencetak gol
Skor bot ditentukan oleh jumlah kemenangan melawan semua bot lainnya. Pertemuan antara 2 bot terdiri dari 10 pertandingan dengan panjang pita memori yang berbeda, yang menghasilkan skor maksimum 10 poin per pertemuan. Hasil seri tidak menghasilkan poin untuk pertandingan ini.
Program kontrol
Anda dapat menemukan program kontrol di github, bersama dengan log lengkap dari pertempuran. Papan peringkat akan diposting di sini setelah dibuat.
Jangan ragu untuk mengkloning repositori dan mencoba bot Anda sendiri melawan yang lain. Gunakan python Arena.py yourbot.bf otherbot.bf
untuk menjalankan pertandingan. Anda dapat memodifikasi kondisi dengan bendera baris perintah -m
dan -t
. Jika terminal Anda tidak mendukung urutan pelarian ANSI, gunakan --no-color
bendera untuk menonaktifkan keluaran berwarna.
Bot contoh
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 akan memenangkan setiap pertandingan dengan panjang pita lebih dari sepuluh, karena FastClearBot dapat menghindari umpan kecil, tetapi tidak yang lebih besar. Satu-satunya situasi di mana FastClearBot dapat menang melawan DecoyBot, adalah ketika itu cukup cepat untuk mencapai bendera musuh sebelum lawannya membangun umpan besar.
sumber
Jawaban:
Nyuroki Magical Fantasy
Saya pikir ini saatnya untuk serius ~ Saya menyelesaikan kompiler saya untuk HLL kecil untuk membuat menulis program BF Joust lebih mudah. Ini adalah upaya serius pertama saya untuk membuat sesuatu dengannya. Konsep bot cukup sederhana. Ini membuat beberapa umpan dari berbagai polaritas, kemudian menjadi gila dengan gerakan besar yang jelas dengan reverse offset yang jelas di tengah.
Oh, omong-omong, skor yang diharapkan adalah sekitar 577 poin melawan bukit babak terakhir. Itu tingkat kemenangan 93%. <3
Disusun | Kode sumber
Sunting : Saya memeras beberapa kemenangan lagi dari Nyuroki.
Sunting 2 : Hei, lihat, saya melakukannya lagi!
Sunting 3 : Setelah bergulat sebentar dengan bug parsing bodoh di Arena.py, akhirnya saya mendapatkan peningkatan lagi ~ Inilah yang saya maksud dengan "waktu untuk menjadi serius", Anda tahu. <3
sumber
)
dan*
atau antara*
dan angka?Bot Perangkat Cloaking
Bot ini pada dasarnya mencoba untuk menyembunyikan basisnya, membuatnya sehingga bot lain akan bergerak melewatinya dan mematikan kaset.
sumber
Burly Balder v3
Burly Balder adalah demam sedang-sedang saja. Itu membuat dua umpan besar sebelum masuk ke mode buru-buru. Dalam mode terburu-buru ia memiliki loop yang hanya menggunakan 4 langkah setiap sel nol dan ketika sel non nol itu memiliki analisis kasus untuk [-18,18] sebelum mengurangi secara membuta dengan 107 sebelum membersihkan dengan
[-.]
. Dia membersihkan bendera yang tidak berubah dalam 242 langkah, 114 lebih dari yang tidak pasti-*128
dan 14 kurang dari yang naif[-]
. Ketika sel dibersihkan, dia terus meninggalkan jejak umpan -2. Dia memiliki kasus khusus hanya untuk indeks 9 untuk menyimpan beberapa langkah untuk permainan ukuran 10 dan ia meninggalkan sel dengan umpan 1.Trivia: Balder adalah dewa dan putra Odin. Dia dikenal terutama karena kisah kematiannya : Dia takut keselamatannya sehingga dewa-dewa lain mencoba untuk memprediksi dan melindungi dari setiap ancaman. Dia akhirnya dibunuh oleh Loki karena ketika mereka melindunginya terhadap pedang dan panah, mereka lupa melindunginya terhadap Mistletoe.
sumber
BeatYouMate
pintar. Saya khawatir umpan pada sebagian besar bot akan mendapatkan putaran berikutnya lebih besar sampai memberikan penalti. Maka mungkin kita akan memiliki beberapa strategi keren yang muncul :)EvoBot 1
Ini adalah bot sederhana yang dibuat melalui algoritma genetika. Saya mulai dengan sebuah template, dan program saya perlahan menyesuaikan angka untuk membuat bot prajurit yang lebih baik. Kode di bawah ini telah diedit untuk meningkatkan keterbacaan.
Saya menggunakan entri lain dalam kompetisi untuk mengukur kebugaran kandidat yang berbeda.
Karena ini adalah upaya pertama saya di sebuah evobot, saya mulai dengan templat sederhana:
Saya memperkirakan bahwa bot ini akan menerima skor di kisaran 50 hingga 60-an.
Saat ini saya sedang mengerjakan template umpan balik.EvoBot 2
Ini adalah bot yang dibuat oleh algoritma genetika yang sama, tetapi dengan templat berikut:
Bot ini menggunakan strategi umpan balik untuk menetapkan 4 umpan dengan ketinggian berbeda-beda. Bot yang dihasilkan adalah:
Saya berharap bot baru ini lebih baik dari bot sebelumnya, mungkin mendapatkan skor di tahun 70-an (mungkin jauh lebih tinggi dari itu karena ada banyak entri baru).
sumber
Alternator
Ini mengasumsikan sebagian besar orang akan nol sel dengan menambahkan atau mengurangi itu, sehingga rata-rata setiap sel akan mengambil 128 berubah menjadi nol.
Versi beranotasi
sumber
Jadi, orang lain di sini menggunakan algoritma genetika untuk mencoba dan membuat program di sini. Yah ... dahulu kala, saya menulis sebuah evolver BF Joust untuk bukit yang sedang berlangsung di saluran IRC. Saya memutuskan untuk memberikan putaran untuk kontes ini juga ~
Dan ... tidak seperti orang lain yang menggunakan evolver, evolver saya sebenarnya dapat mengubah lebih banyak program daripada jumlah yang berulang. :)
NestDarwin (Generasi 309)
Ini adalah hasil terbaik yang dikembangkan oleh evolver saya sejauh ini. Saya tidak yakin berapa banyak struktur bersarang membantu dalam kasus ini, tetapi, struktur seperti ini adalah apa yang dimaksudkan oleh evolver untuk dapat dilakukan. Performa yang diharapkan pada bukit 27.08.2014 adalah 474 poin. (Dihitung dengan menjalankan pertempuran pada semua 21 panjang pita, dan mengalikannya dengan 10/21. Perhatikan bahwa ini tidak dinormalkan dengan fakta bahwa bukit ini memiliki satu program tambahan di atasnya)
EDIT : Mengubah daftar program yang ingin saya masukkan ke bukit ini. Berlari berevolusi semalam. :)
EDIT 2 : Saya pergi dan secara manual menganalisis output evolver. Meskipun terlihat sangat berbeda, NestDarwin pada dasarnya adalah versi TinyDarwin yang dioptimalkan ... Secara manual diperkecil (dengan fungsi yang identik) dan dianalisis:
Jadi, program yang hampir identik adalah sebagai berikut ... yang pada dasarnya merupakan versi TinyDarwin yang dioptimalkan secara super.
TinyDarwin adalah sebagai berikut. Tidak jauh berbeda, hun? Saya hanya akan menariknya dari bukit. Saya pikir itu berbeda, tapi ... yah, saya salah.
Menjadi jelas bahwa bukit saat ini tidak cukup kuat untuk memungkinkannya mengembangkan banyak hal yang lebih kompleks. :(
sumber
Beruang kutub Mk II
Ada dua jenis beruang kutub : mereka yang terjebak dan mereka yang menjebak orang lain.
Mencoba menebak polaritas lawan dan kemudian menggunakan informasi itu untuk mengunci lawan menjadi loop tak terbatas. Bekerja dengan baik melawan strategi kliring sederhana dan agak secara acak terhadap yang lain. Perangkap dapat dengan mudah dihindari sehingga saya dapat menambahkan beberapa strategi cadangan nanti.
sumber
(]< (+)*290 (>)*9 ... [-])*2
?+
dan yang lainnya menggunakan-
.[(+)*3[-]]
,[(-)*6[+]]
) dan ini bekerja dengan baik (setidaknya untuk offset yang cukup kecil).>>>>>>>>>((-)*4[+][--.]>)*21
yang memeriksa sel dan Anda(+/-)*290
menyebabkan loop off-sync kedua dipicu. Bukan kesalahan offset itu.Bot pasifis
Bot saya percaya kekerasan tidak pernah menjadi jawaban dan akan berusaha menghindari pertempuran dengan segala cara.
sumber
Adakah orang di sana?
Secara berkala melihat ke belakang untuk menentukan kapan musuh mulai membersihkan umpannya, lalu bergegas maju.
Tampaknya berhasil dengan baik, tetapi saya tidak yakin apakah itu karena strategi atau hanya karena saya menambahkan 10 untuk setiap sel sebelum membersihkan.
Sunting: Memperbaiki masalah logika. Pertama kali menulis program brainfuck. Sesuai dengan namanya.
sumber
WALL-E 2.0
Bergegas ke lokasi 9 dan menambahkan 128 ke sana, menang dengan cepat di arena ukuran 10 jika lawan belum mengubah nilai bendera awal. Di arena yang lebih besar, ini berfungsi sebagai umpan besar. Setelah itu mengisi ruang antara lokasi 9 dan bendera sendiri dengan umpan besar. Ketika umpan ditempatkan, ia memindai lokasi yang tidak kosong dan mencoba membersihkannya dengan cepat.
Versi 2.0 membangun umpan yang lebih besar dan memiliki toleransi terhadap perubahan nilai flag awal. Itu juga dapat beralih ke strategi cadangan jika semuanya mulai terlihat berbulu.
Efektivitas bot ini didasarkan pada dua fakta:
sumber
Lethal Loke V2.1 (dengan Mistletoe)
Ini tentu saja bot yang mematikan dan dia membunuh tidak hanya Burly Balder yang cantik dengan mistletoe, tetapi menang hampir setiap waktu melawan bot lainnya juga. Ini adalah kombinasi medium dan fast rush. Tes saya memberi saya skor 567
File BFJ yang dikompilasi untuk pertempuran , sumber generator Racket BFJ:
Trivia : Loke (Loki) adalah dewa dalam mitologi Nordik yang suka bermain dengan semua orang dan menipu mereka. Dia adalah seorang shifter bentuk (menjadi binatang dan manusia) dan biasanya berjalan dengan caranya sendiri. Dalam cerita-cerita itu ia sering bepergian dengan dan membantu para dewa lain dan melakukan trik-trik kecil dan menggerakkan berbagai hal. Selain membunuh Balder dia ayah Hel (dewi Neraka / Helvete), binatang Fenrir, dan Ular Midgard yang memulai Ragnarok (tragedi norse armageddon).
Bagaimana itu bekerja
Pada awalnya ia membuat umpan besar (-17) kemudian membuat
+-
pola sampai indeks 7. Ia memindai ke depan dari ke 13 meninggalkan jejak umpan (+10, -32) + tetapi ketika ia mendeteksi suatu set ia akan membatalkan dan mulai mode sedang * 1 terburu-buru. Jika tidak ada sel yang ditetapkan, ia juga akan memulai mode terburu-buru * 3 lambat.* 1 Dalam mode rush sedang, ia telah mendeteksi aktivitas lawan di salah satu indeks 7-13 dan ia mulai dari indeks 2. Beberapa lawan meninggalkan nol dan lainnya meninggalkan nilai yang berbeda dan ia sekarang memiliki sarana untuk mendeteksi aktivitas lawan saat sebelum membuat umpan di indeks 2-6 (-32, + 10) +. Jika sel bukan nilai yang diharapkan (-1, 1) atau dia selesai membuat semua umpan dia pergi dalam mode rush * 2 cepat.
* 2 Mode fast rush yang dia harapkan telah terdeteksi sehingga umpan tidak akan berfungsi. Kami berharap yang sudah kami atur adalah menghentikan lawan dan fokus berlari melalui umpan lawan. Dia mulai bergegas pada titik terjauh yang kita tahu berdasarkan pemindaian sebelumnya [9,14] atau indeks 9 jika kita dibuat lebih awal dari itu. Dia memiliki kasus khusus untuk umpan pertama di mana kita hanya menambahkan 120 dan plodd 27 karena dia tidak ingin mengurangi nilai di bawah nol jika itu adalah jebakan, tetapi untuk setiap umpan setelah kita bergerak jelas di [-8,8] sebelum meningkat sebesar 120 dan lamban 27 langkah sebelum melanjutkan ke sel berikutnya.
Mode rush lambat dihapus karena itu tidak mempengaruhi skor dengan bukit saat ini dan itu membuat bot saya sedikit lebih kecil (tapi tidak banyak).
sumber
Geronimo
Bahkan lebih ofensif daripada Besteffense bot kaine karena tidak membangun pertahanan apa pun. Strateginya di sini adalah: Orang lain akan mencoba menjadi pintar, tetapi menjadi pintar membutuhkan siklus. Jadi mari kita lompat ke bagian yang kita tahu ada musuh dan bersihkan semua yang kita temukan.
Tampaknya memenangkan sebagian besar pertandingan melawan bot contoh dan bot kaine.
sumber
SternBot
Sebenarnya bot setengah serius sekarang setelah semuanya dimulai. Mengatasi sifat simular dari beberapa bot ini.
sumber
DoNothingBot
Tidak melakukan apa-apa.
EDIT: Wow, saya heran melihat bahwa ia melakukan pekerjaan yang lebih baik daripada lebih dari 20% dari semua bot =) (Apakah ini berarti ia menggunakan strategi yang unggul atau ....?)
sumber
DoNothingBot
CounterPunch - Diedit
Kombinasi seimbang membangun pertahanan yang kuat dan kemudian menyerang.
Beranotasi:
Membela mirip dengan Backtracker @ Geobit , tetapi bertahan melawan penyerang cepat dengan menempatkan umpan cepat di depan bendera terlebih dahulu.
Attack bersarang kliring dengan polaritas berlawanan untuk dengan cepat membersihkan umpan dengan nilai yang lebih kecil. Skenario kasus terburuk harus menjadi umpan 64 (salah satu polaritas).
Sunting 1: Tingkatkan efisiensi serangan terhadap umpan (memiliki kesalahan logika dalam pengalihan polaritas).
Sunting 2: Pengujian menunjukkan bahwa jeda berkinerja lebih baik di loop paling dalam.
sumber
Backtracker
Strategi umpan balik terbalik. Mulai meletakkan umpan dari depan belakang, jadi tidak ada yang melompati sisanya ketika saya sedang membangun mereka.
Jika papan kurang dari ukuran 20 atau lebih, ini tidak bekerja melawan bot serangan cepat, karena kita hanya akan melewati satu sama lain sebelum saya mulai umpan.
Catatan: Saya tidak BF, tapi ini seperti apa yang saya inginkan. Jika tidak, tolong beri tahu saya sekarang.
sumber
Tidak bisa menyentuh ini
Ini adalah program berorientasi pertahanan yang mencoba menentukan bagaimana lawan membersihkan sel, dan membangun umpan dari ukuran yang sesuai.
Saat ini saya sedang mengerjakan versi yang dapat menang melawan kedua polaritas.
sumber
ImpatientTripwire (alias YandereBot)
Berusaha menjadi tripwire sehingga dapat meletakkan umpan (kebanyakan) polaritas yang sesuai, tetapi menyerah jika Anda terlalu lama dan menganggap Anda sebaliknya. Memiliki tripwire terbalik untuk papan kecil.
Versi saat ini: 1.3 - diedit untuk berbuat lebih baik di papan yang lebih kecil, dengan mengorbankan kekalahan karena musuh menyelinap melewati selama tripwire memeriksa
Versi sebelumnya: 1.2.1
(Saya perlu algoritma yang lebih jelas: /)
sumber
([)*300
kembali ke[[[ and so on
?Lightfoot Plodder - Diedit
Berdasarkan pada Plodder , raksasa cepat ini mampu "memajukan" melalui 0 berturut-turut dengan cepat sampai mencapai sesuatu yang tidak nol (pada saat itu ia mulai lamban seperti yang diharapkan).
Sekarang ditingkatkan dengan algoritma skimming yang lebih kuat, yang juga memungkinkan fast-forwarding melalui umpan kecil, dan umpan besar sendiri.
Sunting # 2 : Sekarang dapat kembali membaca sekilas jika menemukan lebih banyak kantong nol.
sumber
Enggan Rán v2
Strateginya mudah. Cobalah untuk membuat lawan berpikir bahwa benderanya adalah umpan dan mendahului melewati papan dan longgar (semacam tripwire / vibrator). Setelah 10 putaran penuh dia menyerah dan mencoba untuk menentukan apakah lawan ada di benderanya dan jika tidak dia akan membuat umpan -17 sampai dia memukul sel yang ditetapkan. Metode kliring yang dia gunakan adalah kasus khusus untuk [-12,12] dan mulai lamban mirip dengan Loke.
Trivia: Rán adalah dewi laut Mitologi Nordik yang membawa pelaut sebelum mati di laut.
sumber
Mickey V4
Untuk V4 saya menggunakan metode yang sama dengan V3, melawan bot yang diperbarui tetapi dengan populasi yang lebih bersamaan (30 bukan 10).
Dikembangkan melawan semua 60 bot, termasuk
BurlyBalderV3
danLethalLoke
(tetapi tidak termasuk 2botsonecup yang tidak dapat dikompilasi oleh implementasi ketat saya).Saya menemukan bot yang sangat berbeda dan tingkat keberhasilan jika saya mulai dengan benih acak yang berbeda. Jadi saya memutuskan untuk memisahkan titik awal yang berbeda ini ke dalam populasi dan membiarkannya sesekali menyerbuki silang.
Dalam 1400 generasi, 30 populasi yang berkembang secara bersamaan menciptakan program ini:
Saya menghitung tingkat kemenangan bot ini menjadi 90,0% terhadap tanaman saat ini. (1135/125/0 panjang tape menang / kalah / seri).
Info V3
Tingkat kemenangan yang dihitung sebesar 89,2% (panjang pita 1124/62/74 menang / kalah / seri).
Info V2
Program generasi sekarang memiliki analisis untuk mengetahui bagian mana dari akhir program yang tidak digunakan dan memotongnya sebelum menghasilkan generasi berikutnya. Ini berarti bahwa mutasi acak terjadi hanya di bagian-bagian program yang digunakan dan karenanya evolusi lebih cepat.
72% terhadap panen saat ini. (892/204/143 panjang tape menang / kalah / seri).
Info V1
31500 generasi, hanya 12 bot yang dihadapi. 65% (panjang kaset 165/80/7 menang / kalah / seri). Saya menggunakan semua 21 rekaman panjang.
Potensi bot diberi peringkat berdasarkan:
Hal sepele
The Naming of Cats is a difficult matter, It isn't just one of your brainfuck bots
sumber
Penjudi
Ini terkait erat dengan bot Geronimo saya. Tetapi di mana Geronimo memainkan hal yang pasti, Penjudi mencoba untuk lebih cepat dengan melakukan yang terbaik - judi: Ini pergi ke sel ke-20 dan mulai nol-ing dari sana.
Itu berarti bahwa itu mungkin dengan mudah kehilangan hanya karena arena tidak sebesar itu. Tetapi jika ya, mungkin beberapa siklus yang diperhitungkan.
Fakta Menarik: Saya benar-benar mempertimbangkan untuk memasukkan banyak bot yang semuanya terlihat seperti di
(>)*X(>[-])*Y
manaX in 9..29
danY = 30 - X
. Tapi saya pikir memasukkan dua puluh bot akan menjadi sedikit terlalu banyak :) Atau bahkan empat puluh jika saya memiliki dua versi, yang nol-s dengan[+]
dan yang melakukannya[-]
.sumber
Dumbot
Bot yang sangat bodoh yang hanya mengacaukan lingkungan dan berharap bahwa bot yang bertarung semuanya akan terlepas dari rekaman.
(Saya tidak yakin apakah ini bisa berfungsi - meskipun tidak salah!)
Beranotasi (dengan apa yang saya pikirkan ):
(Saya akan terhuyung-huyung jika ini memenangkan satu pertempuran)
sumber
CropCircleBot
Bot ini menggunakan algoritma canggih yang ditransmisikan oleh alien melalui lingkaran tanaman yang mereka tempatkan di bumi. Ini akan mengubah umat manusia dan memberikan kemajuan teknologi yang sangat besar dan bahkan memecahkan banyak masalah lingkungan.
sumber
BeatYouMate
Dan karena semua orang harus memposting bot yang akan mengalahkan bot pertama yang mereka posting, inilah bot meletakkan umpan 5+:
sumber
CleverDanDitentukan
Atur beberapa perangkap kecil, lalu balapan ke sisi yang lain, dan cobalah untuk membersihkan semuanya, di atas atau di bawah nol. Gagal aktif
----
.sumber
+++
sebelumnya[-]
memang pintar untuk menghindari jebakan sederhana!(
, bisakah saya memperlakukannya seperti komentar?MetaJSRandomBot
Gagasan di balik bot ini adalah membuat sesuatu yang acak total yang masih merupakan kode js yang valid tanpa terlalu banyak kesia-siaan. Saya menulis kode berikut ( tautan JSFiddle ) untuk membuatnya. Mari kita lihat seberapa baik itu =)
sumber
Roulette Prusia
Roulette Rusia bertaruh dengan temannya Prusia, dan sekarang giliran bermain.
sumber
Lebih besar
Perlombaan senjata dimulai !!
Keduanya membangun dan menghancurkan dinding dengan tinggi
1618, lebih besar dari kebanyakan pesaing. Juga memiliki sedikit logika untuk mengalahkan cloaker, pembela bendera, anti-alternator, dan bot yang menganggap bendera tidak tersentuhVersi beranotasi
sumber
PatientBot
Bot yang sebagian serius. bot ini akan berusaha menang dengan batas siklus 100000. itu akan pergi ke bendera musuh sambil meletakkan beberapa jebakan di jalan, mengurangi sedikit, kembali dan mempertahankan bendera.
ia akan menganggap semua yang lebih besar dari 1 atau lebih kecil dari -1 adalah benderanya, dan ketika itu akan bertemu satu, itu akan kembali. ia bertahan hanya dengan menambah secara konstan. ini mengasumsikan sebagian besar program akan menggunakan [] untuk memeriksa apakah bendera menjadi 0, dan (+) * 100000 akan jauh lebih cepat
Sunting: tidak dapat membuatnya berfungsi pada penerjemah BF Joust. saya menyerah. mungkin Anda harus memberi tahu saya cara meningkatkan kode saya.
Sunting: sekarang bot membuat tempat tepat sebelum bendera 2, dan setelah itu menurunkan bendera sedikit, itu mencari 2. ini dimaksudkan untuk membatalkan skenario di mana bot akan menemukan 0 sel selain yang sebelum bendera.
sumber
[<]
itu bukan ide yang baik, karena itu berulang kembali sampai sel di bawah pointer Anda sama dengan nol , yang merupakan salah satu sel di depan bendera Anda atau hanya bunuh diri jika pointer Anda mencapai bendera (karena bendera Anda semoga bukan nol ).