Có gì sai với các biến công khai?


33

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. ABđượ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:

  1. FlagKhông lam gi cả. Ngoại trừ đó là cách bạn giành chiến thắng
  2. Movedi chuyển bot của bạn Dtheo hướng thứ. Nếu một bot đã chiếm không gian, sẽ không có động thái nào xảy ra
  3. Copy Var1 Var2 sao chép nội dung của Var1 vào Var2
  4. If Condition Line1 Line2 Nếu Điều kiện là đúng, thực thi Line1, khác Line2
  5. Block 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:

#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:

  1. Nếu Var:
    1. Nếu Var Athông qua C, nó sẽ trả về true nếu Var không khác, sai khác.
    2. Nếu Var là D, nó sẽ trả về true nếu có bot Dtheo hướng thứ khác, sai khác
    3. Nếu Var là E, nó sẽ trả về true nếu E là số lẻ, khác là sai
    4. Nếu Var là một dòng, nó sẽ trả về true nếu đó là một dòng Flag
  2. Nếu Var1=Var2:
    1. Trả về true nếu cả hai đều A-Evà bằng số
    2. Trả về true nếu cả hai đều là dòng và loại dòng bằng nhau
  3. Nếu Var1==Var2:
    1. Trả về true nếu cả hai đều A-Evà bằng số
    2. 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)

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 ở đâynhanh và trông tốt hơn nhiều so với bộ điều khiển python.

Bảng điểm:

  1. 6837 $ Sao chép
  2. 3355 Lockheed
  3. 1695 MindControl
  4. 967 Byzantine
  5. 959 Tấn công
  6. 743 Cadmyllion
  7. 367 Cúm
  8. 251 TheCommonCold
  9. 226 Magus
  10. 137 HideBlockAttack
  11. 129 RowBot
  12. 123 FastMoveCloneDodge
  13. 112 FastForwardClone
  14. 96 QuickFreeze
  15. 71 Sửa chữaAndProtect
  16. 96 SuperFreeze
  17. 93 RovingVirus
  18. 80 ForwardClone
  19. 77 FreezeTag
  20. 68 Palimpseste
  21. 62 BlockFreezeAttack
  22. 51 RushAttackDodge
  23. 46 Chặn
  24. 40 tháp pháo
  25. 37 Copycat
  26. 37 Kamikaze
  27. 35 FlagInjection
  28. 33 RandomCopier
  29. 31 quỷ quyệt
  30. 29 HappyAsAClam
  31. 25 NanoVirus
  32. 21 máy lọc
  33. 19 Nanoviris
  34. 17 BoredCopybot
  35. 16 Movebot
  36. 14 Flagbot
  37. 13 Chất trung hòa
  38. 12 Cự Giải
  39. 9 DNAbot
  40. 9 Ký sinh trùng
  41. 8 MetaInsidious
  42. 8 Tái lập thương hiệu
  43. 8 AdaptiveBot
  44. 8 Sinh sảnBot
  45. 8 KungFuBot
  46. 5 QuickFreezerbot
  47. 4 kẻ tấn công

1
Tôi sẽ làm tất cả về điều này một khi Java có sẵn để tôi thử nghiệm.
Wasmoo

2
Tôi cho rằng bạn chưa bao giờ chơi Core war. vi.wikipedia.org/wiki/Core_War
matt_black

Tôi đã không chơi nó, nhưng tôi đã đọc khá nhiều về nó trong khi viết thử thách này.
Nathan Merrill

Tôi có một bản vá cho trình điều khiển Python và cố gắng đẩy nó lại cho bạn trên github ... nhưng tôi không có quyền / không thực sự biết git. Bản vá thay thế tất cả "16" bằng "num_lines" để cho phép truy cập ghi / nhảy theo 8 hướng dẫn cuối cùng; cũng loại bỏ "max_flag_count = 0" khỏi điều kiện ràng buộc trong kê khai_flags (), đôi khi được trao một ràng buộc hai chiều cho bot thứ ba.
adipy

1
Bất kỳ ETA nào khi vòng chiến đấu tiếp theo sẽ diễn ra? Không vội vàng chút nào. Tôi chỉ tò mò thôi. Cảm ơn.
COTO

Câu trả lời:


13

Flagbot

Flag

Tại sao phải làm bất cứ điều gì khi các bot khác sẽ đủ tốt để cung cấp cho tôi mã của họ?


8

Thẻ đóng băng

Move
If D #3 #2
Copy 23 C
Copy 3 C
Copy #23 *#*C
Copy #21 *#*C+1
Copy #22 *#*C+2
Copy #21 *#*C+3
Copy #22 *#*C+4
Copy #21 *#*C+5
Copy #22 *#*C+6
Copy #21 *#*C+7
Copy #22 *#*C+8
Copy #21 *#*C+9
Copy #22 *#*C+10
Copy #21 *#*C+11
Copy #22 *#*C+12
Copy #21 *#*C+13
Copy #22 *#*C+14
Copy D+1 D
Copy 0 C
Flag
Flag
Copy C+23 C

Bẫy đối thủ trong một vòng lặp, lấp đầy anh ta bằng cờ, chuyển sang đối thủ tiếp theo.


Copy C+23 CĐây phải là dòng mã độc hại nhất xD.
Cruncher

Tôi quan tâm. Điều này có thể là ngẫu hứng. Thay vì lấp đầy chúng bằng cờ, bạn có thể đặt một vòng lặp trong đó tự lấp đầy bằng cờ không? Hoặc sẽ không được tính là cờ của bạn?
Cruncher

Đó là một ý tưởng gọn gàng và khả thi, nhưng phức tạp hơn. Bạn nên viết một bot sử dụng nó :)
Sparr

2
Bạn có biết câu trả lời cho câu hỏi cuối cùng không? Or would that not count as your flags?. Bởi vì nếu họ không tính là cờ của riêng bạn, thì đó chắc chắn không phải là một giải pháp tốt
Cruncher

