Tạo một chương trình xác định để chơi n d tic-tac-toe với các thí sinh khác.
Chương trình của bạn sẽ hoạt động khi n
(chiều rộng) và d
(số thứ nguyên) nằm trong các phạm vi sau:
n∈[3,∞)∩ℕ ie a natural number greater than 2
d∈[2,∞)∩ℕ ie a natural number greater than 1
n = 3; d = 2
(3 2 tức là 3 bằng 3):
[][][]
[][][]
[][][]
n = 3; d = 3
(3 3 tức là 3 bằng 3 bởi 3):
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
[][][]
n = 6; d = 2
(6 2 tức là 6 bằng 6):
[][][][][][]
[][][][][][]
[][][][][][]
[][][][][][]
[][][][][][]
[][][][][][]
Và như thế.
Đầu vào:
Đầu vào sẽ là STDIN. Dòng đầu tiên sẽ là hai số n
và d
ở dạng n,d
.
Sau đó sẽ là một dòng bao gồm các tọa độ chỉ định các di chuyển đã được thực hiện. Các tọa độ sẽ được liệt kê dưới dạng : 1,1;2,2;3,3
. Góc trên bên trái là gốc (0,0 cho 2D). Trong trường hợp chung, danh sách này sẽ giống như 1,2,...,1,4;4,0,...,6,0;...
trong đó số thứ nhất đại diện cho bên trái, bên phải thứ hai, thứ ba đến thứ ba, v.v. Lưu ý rằng tọa độ đầu tiên là X
lần đầu tiên, lần thứ hai là O
lượt đầu tiên, ....
Nếu đây là lần di chuyển đầu tiên, đầu vào sẽ có một số theo sau là 1 dòng trống.
Để thống nhất, đầu vào sẽ luôn kết thúc bằng một dòng mới. Đầu vào mẫu (\ n là dòng mới):
10,10\n0,0,0,0,0,0,0,0,0,0;0,2,3,4,5,6,7,8,9,0;0,1,2,3,4,5,6,7,8,9\n
Đối với di chuyển đầu tiên:
10,10\n\n
nơi \n
là kí tự xuống dòng.
Đầu ra:
Xuất di chuyển mà bạn muốn thực hiện ở định dạng giống như đầu vào (danh sách được phân tách bằng dấu phẩy). Di chuyển không hợp lệ (nghĩa là một động thái đã được thực hiện) sẽ dẫn đến thua lỗ cho trò chơi.
Lưu ý: Bạn có thể sử dụng một trình tạo số ngẫu nhiên, miễn là bạn gieo nó với một giá trị sao cho mỗi lần chạy sẽ giống hệt nhau với cùng điều kiện. Nói cách khác, chương trình phải có tính quyết định.
Lưu ý: chỉ cho phép di chuyển hợp lệ.
Trò chơi chiến thắng (Nếu bạn đã chơi đủ đa chiều tic tac toe, điều này là như nhau.)
Để có được chiến thắng, một người chơi phải có tất cả các ô vuông liền kề dọc theo một hàng. Đó là, người chơi đó phải n
di chuyển trên một dòng để trở thành người chiến thắng.
Liền kề:
- mỗi ô là một điểm; ví dụ (0,0,0,0,0) là một điểm trong
d=5
- gạch liền kề là gạch sao cho cả hai đều trên cùng một khối d-cube. Nói cách khác, khoảng cách Ch Quashev giữa các ô là 1.
- nói cách khác, nếu một điểm
p
tiếp giáp với một điểmq
, thì mọi tọa độ trongp
s tọa độ tương ứng sẽq
khác nhau không quá một điểm. Ngoài ra, ít nhất trên cặp tọa độ khác nhau bởi chính xác một.
Dòng:
- Các dòng được xác định bởi các vectơ và gạch. Một dòng là mỗi ô được đánh bởi phương trình:
p0 + t
<
some vector with the same number of coordinates as p0>
Điều kiện mô phỏng và chiến thắng:
Nhà nước trong câu trả lời của bạn nếu nó đã sẵn sàng để chấm điểm. Đó là, chỉ rõ rằng câu trả lời của bạn đã được thực hiện hay chưa.
Nếu câu trả lời của bạn được đánh dấu là xong, nó sẽ không được chấm điểm cho đến ít nhất 24 giờ sau lần chỉnh sửa cuối cùng thành mã.
Các chương trình phải hoạt động ngoại tuyến. Nếu một chương trình bị phát hiện là gian lận, nó sẽ tự động nhận được điểm
-1
và sẽ không được ghi thêm. (Làm thế nào bất cứ ai sẽ kết thúc với chương trình gian lận của họ?)Nếu chương trình của bạn tạo đầu ra không hợp lệ, nó ngay lập tức được tính là tổn thất cho trò chơi
Nếu chương trình của bạn không tạo được kết quả đầu ra sau 1 phút, nó ngay lập tức được tính là tổn thất cho trò chơi. Nếu cần thiết, tối ưu hóa cho tốc độ. Tôi không muốn phải đợi một giờ để kiểm tra chương trình này.
Mỗi chương trình sẽ được chạy với các chương trình khác hai lần cho mỗi
n
trong phạm vi[3,6]
và mỗi chương trìnhd
trong phạm vi[2,5]
, một lầnX
và một lần nhưO
. Đây là một vòng.Đối với mỗi trò chơi, một chương trình sẽ thắng, nó đạt được
+3
điểm số của nó. Nếu chương trình bị ràng buộc (1 thắng và 1 thua trong một vòng duy nhất hoặc ràng buộc cho cả hai trò chơi), thì nó sẽ được+1
. Nếu chương trình bị mất, thì nó sẽ nhận được+0
(tức là không thay đổi).Chương trình có số điểm cao nhất sẽ thắng. Nếu có hòa, thì chương trình có số trận thua ít nhất (trong số các thí sinh bị trói) sẽ thắng.
Lưu ý: Tùy thuộc vào số lượng câu trả lời, tôi có thể cần trợ giúp để chạy các bài kiểm tra.
Chúc may mắn! Và có thể các mô phỏng chạy bao giờ có lợi cho bạn!