Kod Botları
Özel ve korunan değişkenlerden nefret ederim. Sadece her şeye ve her şeye erişmek istiyorum!
Eğer benim gibiyseniz, o zaman bu zorluk tam size göre!
Diğer botlarla uyum içinde birlikte çalışan bir bot yazın , diğer botlar istediğiniz şeyi yapar. Sen bir programcısın ve işlerin nasıl yürüdüğünü biliyorsun. İşiniz mümkün olduğu kadar çok diğer botları yolunuza dönüştürmektir.
Kod
Botunuzu yazmak için 24 kod satırı olacak. Her turda, her bot sırayla 1 satır yürütür.
Her bot 5 değişkene A
kadar depolar E
. A
ve B
kişisel kullanım içindir, C
yürütmek üzere bir sonraki satırı D
saklar, geçerli yönü saklar ve E
rastgele bir sayıdır. D
Rastgele bir değerde başlayacak olan hariç, değişkenler 0'dan başlar. Tüm değişkenler sadece 0-23 depolar. Daha büyük veya daha küçük sayılar 24 ile modüle edilecektir.
Bu yazımda, karşınıza çıkan botun karşısına çıkmak için rakibi kullanacağım.
Her satır aşağıdaki 5 komuttan birini içermelidir:
Flag
hiç birşey yapmıyor. Bunun dışında kazandığın gibiMove
botunuzuD
th yönünde hareket ettirir . Bir bot zaten yer kaplarsa, hamle olmazCopy Var1 Var2
Var1'in içeriğini Var2'ye kopyalar.If Condition Line1 Line2
Koşul doğruysa, Satır1'i, Satır2'yi çalıştırBlock Var1
değişkende bir sonraki yazımı engeller
Bir değişken aşağıdaki gibi kullanılabilir:
#Var
değişkeni satır numarası olarak kullanır. Eğer A
17'dir, Copy #8 #A
hat 17 üzerine hat 8 içeriğini kopyalar
*Var
rakibin değişkeni kullanacağız. Copy 5 *C
Rakibin C
değişkeni 5
Var+Var
iki değişkeni ekleyecek. Copy D+1 D
bot sağa dönecek
Ne zaman D
bir yönü olarak kullanılmaktadır, [North, East, South, West][D%4]
kullanılacak
Bu değiştiriciler zincirlenebilir: Copy *#*C #9
9. satırda rakibinizin gerçekleştireceği bir sonraki satırı kopyalar. 9. satırda **D
rakibinizin rakibinin D
değişkenine işaret eder .
Bir Koşul aşağıdaki gibi değerlendirilecektir:
- Eğer
Var
:- Var ise
A
yoluylaC
Var sıfırdan farklı, başka yanlış ise, bu doğru dönecektir. - Var ise
D
,D
inci yönünde bir bot varsa doğru olur , aksi takdirde false - Var ise
E
, E'nin tuhaf olması durumunda true döndürülür, aksi takdirde false - Var bir çizgi ise, bir Bayrak çizgi ise doğru dönecektir.
- Var ise
- Eğer
Var1=Var2
:- Her ikisi de
A-E
eşitse ve aynı sayıya eşitse true değerini döndürür - Her ikisi de satırsa, satır türü eşitse true değerini döndürür
- Her ikisi de
- Eğer
Var1==Var2
:- Her ikisi de
A-E
eşitse ve aynı sayıya eşitse true değerini döndürür - Her ikisi de satırlarsa ve aynıysa doğru döndürür (Farklı botlardan gelen bayraklar eşit olmaz)
- Her ikisi de
Her bir tipten 50 bot, aşağıdaki şekilde bir toroidal dünyaya yerleştirilecektir:
B...B...B...B...
..B...B...B...B.
B...B...B...B...
..B...B...B...B.
5.000 turluk her oyundan sonra, her bottaki bayraklar sayılır. Bir bot sizin bayrağınızın diğer bayrağından daha fazlasına sahipse, puan kazanırsınız. N
Botlar arasında bağ olması durumunda puan verilmez.
10 oyun olacak ve sonunda puanlar toplanacak.
Yan notları
Satır sonu açıklamalarına izin verilir ve //
Mantıklı olmayan bir şey yapmaya çalışmak, bir satıra eklemek gibi hiçbir şey yapmaz
Var olmayan bir botta bir şeyler yapmaya çalışmak hiçbir şey yapmaz
If
Hiç bir idam yapılmadan sonsuz bir özgeçmiş sona erecek
If
değerini değiştirmez C
Block
Biri ona yazmaya çalışıncaya kadar A süresi dolmaz
Aynı anda birden fazla değişken ve satır engellenebilir
Block
bir değişkeni birden çok kez kullanmak, ikinci blok ifadesi sizin ilkinizden farklı bir kod satırında olduğu sürece birden çok kez engeller
Boşluklara yalnızca argümanlar arasında izin verilir (ve komuttan sonra)
Bir bot 24 çizgiden daha kısaysa, Bayrak çizgilerin geri kalanı olacaktır.
Örnek Program
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 burada Python denetleyicim tarafından çalıştırılacak .
Java denetleyicidir burada Öyle hızlı çok daha iyi piton olandan ve görünüyor.
scoreboard:
- 6837 $ Kopyala
- 3355 Lockheed
- 1695 MindControl
- 967 Bizans
- 959 AttackOrElse
- 743 Cadmyllion
- 367 Grip
- 251 TheCommonCold
- 226 Magus
- 137 HideBlockAttack
- 129 RowBot
- 123 FastMoveCloneDodge
- 112 FastForwardClone
- 96 QuickFreeze
- 71 OnarımAndProtect
- 96 Süper Dondur
- 93 RovingVirus
- 80 ForwardClone
- 77 FreezeTag
- 68 Palimpseste
- 62 BlockFreezeAttack
- 51 RushAttackDodge
- 46 Engelleyici
- 40 TurretMaker
- 37 taklitçi
- 37 Kamikaze
- 35 BayrakEnjektör
- 33 RandomCopier
- 31 Sinsi
- 29 HappyAsAClam
- 25 NanoVirus
- 21 Nullifier
- 19 Nanoviris
- 17 BoringCopybot
- 16 Movebot
- 14 Bayrakbot
- 13 Nötrleştirici
- 12 Kanser
- 9 DNAbot
- 9 Parazit
- 8 MetaInsidious
- 8 Rebranding
- 8 AdaptiveBot
- 8 Üreme Botu
- 8 KungFuBot
- 5 Hızlı Dondurucu
- 4 Saldırgan