@Cruncher bạn có thể đưa cho họ một trong những lá cờ của bạn và khiến họ sao chép nó, cái này sẽ được tính là một trong những lá cờ của bạn.
Sparr

8

Ký sinh trùng

Tại sao giết các bot khác? Bot này xem qua mã của đối thủ và chỉ thay thế các cờ.

Copy 1 A
Copy E D
Block #A
If *#A #C+3 #C
Copy A+A+A+A+A A
Copy C+19 C
Copy #C+4 *#A
Flag
Copy 1 A
Copy E D
Block #A
If *#A #C+3 #C
Copy A+A+A+A+A A
Copy C+19 C
Copy #C+4 *#A
Flag
Copy 1 A
Copy E D
Block #A
If *#A #C+3 #C
Copy A+A+A+A+A A
Copy C+19 C
Copy #C+4 *#A
Flag

8

$ Sao chép

Bot này sử dụng nhiều kỹ thuật tương tự như Lockheed của COTO, vì vậy tôi sẽ không biết xấu hổ mượn và nâng cao.

Điều này khai thác một Clỗ hổng để phá vỡ các khối và thậm chí đảo ngược bộ trung hòa. Nó cũng được viết trong tuyệt đối vì điều này. Tôi nghĩ rằng điều này có thể bị phá vỡ nếu sự Cthay đổi được phục hồi, nhưng miễn là sự thay đổi là không đổi, nó có thể được viết lại để chống lại nó.

Vì lý do gì, việc thiếu vòng lặp ở cuối đã khiến bot này trở nên siêu tốt.

Block #C+A 
If D #7 #13        //If [enemy] Copy 0 ELSE block
If D #8 #0         //If [enemy] Freeze 0 ELSE block
If D #9 #6         //If [enemy] FreezeCheck ELSE Inc
Move
Copy 0 C
Copy A+5 A          //Inc
Copy 23 *C          //Copy 0
Copy #10 *#*C+23    //FreezeAttack
If *#*C==#10 #11 #5 //FreezeCheck: If [frozen] GOTO Copy Attack ELSE GOTO [1]
Copy C+23 C         //FREEZE
Copy 13 C           //GOTO Copy Attack
Copy 15 C           //Loop Copy Attack
Block #C+A
Copy D+3 *D             //Copy Attack: Spin Enemy
Copy 0 *B               //Set enemy counter (a la COTO)
Copy #*B+0 *#*C+*B+1    //Copy my lines
Copy #*B+1 *#*C+*B+2    //Copy my lines
Copy #*B+2 *#*C+*B+3    //Copy my lines
Copy *B+3 *B            //Inc counter
If *B==0 #19 #12        //Loop check
Copy D+1 D              //Turn myself

1
Tôi sẽ cúi đầu trước thiết kế cải tiến của bạn và đối mặt với bạn một lần nữa trong cuộc thi Bots v. 3. ;)
COTO

Tôi thành thật tin rằng đây là một nỗ lực của nhóm về phía mọi người. Điều này sẽ không tồn tại nếu không có một số bot ngoài kia để mô hình hóa. Thật thú vị, việc bổ sung bot này đã tổ chức lại hoàn toàn bảng điểm khi các bot phụ thuộc vào việc chặn đã bị phá vỡ trong khi các bot khác phụ thuộc vào việc thay thế cờ lên cao.
Wasmoo

Ai đó có thể tóm tắt, ở đâu đó, hành vi thực tế của Block và cách bot và Lockheed này tận dụng lợi thế của nó không?
Sparr

Mỗi dòng có thể tích lũy các khối, như được mô tả bởi HappyAsAClam . Quan trọng nhất, nó không xếp chồng cho các khối được gọi với cùng Cgiá trị. Do đó, một khối có thể được xếp chồng lên nhau khi được gọi từ một Ifcâu lệnh, đó là phần khai thác đang được sử dụng ở đây. $ Sao chép phá vỡ các khối (như ngao) bằng cách thực hiện Copylặp đi lặp lại trên cùng một dòng cho đến khi thành công, điều này mang lại lợi thế cho Lockheed.
Wasmoo

7

Khóa cửa

Đệ trình thứ ba (và có thể là cuối cùng) của tôi cho cuộc chiến bot cụ thể này: viết tắt là Lockheed Reactor, hay gọi tắt là "Lockheed".

Block #C+A
If D #C+7 #C+1
Block #C+A
Move
Copy A+5 A
If A==0 #C+12 #C+21
Copy C+17 C
Copy D+3 *D
Copy C+9 C
Copy C+21 C
Copy C+23 C
Copy #C+23 *#*C+2
Copy #C+22 *#*C+1
Copy 0 *A
Copy #*A+C+9 *#*C+*A+1
Copy *A+1 *A
If *A==0 #C+15 #C+17
Copy D+1 D
Copy C+5 C

Cảm ơn đặc biệt đến @Wasmoo, người đã chia sẻ khám phá của mình về "'Chặn 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 dòng đầu tiên của bạn.' đơn giản là không đúng sự thật "khai thác. Tôi sử dụng rộng rãi của nó.

Ngoài ra, xin cảm ơn tới Nathan Merill vì đã điều hành cuộc thi và xuất bản trình giả lập. Trình mô phỏng hoàn toàn vô giá trong việc điều chỉnh các bot. Tôi đã không tin điều đó nếu tôi không mô phỏng nó bằng chính mắt mình, nhưng việc bổ sung hoặc loại bỏ tính năng bot nhỏ nhất về mặt khái niệm có thể có nghĩa là sự khác biệt giữa thành công lớn và loại bỏ thất bại. Tôi không biết liệu đó có phải là điều tốt hay không.


Chặn một biến nhiều lần không thành công. Tuy nhiên, nó chỉ không chặn được nếu: Bạn đang thực hiện cùng một dòng (việc Iftrỏ đến dòng đó sẽ không thất bại), Bạn đang chặn cùng một giá trị (Một dòng duy nhất có thể chặn các dòng 1-24 với biến tăng dần) và khối chưa được phát hành (ai đó đã cố gắng sửa đổi biến đó)
Nathan Merrill

