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 A
melalui E
. A
dan B
untuk penggunaan pribadi, C
menyimpan baris berikutnya untuk dieksekusi, D
menyimpan arah saat ini, dan E
merupakan 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:
Flag
tidak melakukan apa-apa. Kecuali bagaimana kamu menangMove
memindahkan bot AndaD
ke arah th. Jika bot sudah menempati ruang tersebut, tidak ada gerakan yang akan terjadiCopy Var1 Var2
menyalin isi Var1 ke Var2If Condition Line1 Line2
Jika kondisi benar, jalankan Line1, kalau tidak Line2Block Var1
blok tulisan berikutnya pada variabel
Variabel dapat digunakan sebagai berikut:
#Var
akan menggunakan variabel sebagai nomor baris. Jika A
berumur 17, Copy #8 #A
akan menyalin isi baris 8 ke baris 17.
*Var
akan menggunakan variabel lawan Anda. Copy 5 *C
akan mengatur C
variabel lawan untuk 5
Var+Var
akan menambahkan dua variabel. Copy D+1 D
akan memutar bot ke kanan
Saat D
digunakan sebagai arah, [North, East, South, West][D%4]
akan digunakan
Pengubah ini dapat dirantai: Copy *#*C #9
akan menyalin baris berikutnya lawan Anda akan mengeksekusi ke kode Anda sendiri pada baris 9. **D
mengacu pada D
variabel lawan lawan Anda .
Suatu kondisi akan dievaluasi sebagai berikut:
- Jika
Var
:- Jika Var
A
lewatC
, itu akan mengembalikan true jika Var bukan nol, kalau tidak salah. - Jika Var
D
, itu akan mengembalikan true jika ada bot diD
arah 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 If
wasiat 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
Block
ing 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