Giới thiệu
Viết một bộ giải cho các câu đố Hitori bằng cách sử dụng ít byte nhất.
Thử thách
Nhiệm vụ của bạn là viết một bộ giải cho Hitori (と, từ "một mình" trong tiếng Nhật; ý nghĩa của tên trò chơi là "Để tôi yên") các câu đố logic. Luật như sau:
- Bạn được trình bày với một lưới các ô n-by-n, mỗi ô chứa một số nguyên nằm trong khoảng từ 1 đến n (bao gồm).
- Mục tiêu của bạn là đảm bảo rằng không có số nào xuất hiện nhiều hơn một lần trong mỗi hàng và mỗi cột của lưới, bằng cách xóa các số khỏi lưới đã cho, tuân theo các hạn chế được chỉ ra trong hai quy tắc tiếp theo,
- Bạn không thể xóa hai số từ hai ô liền kề (theo chiều ngang hoặc chiều dọc).
- Các ô được đánh số còn lại phải được kết nối với nhau. Điều đó có nghĩa là bất kỳ hai ô được đánh số còn lại nào cũng có thể được kết nối với một đường cong chỉ bao gồm các phân đoạn kết nối các số còn lại liền kề (theo chiều ngang hoặc chiều dọc). (Cảm ơn @ user202729 vì đã chỉ ra rằng điều này bị thiếu)
Tôi hy vọng các quy tắc được rõ ràng bây giờ. Nếu có bất cứ điều gì không rõ ràng về các quy tắc, hãy kiểm tra trang Wikipedia .
Các trường hợp thử nghiệm
Các ô mà từ đó các số được loại bỏ được biểu thị bằng 0.
Input -> Output
4
2 2 2 4 0 2 0 4
1 4 2 3 -> 1 4 2 3
2 3 2 1 2 3 0 1
3 4 1 2 3 0 1 2
4
4 2 4 3 0 2 4 3
4 1 1 2 -> 4 1 0 2
3 1 2 1 3 0 2 1
4 3 1 3 0 3 1 0
5
1 5 3 1 2 1 5 3 0 2
5 4 1 3 4 5 0 1 3 4
3 4 3 1 5 -> 3 4 0 1 5
4 4 2 3 3 4 0 2 0 3
2 1 5 4 4 2 1 5 4 0
8
4 8 1 6 3 2 5 7 0 8 0 6 3 2 0 7
3 6 7 2 1 6 5 4 3 6 7 2 1 0 5 4
2 3 4 8 2 8 6 1 0 3 4 0 2 8 6 1
4 1 6 5 7 7 3 5 -> 4 1 0 5 7 0 3 0
7 2 3 1 8 5 1 2 7 0 3 0 8 5 1 2
3 5 6 7 3 1 8 4 0 5 6 7 0 1 8 0
6 4 2 3 5 4 7 8 6 0 2 3 5 4 7 8
8 7 1 4 2 3 5 6 8 7 1 4 0 3 0 6
9
8 6 5 6 8 1 2 2 9 8 0 5 6 0 1 2 0 9
5 6 2 4 1 7 9 8 3 5 6 2 4 1 7 9 8 3
5 8 2 5 9 9 8 2 6 0 8 0 5 0 9 0 2 0
9 5 6 6 4 3 8 4 1 9 5 6 0 4 3 8 0 1
1 1 6 3 9 9 5 6 2 -> 0 1 0 3 9 0 5 6 2
1 1 4 7 3 8 3 8 6 1 0 4 7 0 8 3 0 6
3 7 4 1 2 6 4 5 5 3 7 0 1 2 6 4 5 0
3 3 1 9 8 7 7 4 5 0 3 1 9 8 0 7 4 5
2 9 7 5 3 5 9 1 3 2 9 7 0 3 5 0 1 0
Những trường hợp thử nghiệm được lấy từ khái niệm này là câu đố , PuzzleBooks , khái niệm này là câu đố , Wikipedia , và Youtube , tương ứng.
Thông số kỹ thuật
Không cần phải lo lắng về việc xử lý ngoại lệ.
Bạn có thể giả định rằng đầu vào luôn là một câu đố hợp lệ với một giải pháp duy nhất và bạn có thể tận dụng điều này bằng cách viết mã của mình.
Đây là code-golf , số byte thấp nhất sẽ thắng.
4 <= n <= 9 (16 ban đầu, được đổi thành 9 theo đề xuất của Stewie Griffin, cũng tiết kiệm một số rắc rối trong IO)
Bạn có thể nhận đầu vào và cung cấp đầu ra thông qua bất kỳ hình thức tiêu chuẩn nào và bạn có thể tự do chọn định dạng.
Một số đề xuất cho định dạng đầu ra là (nhưng bạn không bị hạn chế đối với những định dạng này)
- Xuất ra lưới cuối cùng
- Xuất ra lưới chứa tất cả các số bị loại bỏ
- Xuất ra một danh sách tọa độ của một trong những điều trên
Như thường lệ, sơ hở mặc định áp dụng ở đây.
Liên quan (lấy cảm hứng từ thử thách này): Kiểm tra xem tất cả các yếu tố trong ma trận có được kết nối không
Thử thách cuối cùng của tôi: Mở rộng Trò chơi Sevens
4 <= n <= 16
, nhưng trường hợp thử nghiệm lớn nhất là chon=9
. Tôi đề nghị bạn hoặc đăng mộtn=16
trường hợp thử nghiệm, hoặc nói4 <= n <= 9
. Nhân tiện, đây là một thử thách thú vị :)