Tôi tranh luận về câu lệnh trong OP vì lệnh khối được khóa với IP, không phải câu lệnh chặn. Do đó, một tuyên bố khối đơn có thể tạo ra tới 24 khối riêng biệt trên tất cả các hướng dẫn. Tôi gửi rằng mệnh đề trong OP nêu rõ "miễn là câu lệnh chặn thứ hai nằm trên một dòng mã khác với" đầu tiên "của bạn nên được sửa đổi thành" miễn là một khối cho cặp ( C, <block target>) chưa có hiệu lực ". Nghĩa là, dòng lệnh khối được bật không liên quan đến xếp chồng, ngoại trừ nếu khối được thực thi trực tiếp, C= địa chỉ lệnh khối.
COTO

1
Bot này là tuyệt vời! Nó kết hợp tất cả các khái niệm tốt nhất thành một. Nó tự bảo vệ mình cho đến khi tìm thấy kẻ thù, sau đó nó đóng băng hai lần kẻ thù và tải một bản sao của nó lên mục tiêu trước khi đặt nó tự do theo hướng ngược lại. Trong các mô phỏng, tôi thấy một trong những bản sao của nó sửa chữa một bản gốc đã bị hỏng. Ôi! Làm tốt lắm, COTO!
Wasmoo

6

Tấn công hay khác

Thấy những robot phòng thủ như Byzantine đang hoạt động rất tốt, tôi cũng quyết định chế tạo một robot phòng thủ.

Cái này có hai bộ mẫu, tùy thuộc vào việc kẻ thù có mặt hay không.

  • Nếu kẻ địch không có mặt, nó chặn đường của nó trong 3 lượt và sau đó di chuyển.
  • Nếu kẻ thù có mặt, nó sẽ xen kẽ giữa việc sao chép cờ và sao chép mã sẽ khiến kẻ thù sao chép cờ đó (một bản sao yếu) nó sao chép cờ của nó
  • Vào cuối vòng lặp, nó thay đổi theo hướng ngẫu nhiên và tiếp tục
  • Hầu hết các khía cạnh của mã của nó là trùng lặp

Thử nghiệm nhiều hơn cho thấy một vài khái niệm quan trọng:

  • "Biến ngẫu nhiên" thực hiện tốt hơn đáng kể so với "Rẽ phải" (+2700 so với thay thế)
  • Tăng khối A+7 được hiển thị là hiệu quả hơn bất kỳ mức tăng nào khác (+200 so với mức tốt nhất tiếp theo)
  • "Tấn công trực tiếp" được hiển thị là tốt hơn "Sao chép yếu" (+900 so với thay thế)
  • Bảo vệ "3-1-2-1" tốt hơn so với các kết hợp khác (+200 so với tốt nhất tiếp theo)
  • Tấn công trùng lặp, chặn và mã vòng lặp cải thiện điểm số của nó (+300 so với không trùng lặp)
  • Gia tăng khối trùng lặp không cải thiện điểm số của nó (+400 so với sao chép)

Quan sát mô phỏng đồ họa thông qua giao diện người dùng Java đã giúp rất nhiều. Cảm ơn bạn! Dưới đây là mã mới và cải tiến. Tôi không nghĩ rằng tôi có thể làm bất cứ điều gì hơn.

Block #C+A          //Dynamic block for If statements
If D #20 #0
If D #19 #8
If D #20 #23
If D #19 #0
If D #20 #8
If D #19 #23
Copy A+7 A          //Increment dynamic block
Block #C+A          //Dynamic block for If statements
If D #19 #8
If D #20 #0
If D #19 #8
If D #20 #23
If D #19 #8
If D #20 #0
If D #19 #23
Copy E D            //Turn Random
Copy 23 C           //Loop to beginning
Copy 23 C           //Loop to beginning
Copy #22 *#*C+1     //Copy my flag to the enemy's next
Copy #21 *#*C+1     //Copy my flag to the enemy's next
Flag
Flag
Move

Bot này đã làm nghiêm túc tuyệt vời. Và bạn được chào đón cho GUI.
Nathan Merrill

Tôi đã cập nhật nó để bao gồm một vòng lặp thứ hai, giúp cải thiện đáng kể hiệu suất của nó. Tôi cũng nhận thấy rằng việc chặn trong Java dựa trên cơ sở Cđã chặn nó. Bởi vì bot này có Khối quay vòng dựa trên C, nó sẽ tích lũy nhiều khối trên mỗi lệnh của nó. Điều đó làm cho bot này thêm phòng thủ.
Wasmoo

Tôi hiểu rằng chỉ có một khối cho mỗi lệnh khởi tạo có thể được thiết lập, do đó mã của bạn ở trên chỉ có thể thiết lập một khối duy nhất trên bất kỳ lệnh nào (và sẽ mất 24 * 17 lần để thiết lập một khối duy nhất trên mỗi lệnh). Nếu sự hiểu biết của tôi là sai, thì ngôn ngữ "Chặn 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 dòng đầu tiên của bạn." trong OP cần phải được sửa đổi, bởi vì tuyên bố này là (thẳng thắn) sai nếu mã của Wasmoo có thể thiết lập nhiều khối trên bất kỳ lệnh nào.
COTO

@COTO: Trình giả lập Java thêm một khối trên mỗi Ifdòng vào danh sách, nhập vào Cbiến đã gọi nó. Vì vậy, với Khối 1 và 9 Nếu thực thi câu lệnh Khối, bot có thể nhận được tối đa 10 Khối cho mỗi dòng, (mất ít nhất 24 * 10 * 10 lượt) Có lẽ OP không truyền tải mô phỏng chính xác.
Wasmoo

