Xác nhận một lưới ô chữ đề xuất.
Các mục nhập phải là các chương trình đầy đủ chỉ đơn giản là kiểm tra lưới được đề xuất để xác định xem nó có đáp ứng một tập hợp các điều kiện để làm cho người giải ô chữ hài lòng không.
Đầu vào
Đầu vào sẽ là tên của một tệp đại diện cho lưới ô chữ. Tên tệp đầu vào có thể được truyền dưới dạng đối số, trên đầu vào tiêu chuẩn hoặc bằng các phương tiện thông thường khác ngoài mã hóa cứng.
Định dạng tệp lưới: Dòng đầu tiên bao gồm hai hằng số nguyên được phân tách bằng khoảng trắng M và N. Theo sau dòng đó là các dòng M, mỗi dòng bao gồm N ký tự (cộng với một dòng mới) được chọn từ [#A-Z ]
. Các ký tự này được giải thích sao '#'
cho chỉ ra một hình vuông bị chặn, ' '
một hình vuông mở trong câu đố không có nội dung đã biết và bất kỳ chữ cái nào có hình vuông mở có chứa chữ cái đó.
Đầu ra
Chương trình sẽ không tạo ra đầu ra trên các lưới hợp lệ và thoát với trạng thái kết thúc bình thường. Nếu lưới được đề xuất không thành công, chương trình sẽ tạo ra một thông báo lỗi chẩn đoán và thoát với trạng thái chấm dứt bất thường (tức là 0 trên unix) nếu điều này được hỗ trợ bởi môi trường thực thi của bạn. Thông báo lỗi phải chỉ ra cả điều kiện nào cho tính hợp lệ bị vi phạm và vị trí của hình vuông vi phạm; bạn có thể tự do lựa chọn phương tiện truyền đạt những sự thật này.
Điều kiện hợp lệ
Các lưới hợp lệ sẽ không có câu trả lời (ngang hoặc xuống) chỉ dài 1 ký tự (tín dụng bổ sung để tạo độ dài tối thiểu làm tham số đầu vào) và sẽ thể hiện tính đối xứng thông thường. Đối xứng thông thường có nghĩa là ô chữ vẫn giữ nguyên sau (ba mô tả tương đương của cùng một hoạt động):
- phản ánh thông qua trung tâm của chính nó
- phản xạ cả theo chiều dọc và chiều ngang
- Xoay 180 độ
Kiểm tra đầu vào và đầu ra dự kiến
Đèo
5 5
# ##
#
#
#
## #
Thất bại trong câu trả lời ngắn:
5 5
## ##
#
#
#
## ##
Thất bại về đối xứng:
5 5
# ##
#
#
# #
## #
Qua một bên
Đây là lần thứ hai trong một số thử thách liên quan đến ô chữ. Tôi dự định sử dụng một tập hợp các định dạng tệp nhất quán xuyên suốt và để xây dựng một bộ tiện ích liên quan đến ô chữ đáng kính trong quy trình. Ví dụ, một câu đố tiếp theo sẽ yêu cầu in một phiên bản ô chữ ASCII dựa trên đầu vào và đầu ra của câu đố này.
Những thách thức trước trong loạt bài này: