Đây là mã golf. Đối với thử thách này, tôi sẽ chấp nhận một phương thức (bạn không cần một chương trình đầy đủ), nhưng chữ ký phương thức sẽ được tính vào số byte và tôi muốn xem chữ ký đầy đủ (không phải là lamdba). Đầu vào cho phương thức là một mảng số nguyên với 81 phần tử. Giá trị đầu ra / trả về từ phương thức là một chuỗi đại diện cho mảng dưới dạng bảng sudoku ascii.
Nếu bạn đang sử dụng ngôn ngữ bí truyền hoặc thứ gì đó hoàn toàn không có phương pháp, bạn có thể điều chỉnh, nhưng nếu ngôn ngữ đó hỗ trợ tất cả thì tôi muốn thấy một cái gì đó thực sự có thể được cắm vào một chương trình không có thực ", ngay cả khi Phương pháp cơ thể tự nó là một nỗi đau để làm việc với. Yêu cầu này không có nghĩa là chặn các ngôn ngữ như Jelly hoặc 05AB1E, nhưng để giúp các ngôn ngữ như Java dễ dàng hơn để xây dựng một thứ gì đó có ý nghĩa cho nền tảng đó.
Đối với đầu vào, các giá trị nguyên 1-9 phải có ý nghĩa rõ ràng. Số 0 phải luôn được hiểu là một ô trống. Bạn cũng có thể diễn giải bất cứ điều gì khác ngoài phạm vi 1-9 dưới dạng một ô trống, nhưng điều này là không bắt buộc. Định vị từ mảng đến câu đố bắt đầu ở phía trên bên trái và điền vào mỗi hàng từ trái sang phải trước khi chuyển sang hàng tiếp theo.
Đối với các hộp, tôi muốn các đường đôi xung quanh bên ngoài và giữa mỗi vùng 3x3 và các đường đơn giữa các ô khác. Chúng nên được vẽ bằng các ký tự vẽ đường thẳng (nếu định dạng I / O của bạn biểu thị các chuỗi dưới dạng một chuỗi byte chứ không phải là một chuỗi các ký tự, bạn nên thể hiện chúng trong một mã hóa nổi tiếng như UTF-8 hoặc codepage 347).
Đối với thử thách này, tôi KHÔNG yêu cầu bạn tạo ra câu đố sudoku. Đó là đầu vào cho chức năng. Tôi KHÔNG yêu cầu bạn giải câu đố. Tôi chỉ yêu cầu bạn tạo ra một chuỗi để "vẽ" những gì bạn đã cho (càng ít byte càng tốt).
Ví dụ đầu vào:
Giá trị cho mảng:
{ 8, 5, 0, 0, 0, 2, 4, 0, 0, 7, 2, 0, 0, 0, 0, 0, 0, 9, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 2, 3, 0, 5, 0, 0, 0, 9, 0, 0 ,0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 7, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 4, 0}
Các giá trị có thể sử dụng bất kỳ cơ chế nào là tự nhiên cho ngôn ngữ của bạn: int [], ArrayList, chuỗi, tuple, chuỗi chữ số, bất cứ điều gì, miễn là bạn có một giá trị trong đầu vào cho mọi ô (không có bản đồ chỉ cho các ô được đặt vào các vị trí ). Hãy nhớ rằng đầu vào được cung cấp ... nó không phải là một phần của số byte của bạn. Nhưng đầu vào có thể đại diện cho bất kỳ câu đố sudoku nào và câu đố thậm chí có thể không có giải pháp hợp lệ . Bạn có cho rằng câu đố là có thể in được. Bạn sẽ không nhận được một cái gì đó với 82 yếu tố, ví dụ.
Bạn cũng có thể giả sử một phông chữ có chiều rộng cố định hợp lý.
Đầu ra tương ứng:
╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ 8 │ 5 │ ║ │ 2 4 │ ╟─ 7 │ 2 │ ║ │ │ ║ │ 9 ╟─ ║ │ 4 ║ │ │ ║ │ │ ║ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ║ │ │ 1 │ 7 ║ │ 2 ╟─ 3 │ 5 ║ │ │ 9 │ ╟─ ║ │ 4 │ ║ │ │ ║ │ │ ║ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ │ │ 8 │ ║ 7 │ ╟─ ║ │ 1 │ 7 ║ │ │ ║ │ │ ╟─ │ │ 3 │ 6 ║ 4 │ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