Tôi đã cập nhật mã một lần nữa để phản ánh các lần lặp cải tiến hơn nữa trong khi vẫn giữ khái niệm cốt lõi. Tôi nghĩ rằng điều này sẽ tốt hơn là làm ngập diễn đàn với mỗi lần lặp, chẳng hạn như chuyển từ Sao chép yếu sang Tấn công trực tiếp và Không trùng lặp thành Sao chép. Nếu bạn muốn tôi đăng lại bản gốc của mình, tôi có thể làm như vậy.
Wasmoo

5

Bot hàng

Move
If D #7 #0
If D #7 #0
If D #7 #0
If D #7 #0
If D #7 #0
Copy 0 C
If D=*D #9 #8     //If they point in a different direction
Copy *D D           //fix that
If #A==*#A #10 #11  //Did we copy line A already?
Copy A+1 A          //If so, A++
Copy #A *#A         //else, copy it!

Sẽ di chuyển cho đến khi tìm thấy một robot.
Sẽ đặt robot đó theo cùng hướng với chính nó.
Sau đó sẽ sao chép mã của nó vào robot.
Điều này sẽ tạo ra một hàng robot "Row Bot". :)


Có hai vấn đề (dễ dàng sửa chữa). Đầu tiên, các Ifbáo cáo phải được viết hoa. Thứ hai, không nên có khoảng trắng ở hai bên =, như thế D=*D.
PhiNotPi

Đây là một ý tưởng tuyệt vời.
Sparr

Không có cờ bạn sẽ không giành chiến thắng.
Paŭlo Ebermann

3
Các bot @ PaŭloEbermann chứa đầy các cờ lên đến 24 dòng, vì vậy bot này có 12 cờ ẩn ở cuối.
Sparr

5

Siêu lạnh

Move                    // start moving!
Block #E
If D #12 #0             // 8 turns of attack or move
If D #12 #0
If D #12 #0
If D #12 #0
If D #12 #0
If D #12 #0
If D #12 #0
If D #12 #0
Copy D+1 D              // change direction
Copy 0 C                // start over
If *#*C==#23 #13 #14    // if opponent is frozen, give them a flag, otherwise freeze them
Copy #C+13 *#E          // give a flag to opponent
Copy #23 *#*C           // copy freeze line to opponent
Flag                    // 8 flags, one per If above
Flag
Flag
Flag
Flag
Flag
Flag
Flag                    
Copy C+23 C             // this line freezes any bot that executes it

Bot này tiếp tục cố gắng đóng băng bot trước nó cho đến khi nó hoạt động, sau đó viết một loạt cờ thành các dòng ngẫu nhiên, và sau 8 lượt nó quay và chuyển sang đối thủ khác.


5

Byzantine

Một bot phòng thủ cao, tạo ra nhiều khối trên cờ và các hướng dẫn nhạy cảm nhất, bao gồm các khối meta (tức là các khối trên các hướng dẫn khối quan trọng).

Nó cũng di chuyển liên tục theo những cách không thể đoán trước, và cắm cờ ở nhiều vị trí trên đối thủ trên cơ sở nỗ lực cao nhất.

Block #A
Block #A+1
Block #A+2
Copy E D
Move
Block #A+3
Block #A+4
Move
Copy #22 *#*C+1
Copy E D
Move
Block #A+5
Block #A+6
Block #A+7
Move
Copy #22 *#23
Block #A+8
Block #A+9
Block #A+10
Copy #22 *#2
Copy A+14 A
Move
Flag
Copy #22 *#*C+12

Không chắc nó sẽ hoạt động như thế nào, vì tôi không thể mô phỏng. Nhưng chúng tôi sẽ cung cấp cho nó một shot. ;)


Khước từ

Tôi đã viết điều này trước khi được PhiNotPi thông báo rằng logic có điều kiện là miễn phí. Tuy nhiên, tôi đã quyết định để nó lại vì người ta không bao giờ có thể có quá nhiều bot.


bot này là chiến thắng!
justhalf

4

Cadmyllion

"Tôi vừa mới vào bot trong battle royale," tôi nói. "Nó di chuyển cứ sau vài lượt để ngăn chặn các cuộc tấn công của các bot chậm hơn."

"Bạn có ý nghĩa gì bởi các bot chậm hơn?" PhiNotPi hỏi.

"Các bot bị mắc kẹt khi đánh giá chuỗi logic dài có điều kiện", tôi trả lời.

Các câu lệnh "'If" chuyển hướng đến các câu lệnh khác --- bao gồm các câu lệnh' if 'khác --- đều được thực hiện trên cùng một lượt, "PhiNotPi nói.

"Quy tắc thảm sát ngọt ngào của mã lắp ráp!" Tôi khóc. "Ai nghĩ ra ý tưởng đó?"

... Và đó là câu chuyện về cách Cadmyllion xuất hiện.

Cadmyllion: bot vui vẻ khai thác khả năng siêu thực để đánh giá vô số các biểu thức điều kiện trong một hướng dẫn duy nhất ... bằng cách thực hiện khá nhiều điều mà nó có điều kiện.

If D #15 #19
Move
If D #16 #20
Copy D+3 D
Block #A
If D #15 #20
Copy A+1 A
If D #16 #1
Move
If D #15 #19
If D #16 #4
Copy E D
Block #A+12
Copy C+10 C
Flag
If *#0==#14 #17 #21
If *#0==#14 #18 #21
If *#*C+1==#14 #18 #22
Copy *C+11 *C
Block #A+6
Block #A+18
Copy #14 *#0
Copy #23 *#*C+1
Flag

4

Siêu dữ dội

Bot này đóng băng và sau đó chuyển đổi đối thủ thành các phiên bản kém hiệu quả hơn của Sparr's Insidious , đến lượt họ, sẽ biến đối thủ thành bot tạo cờ spam cho tôi. Đây có thể là bot phức tạp nhất mà tôi đã viết và do đó tôi hy vọng nó sẽ trở nên khủng khiếp, không có không gian để chặn và chỉ có một lá cờ được gắn trong mã. Biến một bot thành một bản sao ngấm ngầm cũng mất quá nhiều thời gian.

