Viết một quine bao gồm các từ tiếng Anh thực sự cách nhau bởi các khoảng trống. Một "từ" được định nghĩa là một chuỗi chỉ chứa các chữ cái viết thường và chữ hoa ( /[a-zA-Z]+/
trong regex). Để là "thực", từ của bạn phải được từ điển Scrabble chính thức công nhận .
Tôi đang sử dụng từ điển Scrabble vì nó đưa ra câu trả lời dứt khoát về những gì là và không hợp lệ. Có quá nhiều vùng màu xám với một từ điển bình thường. Lưu ý rằng "A" và "I" (không đề cập đến "quine") không phải là những từ viết nguệch ngoạc hợp lệ.
Vì việc viết một quine chỉ sử dụng các chữ cái và khoảng trắng là gần như không thể trong hầu hết các ngôn ngữ lập trình, bạn có tùy chọn thay thế các khoảng trắng đơn giữa các từ bằng một ký tự bạn chọn. Bạn cũng có tùy chọn để thêm các ký tự vào phía trước của từ đầu tiên và cuối của từ cuối cùng. Các ký tự được thêm này có thể là bất cứ thứ gì (bao gồm cả dòng mới và không phải ASCII) ngoại trừ các chữ cái (az, AZ) . Có một hình phạt cho việc thêm chúng mặc dù (xem Ghi điểm.)
Chi tiết
- Như thường lệ, các quines có thể không đọc hoặc truy cập mã nguồn của riêng họ. (Tôi muốn nói rằng lệnh Q của HQ9 + vi phạm điều này.)
- Đầu ra nên đi đến thiết bị xuất chuẩn hoặc một sự thay thế tương tự. Không có đầu vào.
- Các từ không cần phải viết hoa chính xác. Họ có thể có mũ và chữ thường ở bất cứ đâu. Trình tự các từ không cần có ý nghĩa gì.
- Không có từ nào có thể được sử dụng hơn 3 lần trong chương trình của bạn. Các từ được viết hoa khác nhau vẫn là cùng một từ (ví dụ: 'DOG', 'dog' và 'dOg' đều là cùng một từ).
- Sử dụng ngôn ngữ như PHP hoặc HTML mà có thể chỉ là con mèo ra khỏi nội dung của họ được coi là một kẽ hở tầm thường và không được phép.
- Chương trình phải chứa ít nhất một từ.
Chấm điểm
Điểm của bạn là số lượng "từ thực" trong chương trình của bạn cộng với các hình phạt sau:
- +1 cho mọi không gian được thay thế bằng một ký tự khác
- n n cho mỗi n ký tự bạn đã thêm trước từ đầu tiên (vâng, đó là n với sức mạnh n)
- n n cho mỗi n ký tự bạn đã thêm sau từ cuối cùng
Ví dụ, chương trình
We all LIKE PROgraMmING
sẽ đạt 4 điểm vì nó chứa 4 từ; không có ký tự nào được thêm hoặc thay thế bất kỳ khoảng trắng nào. Tất nhiên là đầu ra We all LIKE PROgraMmING
.
Chương trình
!We@all LIKE#PROgraMmING- =
sẽ đạt điểm 4 + 2 + 1 + 27 = 34; 4 cho các từ, 2 cho các khoảng trắng được thay thế, 1 cho !
ở phía trước và 27 cho - =
ở cuối. Tất nhiên là đầu ra !We@all LIKE#PROgraMmING- =
.
Điểm thấp nhất sẽ thắng. Tiebreaker đi đến câu trả lời với số điểm phạt ít nhất. Nếu vẫn còn một ràng buộc, câu trả lời được bình chọn cao nhất sẽ thắng.