Selamat datang di Kode Bot 2!
Anda telah mempelajari pelajaran Anda sejak Bot Kode terakhir. Anda telah mencoba mencari tahu lebih banyak cara agar sesuai dengan lebih banyak tindakan dalam lebih sedikit baris, dan sekarang akhirnya Anda memilikinya. Anda akan membuat Code Bot berbasis acara.
Bot Anda harus terdiri dari 24 baris. Setiap baris mengikuti salah satu dari dua format:
Condition:Action
atau
Action
Bot Anda juga memiliki cukup storage untuk menyimpan 5 bilangan bulat bernama Amelalui E. Integer dapat menyimpan nilai dari 0 hingga 23.
Setiap belokan, Anda akan menjalankan baris C, kecuali jika salah satu dari kondisi itu benar. Jika demikian, maka Cakan berisi nomor baris dari kondisi yang benar, dan kemudian baris itu akan dieksekusi. Di akhir setiap belokan, Cakan bertambah.
Ada beberapa kondisi yang tersedia:
Starthanya berlaku pada belokan pertama. Anda harus memiliki ini dalam kode Anda tepat sekaliBotAt(N)benar jika ada bot di lokasi yang ditentukan oleh NEquals(A,B)benar jika A sama dengan B. Mereka bisa menjadi tipe yang berbeda, jika demikian, mereka tidak akan sama.Modified(A)benar jikaAdisalin selama giliran terakhir.Aharus berupa nama variabel, garis, atau kondisiAny(C1,C2,...)benar jika salah satu kondisinya benarNone(C1,C2,...)itu benar jika tidak ada kondisi yang benarAll(C1,C2,...)benar jika semua kondisi itu benarNot(C)benar jika C salah.Cpasti suatu kondisi.
Variabel bisa dalam salah satu format berikut. 9 yang pertama adalah angka, dan dapat digunakan untuk setiap kali N digunakan di halaman ini.
A,B,C,D,E- Angka dari 0 hingga 23
Thisakan mengembalikan nomor baris saat iniAdd(N1,N2,...)akan mengembalikan jumlah semua nilaiSub(N1,N2)akan mengembalikan N1 dikurangi N2Mult(N1,N2,...)akan mengembalikan produk dari semua nilaiDiv(N1,N2)akan mengembalikan N1 dibagi dengan N2Mod(N1,N2)akan mengembalikan N1 mod N2OVar(N)akan menerima nama variabel, dan akan mengembalikan variabel lawanLine(N)akan mengembalikan baris N di kode AndaType(N)akan mengembalikan jenis baris ke-N dalam kode Anda (jenisnya adalah nama tindakan)Cond(N)akan mengembalikan kondisi pada baris ke-NCondType(N)akan mengembalikan jenis kondisi pada baris ke-N (jenisnya adalah nama-nama kondisi)OLine(N)akan mengembalikan garis Nth dalam kode lawan AndaOType(N)akan mengembalikan jenis garis Nth dalam kode lawan AndaOCond(N)akan mengembalikan kondisi pada baris ke-NOCondType(N)akan mengembalikan tipe kondisi pada baris ke-N
Adan Buntuk penggunaan pribadi Anda, Cdigunakan untuk menentukan baris mana yang harus dieksekusi dalam kode Anda, dan Ddigunakan sebagai arah. Setiap nilai Dmerujuk pada pasangan kuadrat dan arah yang berbeda. Emenghasilkan nilai acak setiap kali. Ddan Eakan diinisialisasi ke nilai acak, jika tidak 0.
Arah yang digunakan adalah [North,East,South,West][D%4]. Lawan Anda adalah bot di kotak langsung ke arah itu.
Ada 4 tindakan yang tersedia untuk Anda:
Moveakan memindahkan Anda 1 persegi ke depanDke arah th. Jika ada bot di sana, Anda tidak akan bergerak.Copy(A,B)akan menyalin variabelAkeB.Btidak boleh berupa nilai numerik, kecuali untuk nama variabel.AdanBtidak boleh dari tipe yang berbeda. Menyalin garis tidak menyalin kondisi.Flagtidak melakukan apa-apa. Bot dengan flag terbanyak dalam kode Anda akan mendapatkan poin. Bot dengan poin terbanyak menang.If(C,L1,L2)akan melakukan baris padaL1jikaCbenar, yang lain melakukanL2.Cadalah suatu kondisi, danL1danL2harus berupa garis.
Gambar besar
50 salinan setiap bot akan ditempatkan di dunia. Tujuan Anda adalah membuat bendera Anda menjadi bot sebanyak mungkin. Untuk setiap bot yang memiliki lebih banyak jenis bendera Anda daripada jenis bendera lainnya, Anda mendapatkan poin.
Bot akan ditempatkan sebagai berikut:
B...B...B...B...
..B...B...B...B.
B...B...B...B...
Akan ada 10 pertandingan berjalan, dan poin akan dirata-ratakan di semua permainan, menentukan siapa pemenangnya.
Catatan Samping
Jika beberapa kondisi berlaku, maka salah satu yang paling segera mengikuti Startakan dieksekusi
Bot akan dikemas dengan cermat tetapi Anda tidak akan memulai bot lain yang berdekatan. (Secara teknis formatnya akan sama dengan CodeBots terakhir)
Karena tantangan ini tidak diposting di kotak pasir (untuk memberi siapa pun keuntungan), saya berhak untuk mengubah detail kecil untuk keadilan, atau kemampuan tambahan. Juga, jika ada bug di runner CodeBots, saya akan mengubahnya, bahkan jika bot bergantung pada bug itu untuk keberhasilannya. Saya berusaha seadil mungkin.
IfPernyataan rekursif tidak akan dieksekusi
Jika bot Anda lebih pendek dari 24 baris, baris yang tersisa akan diisi Flag
Ingat ketika menyalin ke Anda sendiri C, itu Cbertambah pada akhir giliran Anda.
Penerjemah CodeBots dapat ditemukan di sini . Ini termasuk file .jar untuk eksekusi yang mudah. Cukup tambahkan bot Anda ke folder bot
Skor
- 893.9 Borg
- 1.3 LazyLioness
- 0,9 Bek
- 0,5 Flagger
- 0,4 CliqueBot
- 0,4 berbahaya
- 0,3 Penyerang
- 0,3 Gard
- 0,3 SingleTarget
- 0,2 FreezeBot
- 0,2 Sentinel
- 0,2 Driveby
- 0,0 Anti-berbahaya
- 0,0 MoveBot
- 0,0 CliqueBorg
- 0,0 Kalkulator
- 0,0 TestBot
- 0,0 Peniru
MEMPERBARUI
Baris kode sekarang diputar ketika Anda melihat kode lawan Anda. Itu berarti, garis lawan 1 Anda mungkin garis 14 (atau garis apa pun). Bot akan memiliki offset tetap yang akan mengimbangi garisnya dengan Xjumlah saat dilihat oleh lawan . CVariabel lawan juga akan diimbangi dengan Xjumlah yang sama . Xtidak akan berubah dalam game yang sama, tetapi itu akan berubah dari game ke game.