Tất cả các bot tại chiến trường đột nhiên bị tẩy não và không ai có thể giải thích tại sao. Nhưng ai quan tâm miễn là họ vẫn có thể chiến đấu - mặc dù Brainfuck là ngôn ngữ duy nhất họ hiểu được nữa.
Đã được một thời gian kể từ lần gửi cuối cùng, vì vậy cuối cùng tôi sẽ thông báo người chiến thắng BrainFuckedBotsForBattling: Xin chúc mừng LymiaAluysia đã chiến thắng với NyurokiMagicalFantasy!
Bảng điểm
| Owner | Bot Score |
|--------------------|-------------------------------|
| LymiaAluysia | NyurokiMagicalFantasy - 600 |
| Sylwester | LethalLokeV2.1 - 585 |
| weston | MickeyV4 - 584 |
| Sp3000 | YandereBot - 538 |
| Comintern | CounterPunch - 512 |
| Sylwester | BurlyBalderV3 - 507 |
| LymiaAluysia | NestDarwin - 493 |
| IstvanChung | Bigger - 493 |
| Manu | DecoyMaster - 489 |
| archaephyrryx | Wut - 478 |
| DLosc | LightfootPlodder - 475 |
| archaephyrryx | 99BottlesOfBats - 461 |
| Sylwester | TerribleThorV2 - 458 |
| MikaLammi | WallE2.0 - 443 |
| Mikescher | MultiVAC - 441 |
| archaephyrryx | Twitcher - 439 |
| Timtech | MetalDetector - 438 |
| AndoDaan | BeatYouMate - 433 |
| csarchon | TheWallmaster - 427 |
| Sparr | SeeSawRush - 412 |
| archaephyrryx | Stitcher - 406 |
| PhiNotPi | RandomOscillator - 403 |
| ccarton | AnybodyThere - 398 |
| Comintern | 2BotsOneCup - 392 |
| kaine | SternBot - 387 |
| PhiNotPi | EvoBot2 - 385 |
| PhiNotPi | EvoBot1 - 381 |
| Brilliand | TimedAttack - 373 |
| Sylwester | ReluctantRanV2 - 373 |
| AndoDaan | PrimesAndWonders - 359 |
| Nax | TruthBot - 357 |
| DLosc | Plodder - 356 |
| weston | FastTrapClearBot - 345 |
| MikaLammi | PolarBearMkII - 340 |
| Sp3000 | ParanoidBot - 336 |
| Moop | Alternator - 319 |
| TestBot | FastClearBot - 302 |
| icedvariables | PyBot - 293 |
| TestBot | DecoyBot - 293 |
| kaine | BestOffense - 291 |
| Geobits | Backtracker - 289 |
| bornSwift | ScribeBot - 280 |
| IngoBuerk | Geronimo - 268 |
| flawr | CropCircleBot - 239 |
| plannapus | CleanUpOnAisleSix - 233 |
| frederick | ConBot - 230 |
| frederick | 128Bot - 222 |
| AndoDaan | EndTitled - 219 |
| PhiNotPi | CloakingDeviceBot - 215 |
| AndoDaan | GetOffMate - 206 |
| DLosc | ScaredyBot - 205 |
| isaacg | CleverAndDetermined - 202 |
| PhiNotPi | CantTouchThis - 202 |
| Moop | StubbornBot - 174 |
| Cruncher | StallBot - 168 |
| IngoBuerk | Gambler - 157 |
| BetaDecay | RussianRoulette - 129 |
| flawr | DoNothingBot - 123 |
| SebastianLamerichs | Dumbot - 115 |
| mmphilips | PacifistBot - 112 |
| SeanD | DontUnderstand - 92 |
| proudHaskeller | PatientBot - 83 |
| frederick | Dumberbot - 70 |
| flawr | MetaJSRandomBot - 68 |
| Darkgamma | TheRetard - 61 |
| BetaDecay | Roomba - 61 |
| BetaDecay | PrussianRoulette - 31 |
| frederick | Dumbestbot - 0 |
Điểm cuối cùng từ ngày 09.10.2014
EDIT6 : Các bản ghi bị loại bỏ do kích thước cực lớn và thời gian chạy. Bạn có thể tự tạo chúng bằng cách bỏ qua các dòng trong RunThisTournament.py
.
EDIT5 : Đã thực hiện xử lý Viết tắt vào bộ điều khiển, không còn thời gian chạy lớn nữa. Điều này có tác dụng phụ là số và dấu ngoặc đơn không được coi là nhận xét nữa. Bạn vẫn có thể sử dụng chúng nếu bạn muốn cung cấp một phiên bản có chú thích, nhưng sẽ rất hữu ích nếu đó cũng là một phiên bản mã không bị lỗi , vì vậy tôi không cần phải xóa các nhận xét theo cách thủ công. Cảm ơn!
EDIT4 : Thay đổi tiêu đề, bởi vì giải đấu đã bị xóa khỏi các câu hỏi mạng nóng. Cảm ơn @Geobits đã chỉ ra điều này!
EDIT3 : Đã xóa các nhận xét trong các chương trình bf, do kết quả không mong muốn, nên được khắc phục ngay bây giờ. Nếu bất cứ ai có vấn đề với việc loại bỏ ý kiến của mình, xin vui lòng báo cáo.
EDIT2 : Vì nó gây ra thời gian chạy phức tạp trên máy tính khá chậm của tôi, tôi đã giảm giới hạn thời gian chờ từ 100000 chu kỳ xuống 10000 chu kỳ. Không phải là bất cứ ai đã biến kết quả của một trò chơi đang chạy vượt quá điểm này.
EDIT1 : Đã sửa lỗi trong tập lệnh chuyển đổi khiến trình thông dịch không bỏ qua các số trong các chương trình nhận xét.
Sự miêu tả
Đây là một giải đấu Brainfuck lấy cảm hứng từ BF Joust . Hai bot (chương trình Brainfuck) đang chiến đấu với nhau trong một đấu trường được thể hiện bằng một băng nhớ. Mỗi ô có thể giữ các giá trị từ -127 đến 128 và bao bọc ở giới hạn của chúng (vì vậy 128 + 1 = -127).
Các hướng dẫn hợp lệ tương tự như Brainfuck thông thường, có nghĩa là:
+ : Increment cell at your pointer's location by 1
- : Decrement cell at your pointer's location by 1
> : Move your memory pointer by 1 cell towards the enemy flag
< : Move your memory pointer by 1 cell away from the enemy flag
[ : Jump behind the matching ']'-bracket if the cell at your pointer's location equals 0
] : Jump behind the matching '['-bracket if the cell at your pointer's location is not 0
. : Do nothing
Đấu trường có kích thước từ 10 đến 30 ô, được chọn giả trong mỗi trận chiến. Ở cả hai đầu là một 'cờ' có giá trị ban đầu là 128, trong khi tất cả các ô khác đều bằng không. Mục tiêu của bot của bạn là không cờ của kẻ thù trong 2 chu kỳ liên tiếp trước khi anh ta thay đổi cờ của bạn.
Mỗi bot bắt đầu từ cờ riêng của mình, đó là ô [0] theo quan điểm riêng của mình. Đối thủ nằm ở phía bên kia của băng.
[ 128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 128 ]
^ ^
my bot other bot
Cả hai bot thực hiện hành động của họ đồng thời, đây được coi là một chu kỳ. Trò chơi kết thúc sau 10000 chu kỳ hoặc ngay khi đạt được một trong những điều kiện chiến thắng. Nếu một trong những chương trình kết thúc, đơn giản là nó sẽ ngừng hoạt động cho đến khi kết thúc trò chơi, nhưng vẫn có thể giành chiến thắng.
Điều kiện chiến thắng
Bot của bạn thắng theo một trong các điều kiện sau:
- Cờ của kẻ thù của bạn là 0 trước bạn
- Kẻ thù của bạn di chuyển con trỏ ra khỏi băng (thực hiện
>
trên cờ của bạn hoặc<
của chính mình) - Giá trị cờ của bạn cách xa 0 so với giá trị cờ của đối thủ sau 10000 chu kỳ
Quy tắc
Bài viết của bạn nên chứa tên cho bot của bạn và mã của nó.
- Bạn có thể sử dụng cú pháp viết tắt sau đây để làm cho mã của bạn dễ đọc hơn:
- ví dụ
(+)*4
giống như++++
, điều này hợp lệ cho bất kỳ lệnh nào ngoại trừ dấu ngoặc không khớp trong ngoặc đơn vì logic vòng lặp va chạm với logic viết tắt. Vui lòng sử dụng[-[-[-
thay vì([-)*3
- ví dụ
- Mỗi ký tự khác không phải
+-><[].
là một nhận xét và do đó bị bỏ qua, ngoại trừ()*
chữ viết tắt
Bots không tuân theo các quy tắc sẽ loại trừ khỏi giải đấu.
- Chỉ cho phép Brainfuck cơ bản, không có biến thể nào khác hỗ trợ các quy trình hoặc hoạt động số học
- Mã nguồn bot của bạn không được chứa dấu ngoặc chưa từng có
Bạn có thể thông báo cho mình về các chiến lược cơ bản nhưng không sử dụng mã của người khác cho bot của riêng bạn.
Chấm điểm
Điểm của bot được xác định bởi số lần thắng so với tất cả các bot khác. Cuộc chạm trán giữa 2 bot bao gồm 10 trận đấu với độ dài băng nhớ khác nhau, dẫn đến số điểm tối đa là 10 điểm cho mỗi lần gặp. Một kết quả hòa không có điểm cho trận đấu này.
Chương trình điều khiển
Bạn có thể tìm thấy chương trình điều khiển trên github, cùng với nhật ký đầy đủ từ các trận chiến. Bảng xếp hạng sẽ được đăng ở đây khi nó được tạo.
Hãy tự sao chép kho lưu trữ và thử bot của bạn chống lại những người khác. Sử dụng python Arena.py yourbot.bf otherbot.bf
để chạy một trận đấu. Bạn có thể sửa đổi các điều kiện với các cờ dòng lệnh -m
và -t
. Nếu thiết bị đầu cuối của bạn không hỗ trợ các chuỗi thoát ANSI, hãy sử dụng --no-color
cờ để tắt đầu ra màu.
Ví dụ bot
FastClearBot.bf
(>)*9 Since the tape length is at least 10, the first 9 cells can be easily ignored
([ Find a non-zero cell
+++ Increment at first, since it could be a decoy
[-] Set the cell to zero
]> Move on to the next cell
)*21 Repeat this 21 times
DecoyBot.bf
>(+)*10 Set up a large defense in front of your flag
>(-)*10 Set up another one with different polarity
(>+>-)*3 Create some small decoys
(>[-] Move on and set the next cell to zero
. Wait one round, in case it is the enemy's flag
)*21 Repeat this 21 times
DecoyBot sẽ thắng mọi trận đấu với độ dài băng lớn hơn mười, vì FastClearBot có thể tránh được các mồi nhử nhỏ, nhưng không phải là những cái lớn hơn. Tình huống duy nhất mà FastClearBot có thể giành chiến thắng trước DecoyBot, là khi nó đủ nhanh để chạm tới cờ của kẻ thù trước khi đối thủ của anh ta tạo ra những mồi nhử lớn.