Viết một chương trình bằng ngôn ngữ bạn chọn, chơi một trò chơi hoàn hảo về tic-tac-toe trên bảng 3 * 3 với người chơi. Tuy nhiên, mỗi di chuyển phải là một chương trình khác nhau , được tạo từ lần lặp trước.
Làm thế nào và ở dạng nào bạn đánh giá đầu vào của con người, tùy thuộc vào bạn, nhưng nó phải được đọc từ đầu vào tiêu chuẩn. Tương tự, bạn có thể tự do chọn phương thức bạn sẽ xác định người chơi nào bắt đầu (ví dụ: bạn hỏi trước hoặc bạn cho phép con người nhập di chuyển không hợp lệ để báo hiệu rằng máy tính khởi động hoặc các ý tưởng khác).
Xác nhận di chuyển là không cần thiết, bạn có thể giả sử một đối thủ khá chơi người.
Về cơ bản, bạn có chương trình tương ứng với trạng thái của hội đồng quản trị. Trạng thái được in theo bất kỳ cách nào có thể nhận ra, nhưng ít nhất mức độ chi tiết sau đây được mong đợi:
X..
00X
x..
Sau khi trình phát của con người nhập các bước di chuyển của mình, chương trình của bạn phải tạo ra lần lặp tiếp theo của chính nó dưới dạng tệp nguồn trong cùng một ngôn ngữ (theo đầu ra tiêu chuẩn hoặc thành một tệp) và chấm dứt. Bạn không được phép lưu trữ thông tin ở bất kỳ nơi nào khác ngoài tệp nguồn đó. (không cần thiết cho chương trình của bạn để xây dựng và chạy chương trình đã tạo, nó có thể được thực hiện bởi người dùng - tuy nhiên, nó không bị cấm). Khi chương trình được tạo được xây dựng và chạy, nó sẽ hoạt động tương tự, hiển thị trạng thái, chờ người dùng nhập liệu, v.v.
Vào cuối trò chơi, bạn phải in kết quả (cho dù bạn thắng hay là hòa) theo bất kỳ cách nhận dạng rõ ràng nào.
Bằng cách chơi hoàn hảo, ý tôi là chương trình không được thua, và nếu có khả năng buộc phải thắng, thì nên thắng.
Chiến thắng mã ngắn nhất , người chiến thắng được chọn ít nhất 10 ngày sau lần nhập hợp lệ đầu tiên.
Bạn được giảm 10% số điểm nếu chương trình của bạn có thể xử lý việc xây dựng và khởi chạy lần lặp tiếp theo. (Tôi biết, có lẽ nó không có giá trị) Tất nhiên, bản thân chương trình phải được chấm dứt vào thời điểm lần lặp tiếp theo chấp nhận các động thái từ người dùng.
Nếu bạn sử dụng một số thủ thuật không phổ biến lạ, xin vui lòng gửi một lời giải thích ngắn với mã của bạn.