Ini terinspirasi oleh mini-game Minecraft. Aturannya cukup sederhana: Anda berlari dan melompat-lompat, dan setiap blok yang Anda injak menghilang begitu Anda menginjaknya. Tujuannya adalah menjadi yang terakhir tersisa.
Bot Anda harus merupakan program yang lengkap. Ini harus menerima input sebagai argumen baris perintah. Masukan akan menjadi peta "dunia"; berikut ini sebuah contoh:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxx xxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxx x xxxxxxxxxxxxx@xxxxxxxxxxx
xxxxxx1xxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx
xxxxxxxxxxxxxxxxx x x xxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxx xxx xx3xxxxxxxxxx
xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx x
xxxxxxxxxxxxxxxxxxxxxxxxxxx xx
xxxxxxxxxxxxxxxxxxxxxxxxx 2
xxxxxxxxxxxxxxxxxxxxxxx
Legenda adalah sebagai berikut:
x: solid block
: empty air
@: your bot
1,2,3,4,5,6,7,8,9,0: other bots
Bot Anda harus menampilkan gerakan Anda sebagai sepasang bilangan bulat. Contoh: -1, 2
akan memindahkan 1 blok ke kiri dan 2 blok ke bawah (koordinat asal ada di sudut kiri atas).
Anda dapat bergerak hingga empat blok, jarak manhattan, dari lokasi Anda saat ini. Jika Anda mencoba untuk bergerak lebih jauh dari itu, langkah tersebut tidak valid. Setiap langkah yang akan memindahkan Anda melewati tepi akan menempatkan Anda di tepi sebagai gantinya. Gerakan yang tidak valid akan diabaikan.
Setelah Anda mendarat di blok itu dihapus; jika Anda tetap di blok yang sama pada giliran berikutnya Anda akan jatuh. Dua bot dapat mendarat di blok yang sama pada belokan yang sama dan keduanya selamat; jika ini terjadi, kedua bot hanya akan melihat diri mereka sendiri dan bukan bot lainnya.
Jika Anda perlu menyimpan file untuk kegigihan, silakan lakukan di folder dengan nama bot Anda. Anda tidak boleh membaca data persisten bot lain jika ada.
Pengontrol pertandingan tersedia di https://paste.ee/p/Xf65d .
Silakan gunakan bahasa yang dapat dijalankan pada instalasi Linux atau OSX standar.
Hasil saat ini (100 putaran):
JumpBot 31
LookBot 27
ShyBot 26
Slow Bot 15
KnightBot 2
Moat Builder 0
UpBot 0
Random Bot 0
sumber
Jawaban:
Bot Lambat (Python)
Dia bergerak dalam pola garis dan memeriksa gerakannya sebelum membuatnya (juga bunuh diri ketika dia yang terakhir hidup untuk mencegah runtime panjang) Dia memenangkan 195/200 Battels di turnamen pengujian saya.
Saya bukan ahli dalam python dan mungkin ada 100 cara melakukannya lebih pendek / lebih baik
sumber
JumpBot (C)
Cobalah untuk melompat ke bidang dengan gerakan paling mungkin di babak selanjutnya.
sumber
LookBot (C)
Bot sederhana yang memiliki kinerja yang mirip dengan Bot Lambat, kecuali bot yang satu ini memungkinkan gerakan acak. Rencanakan untuk meningkatkan ini ke PredictBot.
sumber
Moat Builder (Python)
Jika saya menggali parit di sekitar saya, tidak ada orang di luar yang bisa mengacaukan saya.
... juga dikenal sebagai "Cat diri Anda menjadi simulator sudut 2016".
sumber
Monte (Python)
Maaf, permainan kata itu harus dilakukan.
Bagaimanapun, bot ini bekerja dengan melakukan Pencarian Pohon Monte Carlo di semua set pemindahan yang mungkin. Pikirkan JumpBot, hanya lebih mendalam.
Untuk menjalankannya, diperlukan argumen baris perintah tambahan (dapat ditentukan dalam controller). Ia mengontrol berapa banyak waktu yang harus dicari bot (dalam ms); Saya menggunakan 750-1500 dalam pengujian.
Kode:
Percobaan
25 putaran:
100 putaran:
200 putaran:
Semua simulasi di atas menggunakan waktu pencarian 750. Bot ini mungkin akan lebih baik dengan waktu pencarian yang lebih lama (saya tidak tahu apa maks yang diizinkan).
Perbaikan
Bot ini masih membutuhkan peningkatan di:
sumber
ShyBot (Python)
Bot ini benar-benar tidak suka bot lain dan akan mencoba untuk menjauhkan diri jika memungkinkan. ShyBot juga sangat berhati-hati tentang di mana ia melangkah; bahkan tidak akan menginjak bot lain. Namun, ShyBot masih sering kehilangan yang membuat tidak aman.
sumber
KnightBot (Jawa)
Ini bekerja seperti catur, dan dinamai seperti Twitch ...
...
.........
............................Maaf...
SwirlyBot (Java)
Ini jelas bukan solusi optimal, tapi saya harap akan berguna untuk pengujian tingkat menengah.
sumber
Bot Acak, UpBot
Dua bot awal untuk bersaing:
Bot Acak: Contoh bot yang bergerak secara acak.
UpBot: Contoh bot yang bergerak ke atas.
sumber
StalkerBot (Python)
Akan sedekat mungkin ke bot terdekat yang dilihatnya. Menargetkan bunuh diri otomatis Slow Bot (sia-sia). (Jika saya berada di lapangan yang sama dengan itu dan tidak ada pemain lain, itu tidak akan melihat saya dan akan bunuh diri.)
sumber