Một sestina là một định dạng của bài thơ mà sau một mô hình thú vị mà chúng ta có thể tạo ra. Nó có sáu khổ thơ sáu dòng mỗi dòng, trong đó các từ cuối cùng của mỗi dòng trong khổ thơ đầu tiên tạo thành các kết thúc dòng trong mỗi khổ liên tiếp, được xoay theo một mẫu thiết lập. (Cuối cùng cũng có một khổ ba dòng, nhưng chúng tôi sẽ không lo lắng về điều đó.) Hãy xem ba khổ thơ đầu tiên của Elizabeth Giám mục có tên Sestina sáng tạo :
Mưa tháng chín rơi trên nhà.
Trong ánh sáng thất bại, bà cụ
ngồi trong bếp cùng đứa trẻ
bên cạnh Little Marvel Stove,
đọc những câu chuyện cười từ niên giám,
cười và nói chuyện để giấu nước mắt.Cô ấy nghĩ rằng những giọt nước mắt bình đẳng của cô ấy
và cơn mưa đập trên mái nhà
đều được báo trước bởi niên giám,
nhưng chỉ được biết đến với một người bà.
Các ấm đun nước sắt hát trên bếp.
Cô cắt một ít bánh mì và nói với đứa trẻ,Bây giờ là thời gian cho trà; nhưng đứa trẻ
đang nhìn những giọt nước mắt nhỏ cứng của tếch
nhảy như điên trên bếp đen nóng bỏng,
cách mưa phải nhảy trên nhà.
Dọn dẹp, bà cụ
treo lên cuốn niên giám thông minh...
Lưu ý cách mỗi dòng kết thúc bằng một trong sáu từ "nhà", "bà", "con", "bếp", "niên giám" hoặc "nước mắt". Không chỉ vậy, mà các từ được sắp xếp theo mẫu 6 trừ1 Nó kết thúc giống như một hình xoắn ốc:
Chúng tôi vẫn còn vài năm nữa mới có thể tạo ra một sestina đầy đủ, nhưng chúng tôi có thể tạo một mẫu có các từ kết thúc của mỗi khổ theo thứ tự thích hợp. Viết chương trình hoặc hàm, với sáu từ kết thúc dòng, xuất ra bản thiết kế cho một sestina, theo các quy tắc này. Đây là kết quả mong đợi cho đầu vào house grandmother child stove almanac tears
:
house
grandmother
child
stove
almanac
tears
tears
house
almanac
grandmother
stove
child
child
tears
stove
house
grandmother
almanac
almanac
child
grandmother
tears
house
stove
stove
almanac
house
child
tears
grandmother
grandmother
stove
tears
almanac
child
house
Các khổ thơ đầu tiên là các từ theo thứ tự ban đầu, khổ thơ thứ hai theo thứ tự 6-1-5-2-4-3 từ đầu tiên. Khổ thơ thứ ba là thứ tự đó liên quan đến khổ thứ hai, v.v., tất cả các cách để khổ thơ 6.
Giả sử rằng các từ đầu vào sẽ luôn chỉ là chữ cái, chữ hoa hoặc chữ thường. Bạn có thể lấy chúng dưới dạng một chuỗi các chuỗi hoặc một chuỗi được phân tách bằng ký tự không phải chữ cái (dấu cách, dòng mới, v.v.). Trong đầu ra, các dòng được phân tách bằng dòng mới ( 0x0A
) và khổ thơ cách nhau bởi hai dòng mới. Một dòng mới có thể được chấp nhận.
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte thắng. Điều đó đang được nói, có thể ngắn hơn để nén toàn bộ cấu trúc của bài thơ, nhưng tôi muốn xem một số giải pháp dựa trên từng khổ thơ trước đó.
natural-language
thẻ. Thuật toán là như nhau ngay cả khi đầu vào là sáu chuỗi vô nghĩa.