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.