Thách thức lớn nhất là viết mã cho các bản sao xảo quyệt theo cách mà nó hoạt động bất kể vị trí của nó trong bot. Việc đóng băng bị loại bỏ khi tôi dán mã thứ hai vào mã cuối cùng chính xác nơi đóng băng được đặt, điều này sẽ khởi động đối thủ ngay lúc đó.

If D #2 #1
Copy 23 C
Copy #8 *#*C // freeze the opponent
Copy 9 A
Copy #A *#A+*C // copy the next line at the appropriate  line
Copy A+1 A
If A==0 #7 #23
Copy 23 C
Copy C+23 C
If D #C+2 #C+23 // the code for the Insidious clone starts here
Copy C+21 C
Copy C+2 C
If D #C+6 #C+22
If D #C+5 #C+22
If D #C+4 #C+20
If D #C+3 #C+19
If D #C+2 #C+18
Copy E D
Copy #C+7 *#*C
Flag
Copy C+3 A
Copy #C+22 #A
Copy A+1 A
Copy C+21 C // And ends here

Đó là một ý tưởng thông minh. Tuy nhiên, tôi không thấy bất kỳ lệnh Move nào. Điều đó có nghĩa là cả bot và bot spam của bạn sẽ không di chuyển?
Wasmoo

Các bản sao Insidious có thể di chuyển tùy thuộc vào những gì trong mã gốc của bot, do không gian hạn chế khá nhiều chức năng phải bị vứt bỏ để làm cho điều này thậm chí có thể xảy ra với 24 dòng. Đó là một cuộc tập trận tinh thần nhiều hơn bất cứ điều gì khác thực sự.
overactor

3

Sửa chữa và bảo vệ

Bot này sửa chữa mã riêng của mình, trong khi bảo vệ các dòng mới được sửa chữa.

If #A==#A+16 #C+1 #C
Copy #A #A+8
Block #A+8
Copy A+1 A
Copy E D
Move
Copy #C+1 *#*C
Flag
If #A==#A+16 #C+1 #C
Copy #A #A+8
Block #A+8
Copy A+1 A
Copy E D
Move
Copy #C+1 *#*C
Flag
If #A==#A+16 #C+1 #C
Copy #A #A+8
Block #A+8
Copy A+1 A
Copy E D
Move
Copy #C+1 *#*C
Flag

Giải trình:

Giá trị ban đầu của A0và các dòng được đánh số 0-23. Nếu Ifcâu lệnh được thực thi và sai, nó sẽ thử thực hiện lại cùng một dòng. Bộ điều khiển không cho phép bot thực hiện cùng một dòng hai lần, do đó lượt kết thúc và Cđược tăng lên 1.

Dòng tiếp theo, Copy #A #A+8thực sự được thực hiện bất kể giá trị của Ifcâu lệnh. Sự khác biệt là nó được thực thi hai lần nếu đúng và một lần nếu sai. Nếu dòng #A+8bị chặn (cuối cùng sẽ xảy ra), sau đó thực hiện hai lần với thực sự sao chép, trong khi thực hiện một lần sẽ chỉ bỏ chặn nó. Sau đó, dòng mới được sao chép sẽ bị chặn để bảo vệ nó.


Tôi đang cố gắng để hiểu tất cả các bạn bot nhưng tôi bị mắc kẹt. Giá trị ban đầu là Agì? Phải không 0? Nếu vậy thì dòng đầu tiên của bạn so sánh dòng 0 với dòng 16, nhưng theo tôi hiểu từ bot ví dụ OP, dòng đầu tiên là dòng 1, phải không? Bổ sung, vẫn trong dòng đầu tiên của bạn,#C đề cập đến chính dòng này, vì vậy có nghĩa là nếu Ifcâu lệnh trả về sai, bạn bị mắc kẹt trong một vòng lặp vô tận?
plannapus

@plannapus Mình thêm vào giải thích.
PhiNotPi

3

Chất trung hòa

Bot này làm cho nạn nhân của nó viết lại toàn bộ chương trình của nó, làm cho nó có giá trị 0 điểm. Một khi virus đã vào vị trí, nó sẽ di chuyển. Đây là một cách tiếp cận trái đất thiêu đốt để chiến thắng.

If D #C+2 #C+3          // A: If [enemy exists] B else C
Copy C+22 C             // GOTO A
If *#*C==#7 #C+4 #C+5   // B: If [enemy was neutralized] D else E
Move                    // C: Move
Copy E D                // D: Turn Randomly
Copy #7 *#*C            // E: Neutralize enemy
Copy C+1 C              // Skip the next line
Copy #C #C+1            // Neutralizing Code [Copy this line to next line]

Sự so sánh *#*C==#7dường như không điều chỉnh chính xác sự thay đổi của đối thủ, nhưng bot cuối cùng cũng tiến lên.


Copy C+1 Clà tất cả những gì cần thiết để bỏ qua một dòng duy nhất.
Nathan Merrill

2
'Bỏ qua dòng tiếp theo' có nghĩa là bot của bạn sẽ dành 16 lượt để thực hiện các hướng dẫn cờ trước khi tiếp tục. Copy 23 CThay vào đó, bạn có thể muốn đến đó để nhảy trở lại dòng đầu tiên.
Sparr

'Bỏ qua dòng tiếp theo' sẽ chỉ xảy ra nếu 'GOTO A' bị ghi đè. Có nhiều cách khác để tôi có thể khiến bot này trở nên tấn công và phòng thủ hơn, chẳng hạn như lặp lại 'A', sao chép mã và chặn 'GOTO A'. Tuy nhiên, nếu bot này bị tấn công, dù sao thì nó cũng đã chết khá nhiều.
Wasmoo

3

Xảo quyệt

Move
If D #4 #0
If D #4 #0
Copy 0 C
Copy 4 C
If D #12 #11
If D #12 #11
If D #12 #11
If D #12 #11
If D #12 #11
Copy D+1 D
If D #4 #3
Copy #C+8 *#*C
Flag
Copy C A
Copy #C+22 #A
Copy A+23 A
Copy C+21 C

