Mã Bots
Tôi ghét các biến riêng tư và được bảo vệ. Tôi chỉ muốn truy cập bất cứ điều gì và tất cả mọi thứ!
Nếu bạn giống như tôi, thì thử thách này là dành cho bạn!
Viết một bot hoạt động cùng nhau hài hòa với các bot khác làm cho các bot khác làm những gì bạn muốn. Bạn là một lập trình viên, và bạn biết mọi thứ sẽ hoạt động như thế nào. Công việc của bạn là chuyển đổi càng nhiều bot khác theo cách của bạn càng tốt.
Mật mã
Bạn sẽ có 24 dòng mã để viết bot của bạn. Mỗi lượt, mỗi bot sẽ thực hiện 1 dòng liên tiếp.
Mỗi bot lưu trữ 5 biến Athông qua E. Avà Bđược sử dụng cho mục đích cá nhân, Clưu trữ dòng tiếp theo để thực thi, Dlưu trữ hướng hiện tại và Elà một số ngẫu nhiên. Các biến bắt đầu từ 0, ngoại trừ D, sẽ bắt đầu ở một giá trị ngẫu nhiên. Tất cả các biến chỉ có lưu trữ 0-23. Các số lớn hơn hoặc nhỏ hơn sẽ được điều chế bởi 24.
Trong bài đăng này, tôi sẽ sử dụng đối thủ làm bot liền kề mà bạn đang đối mặt
Mỗi dòng phải chứa một trong 5 lệnh sau:
FlagKhông lam gi cả. Ngoại trừ đó là cách bạn giành chiến thắngMovedi chuyển bot của bạnDtheo hướng thứ. Nếu một bot đã chiếm không gian, sẽ không có động thái nào xảy raCopy Var1 Var2sao chép nội dung của Var1 vào Var2If Condition Line1 Line2Nếu Điều kiện là đúng, thực thi Line1, khác Line2Block Var1chặn ghi tiếp theo trên một biến
Một biến có thể được sử dụng như sau:
#Varsẽ sử dụng biến như một số dòng. Nếu Alà 17, Copy #8 #Asẽ sao chép nội dung của dòng 8 vào dòng 17.
*Varsẽ sử dụng biến của đối thủ của bạn. Copy 5 *Csẽ đặt Cbiến của đối thủ thành 5
Var+Varthêm hai biến. Copy D+1 Dsẽ xoay bot sang phải
Khi Dđược sử dụng như một hướng, [North, East, South, West][D%4]sẽ được sử dụng
Những sửa đổi này có thể được xâu chuỗi: Copy *#*C #9sẽ sao chép dòng tiếp theo mà đối thủ của bạn sẽ thực thi vào mã của riêng bạn trên dòng 9. **Dđề cập đến biến của đối thủ D.
Một điều kiện sẽ được đánh giá như sau:
- Nếu
Var:- Nếu Var
Athông quaC, nó sẽ trả về true nếu Var không khác, sai khác. - Nếu Var là
D, nó sẽ trả về true nếu có botDtheo hướng thứ khác, sai khác - Nếu Var là
E, nó sẽ trả về true nếu E là số lẻ, khác là sai - Nếu Var là một dòng, nó sẽ trả về true nếu đó là một dòng Flag
- Nếu Var
- Nếu
Var1=Var2:- Trả về true nếu cả hai đều
A-Evà bằng số - Trả về true nếu cả hai đều là dòng và loại dòng bằng nhau
- Trả về true nếu cả hai đều
- Nếu
Var1==Var2:- Trả về true nếu cả hai đều
A-Evà bằng số - Trả về true nếu cả hai đều là dòng và giống hệt nhau (Cờ từ các bot khác nhau sẽ không bằng nhau)
- Trả về true nếu cả hai đều
50 bot của mỗi loại sẽ được đặt trong một thế giới hình xuyến theo mẫu sau:
B...B...B...B...
..B...B...B...B.
B...B...B...B...
..B...B...B...B.
Sau mỗi trò chơi 5.000 lượt, các cờ trên mỗi bot sẽ được tính. Bạn nhận được điểm nếu bot có nhiều cờ của bạn hơn bất kỳ loại cờ nào khác. Nếu trường hợp hòa giữa các Nbot, không có điểm nào được đưa ra.
Sẽ có 10 trò chơi, và điểm số sẽ được tích lũy vào cuối.
Ghi chú bên
Nhận xét cuối dòng được cho phép và được ký hiệu là //
Cố gắng làm điều gì đó không có ý nghĩa, chẳng hạn như thêm vào một dòng sẽ không làm được gì
Cố gắng làm một cái gì đó trên một bot không tồn tại sẽ không làm được gì
Đệ quy vô hạn trên một Ifkết thúc sẽ không có dòng nào được thực thi
If không thay đổi giá trị của C
A Blockkhông hết hạn cho đến khi ai đó cố gắng viết thư cho nó
Nhiều biến và dòng có thể bị chặn cùng một lúc
Blocking một biến nhiều lần sẽ chặn nhiều lần miễn là câu lệnh chặn thứ hai nằm trên một dòng mã khác với lần đầu tiên của bạn
Dấu cách chỉ được phép giữa các đối số (và sau lệnh)
Nếu một bot ngắn hơn 24 dòng, Flag sẽ là phần còn lại của các dòng.
Chương trình mẫu
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
Chương trình sẽ được chạy bởi bộ điều khiển Python của tôi ở đây .
Bộ điều khiển Java ở đây Nó nhanh và trông tốt hơn nhiều so với bộ điều khiển python.
Bảng điểm:
- 6837 $ Sao chép
- 3355 Lockheed
- 1695 MindControl
- 967 Byzantine
- 959 Tấn công
- 743 Cadmyllion
- 367 Cúm
- 251 TheCommonCold
- 226 Magus
- 137 HideBlockAttack
- 129 RowBot
- 123 FastMoveCloneDodge
- 112 FastForwardClone
- 96 QuickFreeze
- 71 Sửa chữaAndProtect
- 96 SuperFreeze
- 93 RovingVirus
- 80 ForwardClone
- 77 FreezeTag
- 68 Palimpseste
- 62 BlockFreezeAttack
- 51 RushAttackDodge
- 46 Chặn
- 40 tháp pháo
- 37 Copycat
- 37 Kamikaze
- 35 FlagInjection
- 33 RandomCopier
- 31 quỷ quyệt
- 29 HappyAsAClam
- 25 NanoVirus
- 21 máy lọc
- 19 Nanoviris
- 17 BoredCopybot
- 16 Movebot
- 14 Flagbot
- 13 Chất trung hòa
- 12 Cự Giải
- 9 DNAbot
- 9 Ký sinh trùng
- 8 MetaInsidious
- 8 Tái lập thương hiệu
- 8 AdaptiveBot
- 8 Sinh sảnBot
- 8 KungFuBot
- 5 QuickFreezerbot
- 4 kẻ tấn công