Ini adalah musim panas yang kering di padang rumput. Keempat petani di daerah tersebut menyadari bahwa mereka dapat memojokkan pasar dengan jagung dengan membakar tanaman tetangga mereka. Tetapi mereka membutuhkan strategi untuk melakukannya; di situlah Anda masuk.
Tugas Anda adalah menulis bot untuk memberi tahu petani apa yang harus dibakar. Tujuannya adalah untuk menyelesaikan permainan dengan area tanah tidak terbakar terbesar. Lapangan bermain adalah kotak 32x32. Setiap sel mungkin salah satu dari yang berikut:
. - Ground
@ - A bot
# - Ash
W - Wet ground
1,2,3,4,5, or 6 - Fire
Api tumbuh dalam intensitas dengan 1 setiap belokan. Setelah 3 atau lebih tinggi, itu akan mengatur sel di sebelahnya (horizontal atau vertikal) terbakar. Setelah api mengenai 6, itu berubah menjadi abu.
Pada setiap belokan, bot menerima sebagai STDIN sebagai berikut: bot mulai x, bot mulai y, posisi bot saat ini x, posisi bot saat ini y, dan papan, dipisahkan oleh baris baru. Sebuah contoh:
8
22
6
24
................................
................................
................................
.....................1..........
....................1#1.........
...................1#363........
....................16@1........
.....................31.........
................................
.........1.1....................
........15#62...................
........15@2....................
.........32.....................
................................
................................
................................
................................
................................
................................
................................
................................
................................
....4.1.........................
.....1#3........................
.....@3.........................
.....W..........................
................................
................................
................................
................................
................................
................................
(dalam hal ini Anda adalah bot di kiri bawah).
Anda harus menampilkan tiga karakter, dengan baris baru opsional, yang mewakili yang berikut:
Pindahkan - salah satunya L, R, U, D, or S (stay)
Aksi - salah satunya B (burn), P (pour water) or X (do nothing)
Arah - salah satu dari L, R, U, D or S
- mengontrol sel tempat Anda melakukan tindakan
Api tidak memengaruhi bot.
Ubah urutan adalah sebagai berikut: Semua bot bergerak; semua bot melakukan tindakan; kemudian aturan lingkungan terjadi. Jika Anda menuangkan air ke tanah, air akan menjadi basah ( W
) untuk satu putaran. Api tidak akan menyebar ke tanah basah. Jika Anda menuangkan air di tanah basah, air akan terus basah. Jika Anda menuangkan air ke api, itu kembali ke tanah biasa. Anda tidak dapat melakukan apa pun untuk abu.
Putaran dijalankan dengan 4 bot sekaligus. Putaran berakhir setelah 50 putaran, atau ketika satu bot kehabisan tanah yang tidak terbakar, mana yang lebih dulu. Skor Anda dihitung sebagai jumlah sel tanah atau basah di kotak 9x9 yang berpusat di tempat bot Anda dimulai.
Berikut adalah contoh bot; mengambil ketiga huruf secara acak dan umumnya berakhir membakar bidangnya sendiri.
RandomBurner:
#!/usr/bin/env python
import random
print random.choice('LRUDS')+random.choice('BPX')+random.choice('LRUDS')
Aturan:
- Tidak ada akses sistem file di luar folder Anda sendiri.
- Anda dapat menulis ke file jika Anda perlu menyimpan data yang persisten di antara belokan, tetapi hanya maksimal 1 kb per bot
- Anda tidak boleh menimpa bot orang lain
- Jika Anda menghasilkan gerakan yang tidak valid, bot Anda akan duduk diam. Jika Anda menghasilkan tindakan yang tidak valid, bot Anda tidak akan melakukan apa pun.
- Harap tetap menggunakan bahasa umum yang dapat dijalankan pada kotak OSX atau Linux.
Kode pengontrol dapat ditemukan di sini.
Hasil awal:
Average of 15 rounds:
---------------------
81 Farmer
56 CautiousBot
42 GetOff
41 Visigoth
40 DontBurnMeBro
37 FireFighter
35 Pyro
11 Protector
Pembaruan : Menambahkan Petani, CautiousBot, GetOff, FireFighter, dan Pyro.