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 A
melalui 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 C
akan berisi nomor baris dari kondisi yang benar, dan kemudian baris itu akan dieksekusi. Di akhir setiap belokan, C
akan bertambah.
Ada beberapa kondisi yang tersedia:
Start
hanya 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 jikaA
disalin selama giliran terakhir.A
harus 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.C
pasti 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
This
akan 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
A
dan B
untuk penggunaan pribadi Anda, C
digunakan untuk menentukan baris mana yang harus dieksekusi dalam kode Anda, dan D
digunakan sebagai arah. Setiap nilai D
merujuk pada pasangan kuadrat dan arah yang berbeda. E
menghasilkan nilai acak setiap kali. D
dan E
akan 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:
Move
akan memindahkan Anda 1 persegi ke depanD
ke arah th. Jika ada bot di sana, Anda tidak akan bergerak.Copy(A,B)
akan menyalin variabelA
keB
.B
tidak boleh berupa nilai numerik, kecuali untuk nama variabel.A
danB
tidak boleh dari tipe yang berbeda. Menyalin garis tidak menyalin kondisi.Flag
tidak 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 padaL1
jikaC
benar, yang lain melakukanL2
.C
adalah suatu kondisi, danL1
danL2
harus 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 Start
akan 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.
If
Pernyataan 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 C
bertambah 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 X
jumlah saat dilihat oleh lawan . C
Variabel lawan juga akan diimbangi dengan X
jumlah yang sama . X
tidak akan berubah dalam game yang sama, tetapi itu akan berubah dari game ke game.