Lấy cảm hứng từ @Cruncher, bot này lây nhiễm các bot khác bằng một khối mã nhỏ, lấp đầy các bot khác bằng cờ của bot này. Những con bot này sau đó đang ngồi vịt để tấn công thêm, nhưng chúng sẽ chứa đầy cờ của tôi khi chúng bị lây nhiễm lại bởi người khác.

Chỉnh sửa: cảm ơn @PhiNotPi đã hỗ trợ chơi gôn, @overactor để được tư vấn hiệu quả


Chúc mừng bạn đã trúng 2k!
bjb568

3

Hạnh phúc như một con nghêu

Đây là một bài tập trong việc ngăn chặn. Nó thực hiện tốt đáng kể cho đến khi$Copy xung quanh.

Ngao có 22 lệnh khối. Bởi vìA được dịch chuyển mỗi vòng lặp, họ sẽ tham chiếu các dòng khác nhau mỗi lần qua vòng lặp. Điều này cho phép mỗi lệnh xếp các khối trên mỗi dòng khác, tối đa là 22 khối trên mỗi dòng. Do đó, để phá vỡ ngao bọc thép hoàn toàn, người ta sẽ cần phải viết vào một dòng 22 lần.

Ví dụ, #10sẽ được bảo vệ mỗi lần qua vòng lặp bằng các dòng sau:

  • Vòng 0, A = 0 #10được bảo vệ bởi dòng 7 ( 7+0+3= 10)
  • Vòng 1, A = 7 #10được bảo vệ bởi dòng 0 ( 0+7+3= 10)
  • Vòng 2, A = 14 #10được bảo vệ bởi dòng 17 ( 17+14+3= 34 = 10)
  • Vòng 3, A = 21 #10được bảo vệ bởi dòng 10 ( 10+21+3= 34 = 10)

Vì vậy, sau Dòng 10 của Vòng 3, #10đã bị chặn 4 lần, yêu cầu 4 ghi vào#10 để phá vỡ các khối, với lần thứ 5 thực sự ghi đè lên dòng.

Lưu ý rằng các khối được khóa theo Cgiá trị của chúng và sẽ không xếp chồng nếu dòng được bảo vệ đã bị chặn bởi cùng một Cgiá trị. Vì vậy, sau 22 khối được thiết lập cho mỗi dòng, các khối sẽ không còn ngăn xếp.

Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Block #C+A+3
Copy A+7 A
Flag

3

Kiểm soát tâm trí

Tôi đoán không bao giờ là quá muộn?

Block #C+D
If D #2 #0        // Scan for enemy
If *#E==#E #0 #5  // Attack if necessary
Copy D+5 D        // Turn
Copy 22+1 C       // Repeat
Copy 4+1 C        // ATTACK:
Copy #22+1 *#*C   //   Freeze
Copy #17 *#17     //   Upload the DOWNLOADER
Copy #18 *#18     //
Copy #21 *#19     //
Copy D+2 *D       //   FACE ME!!
Copy 17 *C        //   Start download
If E #0 #13
If E #0 #13
Copy 22+1 C
Flag
Flag
Copy *#B+20 #B+20         // DOWNLOADER
If *#B+20==#B+20 *#20 #19 //
Copy 22+1 C               //
Copy 1+B B                //
Copy 16 C                 //
Flag
Copy 23+C C        // FREEZE

MindControl xuất phát từ ý tưởng của tôi rằng sẽ mất một thời gian đáng kể để sao chép toàn bộ chương trình của tôi sang đối thủ, trong thời gian đó bot của tôi dễ bị tấn công từ các hướng khác. Vậy tại sao không làm cho đối thủ sao chép chương trình của tôi trong khi tôi quét kẻ thù?

Khi tìm thấy kẻ thù, MindControl ngay lập tức đóng băng kẻ thù để tránh thoát. Sau đó, nó tải trình tải xuống lên đối thủ và để nạn nhân tải xuống chương trình của MindControl. Trình tải xuống khai thác thực tế là ít bot sử dụng Bvà sẽ lặp cho đến khi tải xuống tất cả 24 dòng. Khi trình tải xuống viết lại #19từ Copy 16 CđếnCopy 23 C , nó biểu thị nạn nhân đã tải xuống tất cả các dòng và sẽ tiếp tục tự khởi động lại.

Các phiên bản đầu tiên của bot của tôi không bao gồm Blocks. Và nó dễ bị tổn thương đến nỗi hầu như mọi thay đổi đều bị tê liệt. Vì vậy, tôi đã quyết định thêm Khối dựa trên $ Copy của Wasmoo (dựa trên Lockheed của COTO). Nhược điểm tôi thấy là rất khó để bản gốc sửa lỗi trong các bản sao. Nhưng điều này còn lâu mới làm tê liệt và điểm số tăng lên đáng kể nên tôi đã giữ các Khối.

CẬP NHẬT

Tôi đã cải thiện trình tải xuống để tiếp tục cố gắng tải xuống cho đến khi viết lại thành công các khối. Điều đó có nghĩa là phải mất thêm một lượt để tải lên trình tải xuống nhưng điểm của tôi tăng gấp đôi sau khi thay đổi này !! Không thể tranh luận với những con số.


Một cập nhật khác. Như bạn có thể nhận thấy, MindControl quyết định có tấn công mục tiêu hay không bằng cách so sánh một dòng ngẫu nhiên giữa chính nó và mục tiêu của nó. Nếu chúng khớp, MindControl chỉ cho rằng mục tiêu đã bị nhiễm và để nó một mình. (Lưu ý bên lề: Tôi đã từng sử dụng một đường tĩnh để so sánh nhưng điều đó mang lại nhiều điểm tích cực và tiêu cực sai) Hóa ra điều đó mang lại rất nhiều tiêu cực sai. Vì vậy, tôi quyết định để khai thác ==và thực hiện một số thay đổi nhỏ như C+23để 23+C. Chương trình này có chức năng giống hệt nhau nhưng khác nhau trong mắt ==. Bây giờ MindControl không có dòng nào giống với bất kỳ dòng nào trong bất kỳ bot nào khác, nó sẽ đạt 100% cho bất kỳ bot nào chưa được chạm tới. Một lần nữa, điểm số tăng đáng kể.


