Bạn có thể biết Trò chơi cuộc sống của Conway , máy tự động di động nổi tiếng được phát minh bởi nhà toán học John Conway. Cuộc sống là một tập hợp các quy tắc, cùng nhau, cho phép bạn mô phỏng một bảng tế bào hai chiều. Các quy tắc quyết định các tế bào trên bảng sống và những tế bào nào chết. Với một số trí tưởng tượng, bạn có thể nói rằng Life là một trò chơi không có người chơi: một trò chơi với mục tiêu tìm ra các mô hình với hành vi thú vị, giống như tàu lượn nổi tiếng.
Một trò chơi không có người chơi ... Cho đến hôm nay. Bạn phải viết một chương trình chơi Trò chơi cuộc sống - và chơi nó để giành chiến thắng, theo phong cách Vua của Đồi. Đối thủ của bạn (số ít) tất nhiên cố gắng làm điều tương tự. Người chiến thắng là bot cuối cùng với bất kỳ ô sống nào hoặc người chơi có nhiều ô sống nhất sau 10000 thế hệ.
Luật chơi
Các quy tắc gần giống như Cuộc sống bình thường (B3 / S23):
- Một tế bào sống có ít hơn hai người hàng xóm thân thiện chết vì đói.
- Một tế bào sống với hai hoặc ba người hàng xóm thân thiện sống sót.
- Một tế bào sống với hơn ba người hàng xóm thân thiện chết vì quá đông dân.
- Một tế bào chết với chính xác ba người hàng xóm của cùng một người chơi trở nên sống động để chiến đấu cho người chơi đó với điều kiện không có hàng xóm của kẻ thù .
... nhưng sau mỗi thế hệ, cả bạn và đối thủ đều có cơ hội can thiệp. Bạn có thể thức tối đa 30 ô để chiến đấu cho bạn. (Ai đi trước được quyết định bởi máy chủ.)
Bảng là một ô vuông (x, y). Tất cả các hình vuông ban đầu đã chết. Các biên giới không bao quanh (đây không phải là một thế giới hình xuyến) và đã chết vĩnh viễn.
Đây là một cuộc thi theo tinh thần của Battlebots và Core Wars . Có một máy chủ trung tâm sẽ chạy bot và nó có thể được tìm thấy ở đây
Giao thức
Máy chủ đấu trường nói một giao thức JSON đơn giản được truyền đạt thông qua argv
Trong đó Giá trị là một chuỗi được mã hóa JSON
y_size
: các chuỗi y tối đa của gạch trước khi chúng biến mấtx_size
: x x tối đa của gạch trước khi chúng biến mấttick_id
: số đánh dấu hiện tạiboard
: một từ điển với các khóa ở dạng '(y, x)' và các giá trị ở dạngbot_id
(int)bot_id
: gạch trong bảng với id này là của bạn
Thí dụ:
{"y_size":2000,"x_size":2000,"board":{},"bot_id":1,"tick_id":1}
Nói với máy chủ sự lựa chọn của bạn:
- Gửi cho máy chủ một danh sách các ô để chuyển sang màu của bạn.
- Chỉ những người trống sẽ được thay đổi
- Định dạng danh sách coords lồng nhau
[[0,0], [0,1], [100,22]...]
LƯU Ý: Bot của bạn hoàn toàn không phải cập nhật các ô - máy chủ tự cập nhật
Thể lệ cuộc thi
- Nếu việc triển khai của bạn không tuân theo giao thức, đến lượt nó sẽ bị hủy bỏ; Máy chủ sẽ cho rằng không có thay đổi về trạng thái
- Bạn không được phép cố tình lợi dụng lỗi trong máy chủ đấu trường.
- Có AI của bạn quyết định di chuyển trong một thời gian lành mạnh. Vui lòng gửi bước tiếp theo của bạn nhanh nhất có thể.
- Cuối cùng, xin vui lòng đến máy chủ. Đó là để bạn tận hưởng.
- Không tuân theo các quy tắc này có thể dẫn đến việc không đủ tiêu chuẩn.
- Trong trường hợp hòa, cả hai người chơi có 1 chiến thắng được thêm vào tổng số của họ
Tự chạy bộ điều khiển
Nguồn cho bộ điều khiển có thể được tìm thấy ở đây . Có 2 cách để chạy bộ điều khiển:
- Chế độ thi đấu (thiết bị đầu cuối)
- Thiết lập với
python3 get_answers.py
- Chạy tất cả các v cạnh tranh với mỗi bot đọ sức với nhau.
- Thiết lập với
- Chế độ kiểm tra (GUI)
- Chạy
python3 nice_gui.py
- Nhấp chuột
Pull Answers
- Nếu bạn muốn thêm câu trả lời của riêng mình để thử trước khi đăng, hãy nhấp
File -> Add manual answer
và tìm tệp và chọn ngôn ngữ được viết. - Nếu ngôn ngữ của bạn không xuất hiện ping tôi và tôi sẽ cố gắng cài đặt nó trên máy chủ, tôi sẽ chạy nó (hướng dẫn cài đặt và chạy cũng sẽ rất tuyệt!)
- Chọn 2 bot để đối đầu với nhau
- Nhấp chuột
Run
- Xem trò chơi ...
- Chạy
- Cài đặt
- Yêu cầu python3
- get_answers yêu cầu bs4 và html5lib
- bộ điều khiển yêu cầu cách chạy các tệp .sh (MinGW trên windows)
Chấm điểm
Bot có nhiều chiến thắng nhất bắt đầu từ 12/07/2016
(ngày 12 tháng 7)14/07/2016
(ngày 14 tháng 7, không thể tìm ra cách chạy bot) sẽ giành chiến thắng.
Có thể yêu cầu trợ giúp với bộ điều khiển / gui trong phòng chat này
Câu hỏi này đã được phát triển từ năm 2014 và là câu hỏi được đánh giá cao nhất trong hộp cát. Cảm ơn đặc biệt đến Wander Nauta (tác giả và khái niệm ban đầu), Trò chuyện PPCG (bình luận và trợ giúp) và bất kỳ ai đã bình luận trong bài đăng trên hộp cát (thêm bình luận).