Trong ngôn ngữ lập trình bạn chọn, hãy viết 95 chương trình, mỗi chương trình sẽ tạo ra một trong số 95 ký tự ASCII có thể in khác nhau mà không có ký tự đó xuất hiện ở bất kỳ đâu trong chương trình .
Ví dụ: nếu ngôn ngữ của bạn là Python , chương trình của bạn xuất ký tự P
có thể là
print(chr(80))
bởi vì P
có mã ASCII 80. Chương trình này hợp lệ vì P
không bao giờ xuất hiện trong mã nguồn. Tuy nhiên, đối với chương trình xuất chữ thường p
, đại loại như
print(chr(112))
sẽ không hợp lệ bởi vì, trong khi nó in p
, p
có trong mã. Một chương trình hợp lệ có thể là
exec(chr(112)+'rint(chr(112))')
mà in p
nhưng không chứa p
.
Mục tiêu của bạn là làm cho mỗi chương trình trong 95 chương trình của bạn càng ngắn càng tốt. Điểm của bạn là tổng độ dài ký tự của tất cả các chương trình của bạn.
Nếu vì bất kỳ lý do nào bạn không thể viết chương trình hợp lệ cho một số ký tự, bạn có thể đánh dấu các ký tự đó là "Không lập trình" hoặc DNP và bỏ hoàn toàn các chương trình cho chúng. Bằng cách này, các ngôn ngữ nghiêm ngặt về mặt cú pháp sẽ có thể cạnh tranh.
Câu trả lời chiến thắng là câu trả lời có số điểm thấp nhất của tập các câu trả lời rằng có ít nhất DNP của.
Quy tắc
Mã nguồn của tất cả các chương trình của bạn chỉ có thể chứa các tab và dòng mới ASCII có thể in được , tất cả đều được tính là một ký tự. (Bởi vì trong một mã hóa khác, sẽ dễ dàng bỏ qua các ký tự không tồn tại!)
- Lưu ý: Quy tắc này có vẻ cần thiết nhưng có nhiều ngôn ngữ với các bảng mã khác nhau và tôi chắc chắn sẽ rất tuyệt khi xem câu trả lời cho chúng. Do đó, bạn có thể phá vỡ quy tắc này , bạn có thể sử dụng bất kỳ ký tự nào bạn muốn, nhưng sau đó câu trả lời của bạn trở nên không cạnh tranh , nó không thể thắng.
Các chương trình phải thực tế, đầy đủ các chương trình , theo quy ước chuẩn của ngôn ngữ của bạn. Chức năng và đoạn REPL không được phép.
Mỗi đầu ra của chương trình sẽ đi đến thiết bị xuất chuẩn hoặc ngôn ngữ thay thế được chấp nhận của bạn.
Các chương trình không nên nhắc hoặc yêu cầu đầu vào. (Nếu lời nhắc nhập liệu là ngôn ngữ của bạn, thì không sao.)
Các chương trình nên mang tính quyết định, hữu hạn trong thời gian chạy và độc lập. ví dụ: không có vấn đề gì nếu một chương trình được chạy trong một thư mục tách biệt với các chương trình khác.
Đầu ra của một chương trình phải là ký tự ASCII có thể in chính xác mà nó tương ứng, theo sau là một dòng mới duy nhất, không hơn, không kém.
Hãy chắc chắn bao gồm thông tin về tất cả 95 chương trình (lý tưởng) trong câu trả lời của bạn, cũng như điểm số của bạn và bất kỳ DNP nào. Bạn không cần phải liệt kê tất cả các chương trình mà làm theo một mô hình đơn giản như " , ..." nhưng chắc chắn rằng bạn chắc chắn họ đều sẽ làm việc và điểm số của bạn được thêm vào một cách chính xác.print(chr(80))
print(chr(81))
print(chr(82))
Để tham khảo, đây là 95 ASCII có thể in được mà các chương trình của bạn phải xuất ra:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
0