Cải thiện Trình tải xuống một lần nữa. Bây giờ nó chạy trên một vòng lặp ngắn hơn. (dường như có mối tương quan lớn với điểm số của tôi)


Trình tải xuống được cải thiện một lần nữa. Sử dụng mã bot gốc để tải lên nhanh hơn. Cũng đã thêm 2 khối ngẫu nhiên có vẻ như cải thiện điểm số


Không bao giờ là quá muộn!
Nathan Merrill

Tôi đang xem xét đổi tên thành BrainWash ...
TwiNight

Hoặc BunkerBuster sau khi xem bức tượng bán thân downloader qua HappyAsAClam hầm trú ẩn
TwiNight

Tôi đã từng nghĩ đến việc thử ý tưởng tải lên trình tải xuống này trước tiên, nhưng tôi không thể có được nó nhỏ như bạn đã làm. Lam tôt lăm! Tôi cũng thích việc bạn sử dụng D làm đồng bằng khối lưu động; nó lưu một lệnh và tăng tốc thiết kế của bạn. Tôi ngạc nhiên rằng một bot không có lệnh 'Move' sẽ hoạt động rất tốt. Mô phỏng cho thấy các bot có xu hướng co cụm, nhưng tôi không biết đó sẽ là một chiến lược chiến thắng. Và tôi đồng ý, có một cái gì đó thỏa mãn duy nhất về việc phá vỡ ngao.
Wasmoo

@Wasmoo Rõ ràng thiết kế trình tải xuống yêu cầu bot đứng yên và nó làm cho bot bị vón cục. Tôi thích nghĩ về nó như rễ của một cái cây vươn ra và đồng hóa các bot khác để phát triển. Nhưng tôi đoán sự nhanh nhẹn là lý do tại sao $ Copy và Lockheed đánh bại tôi.
TwiNight

2

Kẻ tấn công

Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Copy #E *#*C
Flag

2

Movebot

Move
Copy 23 C
Flag

Giống như Flagbot, nhưng di chuyển xung quanh trong khi chấp nhận quà tặng mã đi cùng với tất cả các cờ của chúng tôi.


2

Sinh sản bot

Bot này cố gắng đóng băng đối thủ của mình và sau đó sao chép toàn bộ mã của mình vào bot đó trước khi khởi động lại bot khác. Điều này cũng sẽ hoạt động (chủ yếu) nếu đối thủ sử dụng chặn, mặc dù điều đó làm cho tất cả thậm chí chậm hơn so với trước đây.

If D #23 #22
Copy 23 C
Copy #18 *#*C
Copy #18 *#*C+1
Copy #18 *#*C
Copy #18 *#0
Copy #18 *#0
Copy 0 *C
Copy 0 *C
Copy 1 A
Copy #A *#*A
If D #12 #14
Copy A+1 A
Copy 9 C
Copy 23 C
Flag
Flag
Flag
Copy C+23 C
Copy D+1 D
Flag
If *#*C==#*C #19 #13
Move
If *#*C+1==#*C+1 #21 #13

Không có khoảng trống trong điều kiện
Nathan Merrill

@NathanMerrill gotcha
overactor

2

Pháp sư

Magus là một nỗ lực đơn giản tại một virus tự lan truyền. Nó cố gắng sao chép chính nó vào các chương trình của các bot khác. (Đã chỉnh sửa để xóa số âm, sửa điều kiện, cắt đường.)

Block #A
Copy #A *#A
Copy A+1 A
If A #0 #4
Copy 0 *C
Flag
Move
Copy 0 C

Các giá trị âm không được phép. Vui lòng sử dụng 23 cho B
Nathan Merrill

Vui lòng sử dụng 23, không phải 25.
Nathan Merrill

Trừ khi tôi hiểu nhầm, điều đó sẽ khiến nó không chặn hoặc sao chép các dòng 23 hoặc 24 (lưu ý: nó thay đổi một chút so với lần sửa đổi đầu tiên, A được tăng thêm 1, không phải B)
Isaac

+0 = 24 +1 = 25, -1 = 23. Nếu bạn muốn nó là -1, thì phải là 23.
Nathan Merrill

Đó là như trước đây, vì tôi nghĩ bạn chỉ có thể so sánh với 0 (bỏ qua phần '=' bằng cách nào đó, tôi đổ lỗi cho việc lướt qua), nhưng giờ nó đã thay đổi nên A bắt đầu từ 1 và kết thúc ở 25. Chỉ cần tưởng tượng dòng 3 là for (int i = 1; i < 25; i++).. .
Isaac

1

DNAbot

Flag
Copy 8 D
Copy 16 B
If #D==#B #C+2 #C+3
Block #A
Copy #D #A
If D #7 #15
Copy #23 *#*C
Copy A+1 A
Copy B+1 B
Copy D+1 D
If #D==#B #C+2 #C+3
Block #A
Copy #D #A
If D #7 #15
Move
Copy A+1 A
Copy B+1 B
Copy D+1 D
If #D==#B #C+2 #C+3
Block #A
Copy #D #A
If D #7 #15
Flag

Bot này sửa chữa mã riêng của mình trong khi di chuyển và tấn công.




1

Tủ đông nhanh

Cố gắng sao chép cờ trong dòng sẽ được thực hiện bên cạnh đối thủ của mình, di chuyển nếu không có kẻ thù để tấn công.

Block #13
Block #14
If D #13 #14
If D #13 #14
If D #13 #14
If D #13 #14   
If D #13 #14
If D #13 #14
If D #13 #14
If D #13 #14
If D #13 #14
If D #13 #14   
Copy 23 C
If E #15 #16
Move
Copy #23 *#*C
Copy D+1 D

