Tương tự như các câu đố quine khác (cụ thể hơn là câu đố này ), hãy viết một chương trình tạo nguồn cho chính nó.
Đây là khuynh hướng mới: Mã được tạo ra KHÔNG phải giống hệt với nguồn. Thay vào đó, nó sẽ xuất ra một chương trình khác sẽ tạo ra chương trình đầu tiên.
Thử thách liên quan đến ở trên đã đạt được điều đó bằng cách nhảy giữa hai ngôn ngữ. Tôi nghĩ rằng điều này sẽ được thực hiện chỉ bằng một ngôn ngữ , nhưng hai phiên bản (hoặc nhiều hơn) của nguồn sẽ khác nhau đáng kể (xem quy tắc bên dưới). Với sự hạn chế này, các câu trả lời của một nhân vật sẽ không được phép, do đó đòi hỏi một chút suy nghĩ sẽ được đưa vào một bài nộp cuối cùng.
QUY TẮC
- Mã của bạn phải được sản xuất chỉ bằng một ngôn ngữ. (Nhiều bài nộp, một cho mỗi ngôn ngữ là hoàn toàn chấp nhận được.)
- Các phiên bản mã khác nhau của bạn phải được phân biệt cú pháp. Nói cách khác, nếu bạn muốn vẽ một cây cú pháp trừu tượng cho mã của mình, thì nên có ít nhất một nút khác nhau.
- Cung cấp AST sẽ không cần thiết, nhưng nếu bạn cảm thấy có xu hướng cung cấp một cho mỗi chương trình của mình, điều đó sẽ giúp ích trong việc đánh giá.
- Bạn có thể tạo ra nhiều lần lặp như bạn muốn, miễn là tất cả chúng vẫn khác biệt về mặt cú pháp. (Nhiều hơn sẽ giúp điểm số của bạn, xem bên dưới.)
KIẾM
Điểm cuối cùng của bạn sẽ là độ dài trung bình của tất cả các chương trình của bạn, chia cho số lượng chương trình.
Ví dụ 1:
A (nguồn cho B) = 50 ký tự
B (nguồn cho A) = 75 ký tự
Điểm cuối cùng = 31,25
Ví dụ 2:
A (nguồn cho B) = 50 ký tự
B (nguồn cho C) = 75 ký tự
C (nguồn cho A) = 100 ký tự
Điểm cuối = 25