Kode Bot
Saya benci variabel pribadi dan dilindungi. Saya hanya ingin mengakses apa saja!
Jika Anda seperti saya, maka tantangan ini adalah untuk Anda!
Menulis bot yang bekerja bersama secara harmonis dengan bot lain membuat bot lain melakukan apa yang Anda inginkan. Anda adalah seorang programmer, dan Anda tahu bagaimana segala sesuatu seharusnya bekerja. Tugas Anda adalah mengonversi bot sebanyak mungkin sesuai keinginan Anda.
Kode
Anda akan memiliki 24 baris kode untuk menulis bot Anda. Setiap belokan, setiap bot akan menjalankan 1 baris secara berurutan.
Setiap bot menyimpan 5 variabel Amelalui E. Adan Buntuk penggunaan pribadi, Cmenyimpan baris berikutnya untuk dieksekusi, Dmenyimpan arah saat ini, dan Emerupakan angka acak. Variabel mulai dari 0, kecuali untuk D, yang akan mulai pada nilai acak. Semua variabel hanya menyimpan 0-23. Angka yang lebih besar atau lebih kecil akan dimodulasi oleh 24.
Dalam posting ini, saya akan menggunakan lawan untuk menjadi bot yang berdekatan yang Anda hadapi
Setiap baris harus mengandung salah satu dari 5 perintah berikut:
Flagtidak melakukan apa-apa. Kecuali bagaimana kamu menangMovememindahkan bot AndaDke arah th. Jika bot sudah menempati ruang tersebut, tidak ada gerakan yang akan terjadiCopy Var1 Var2menyalin isi Var1 ke Var2If Condition Line1 Line2Jika kondisi benar, jalankan Line1, kalau tidak Line2Block Var1blok tulisan berikutnya pada variabel
Variabel dapat digunakan sebagai berikut:
#Varakan menggunakan variabel sebagai nomor baris. Jika Aberumur 17, Copy #8 #Aakan menyalin isi baris 8 ke baris 17.
*Varakan menggunakan variabel lawan Anda. Copy 5 *Cakan mengatur Cvariabel lawan untuk 5
Var+Varakan menambahkan dua variabel. Copy D+1 Dakan memutar bot ke kanan
Saat Ddigunakan sebagai arah, [North, East, South, West][D%4]akan digunakan
Pengubah ini dapat dirantai: Copy *#*C #9akan menyalin baris berikutnya lawan Anda akan mengeksekusi ke kode Anda sendiri pada baris 9. **D mengacu pada Dvariabel lawan lawan Anda .
Suatu kondisi akan dievaluasi sebagai berikut:
- Jika
Var:- Jika Var
AlewatC, itu akan mengembalikan true jika Var bukan nol, kalau tidak salah. - Jika Var
D, itu akan mengembalikan true jika ada bot diDarah th, kalau tidak palsu - Jika Var
E, itu akan mengembalikan true jika E aneh, kalau tidak salah - Jika Var adalah garis, itu akan mengembalikan true jika itu adalah garis Bendera
- Jika Var
- Jika
Var1=Var2:- Mengembalikan nilai true jika keduanya
A-E, dan sama dengan nomor yang sama - Mengembalikan nilai true jika keduanya adalah garis, dan jenis garis sama
- Mengembalikan nilai true jika keduanya
- Jika
Var1==Var2:- Mengembalikan nilai true jika keduanya
A-E, dan sama dengan nomor yang sama - Mengembalikan nilai true jika keduanya adalah garis, dan identik (Bendera dari bot yang berbeda tidak akan sama)
- Mengembalikan nilai true jika keduanya
50 bot dari setiap jenis akan ditempatkan di dunia toroidal dalam pola berikut:
B...B...B...B...
..B...B...B...B.
B...B...B...B...
..B...B...B...B.
Setelah setiap pertandingan 5.000 putaran, bendera pada setiap bot akan dihitung. Anda mendapatkan poin jika bot memiliki lebih banyak bendera Anda daripada jenis bendera lainnya. Jika terjadi ikatan antaraN bot, tidak ada poin yang diberikan.
Akan ada 10 pertandingan, dan skor akan diakumulasikan di akhir.
Catatan Samping
Komentar akhir baris diizinkan, dan dilambangkan dengan //
Mencoba melakukan sesuatu yang tidak masuk akal, seperti menambah garis tidak akan menghasilkan apa-apa
Mencoba melakukan sesuatu pada bot yang tidak ada tidak akan melakukan apa-apa
Rekursi tak terbatas pada Ifwasiat akan berakhir tanpa garis yang dieksekusi
If tidak mengubah nilai C
SEBUAH Block tidak kedaluwarsa hingga seseorang mencoba menulisnya
Berbagai variabel dan garis dapat diblokir sekaligus
Blocking variabel berulang kali akan memblokir beberapa kali selama pernyataan blok kedua berada pada baris kode yang berbeda dari yang pertama
Spasi hanya diperbolehkan di antara argumen (dan setelah perintah)
Jika bot lebih pendek dari 24 baris, Bendera akan menjadi sisa baris.
Program Sampel
Copy 2 C //Skip to the If line
Flag //Where I'm storing my flag
Move //Move in the D'th direction
If D #5 #2 //If there's a bot, copy code, otherwise, move!
Copy #1 *#E //Copy my flag onto a random spot in my bot's code
Copy 2 C //Skip back to the If line
Program ini akan dijalankan oleh pengontrol Python saya di sini .
The Java controller di sini Hal ini cepat dan terlihat jauh lebih baik daripada python.
Papan angka:
- 6837 $ Salin
- 3355 Lockheed
- 1695 MindControl
- 967 Bizantium
- 959 AttackOrElse
- 743 Cadmyllion
- 367 Influenza
- 251 TheCommonCold
- 226 Magus
- 137 HideBlockAttack
- 129 RowBot
- 123 FastMoveCloneDodge
- 112 FastForwardClone
- 96 QuickFreeze
- 71 Perbaikan dan Perlindungan
- 96 SuperFreeze
- 93 RovingVirus
- 80 ForwardClone
- 77 FreezeTag
- 68 Palimpseste
- 62 BlockFreezeAttack
- 51 RushAttackDodge
- 46 Blocker
- 40 Pembuat Menara
- 37 Copycat
- 37 Kamikaze
- 35 FlagInjector
- 33 RandomCopier
- 31 Berbahaya
- 29 HappyAsAClam
- 25 NanoVirus
- 21 Nullifier
- 19 Nanoviris
- 17 BoringCopybot
- 16 Movebot
- 14 Flagbot
- 13 Penetralisir
- 12 Kanker
- 9 DNAbot
- 9 Parasit
- 8 MetaInsidious
- 8 Rebranding
- 8 AdaptiveBot
- 8 ReproducingBot
- 8 KungFuBot
- 5 QuickFreezerbot
- 4 Penyerang