Hai dòng đầu tiên không hợp lệ. Họ cần # 13 và # 14
Nathan Merrill

1

Chặn, đóng băng, tấn công

Block #A        // start block loop
Copy A+1 A      // loop A from 0 to 23
If A #3 #4      
Copy 23 C       // repeat block loop
Copy 5 C        // exit block loop to attack/move loop
Move
If D #11 #5     // attack or move
Copy A+1 A      // loop A from 0 to 23
If A #9 #10
Copy 5 C        // repeat attack/move loop
Copy 23 C       // exit attack/move loop to block loop
Copy 11 C       // start of attack routine
Copy #23 *#*C   // freeze opponent
Copy #19 *#E    // copy flag to opponent
Copy #20 *#E    // copy flag to opponent
Copy #21 *#E    // copy flag to opponent
Copy #22 *#E    // copy flag to opponent
Copy D+1 D      // change direction
Copy 5 C        // repeat attack/move loop
Flag
Flag
Flag
Flag
Copy C+23 C     // freeze instruction, for copying

Chặn tất cả 24 dòng, sau đó lặp 24 lần di chuyển hoặc tấn công, sau đó lặp lại. Một cuộc tấn công liên quan đến việc cố gắng đóng băng đối thủ, sau đó sao chép bốn lá cờ đến các vị trí ngẫu nhiên, sau đó xoay.


1

Ẩn, Chặn, Tấn công

Bot này dựa trên Block Freeze Attack. Tôi đã thay đổi vị trí của một số Ifcâu lệnh để làm cho nó gọn hơn cho phép tôi trồng nhiều cờ hơn. Tôi cũng có nó chạy đi khi bắt đầu trò chơi để mua thời gian chặn.

Copy D+1 D
Move           //buy some time by moving to a more secure location
Block #A+2
Copy A+1 A
If A #11 #17
Copy #23 *#E
Copy #22 *#E
Copy #21 *#E
Copy #20 *#E
Copy #19 *#E
Copy D+1 D
Copy 1 C
Move
If D #14 #15
Copy 3 C
Copy 11 C
Copy #18 *#*C
If D #16 #15
Copy C+23 C
Flag
Flag
Flag
Flag
Flag

1

Virus lưu động

If D #6 #16
Move
Copy 23 C
Flag
Flag
Flag
Copy 6 C
Copy A+23 A
Copy #A *#A                     //clone previous line to enemy
Copy 23 *C                      //freeze enemy
If A #6 #16                     //loop or turn then continue
Copy 0 *C                       //reboot enemy
Copy 23 C                       //start moving again
Flag
Flag
Flag
Copy D+1 D                      //turn
Flag
Flag
Flag
Flag
Flag
Flag
Copy 22 C                       //freeze instruction

Bot này lang thang cho đến khi nó tìm thấy kẻ thù, sau đó đóng băng chúng, thay thế tất cả mã của chúng bằng mã riêng của nó, giải phóng chúng, sau đó lại đi lang thang.


1

Cảm cúm

Nó lây nhiễm cho bạn gần như ngay lập tức và bạn sẽ phát tán nó ra xung quanh. dựa trên Ký sinh trùng của PhiNotPi's , kiểm tra cảm lạnh thông thường gần như ngay lập tức nếu nó có thể sao chép cờ của nó trên của bạn. Chặn một giá trị ngẫu nhiên nếu không thể. Di chuyển xung quanh một chút nếu không có đối thủ.

Block #22
If D #8 #5
If D #8 #5
If D #8 #5
Copy 23 C
If E #6 #7
Copy D+1 D
Move
If *#E=#22 #15 #9
If *#E+1=#22 #16 #10
If *#E+2=#22 #17 #11
If *#E+3=#22 #18 #12
If *#E+4=#22 #19 #13
If *#E+5=#22 #20 #14
If *#E+6=#22 #21 #23
Copy #22 *#E
Copy #22 *#E+1
Copy #22 *#E+2
Copy #22 *#E+3
Copy #22 *#E+4
Copy #22 *#E+5
Copy #22 *#E+6
Flag
Block #E

1

Cúm

Điều này dựa trên cơ sở của Cold Cold (được dựa trên Ký sinh trùng của tôi) với tốc độ tăng nhẹ.

Move
Block #23
If D #8 #0
If D #8 #0
If D #8 #0
If D #8 #7
Copy 0 C
Copy D+1 D
If *#E #9 #10
Copy #23 *#E
If *#E+1 #11 #12
Copy #23 *#E+1
If *#E+2 #13 #14
Copy #23 *#E+2
If *#E+3 #15 #16
Copy #23 *#E+3
If *#E+4 #17 #18
Copy #23 *#E+4
If *#E+5 #19 #20
Copy #23 *#E+5
If *#E+6 #21 #22
Copy #23 *#E+6
Block #E
Flag

Tôi mong muốn được nhìn thấy sự khác biệt mà điều này sẽ tạo ra. Số 5 trên dòng 5 sẽ gây ra một vòng lặp vô hạn, và những số 7 đó cũng không chắc là những gì bạn dự định.
overactor

@overactor Cảm ơn, đó là những lỗi được tạo bằng cách thêm vào một dòng bổ sung.
PhiNotPi

Tôi có bao giờ biết nỗi đau.
overactor

1

Đổi thương hiệu

Move
If D #10 #0
If D #10 #0
If D #10 #0
If D #10 #0
If D #10 #0
If D #10 #0
If D #10 #0
If D #10 #0
Copy 0 C
If *#E=#14 #11 #9
If *#E==#14 #13 #12
Copy D+1 D
Copy #14 *#E
Flag

Bot này cố gắng xác định vị trí ngẫu nhiên các cờ trong bot kẻ thù và thay thế chúng bằng cờ thân thiện, quay lưng đi sau khi phát hiện thành công. Lấy cảm hứng từ bot ung thư.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.