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 A
thông qua E
. A
và B
được sử dụng cho mục đích cá nhân, C
lưu trữ dòng tiếp theo để thực thi, D
lưu trữ hướng hiện tại và E
là 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:
Flag
Không lam gi cả. Ngoại trừ đó là cách bạn giành chiến thắngMove
di chuyển bot của bạnD
theo 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 Var2
sao chép nội dung của Var1 vào Var2If Condition Line1 Line2
Nếu Điều kiện là đúng, thực thi Line1, khác Line2Block Var1
chặn ghi tiếp theo trên một biến
Một biến có thể được sử dụng như sau:
#Var
sẽ sử dụng biến như một số dòng. Nếu A
là 17, Copy #8 #A
sẽ sao chép nội dung của dòng 8 vào dòng 17.
*Var
sẽ sử dụng biến của đối thủ của bạn. Copy 5 *C
sẽ đặt C
biến của đối thủ thành 5
Var+Var
thêm hai biến. Copy D+1 D
sẽ 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 #9
sẽ 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
A
thô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ó botD
theo 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-E
và 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-E
và 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 N
bot, 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 If
kế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 Block
khô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
Block
ing 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