Bu zorluğa, son zamanlarda kızımla birlikte keyif aldığım Fiona Watt ve Rachel Wells'in bir dizi genç çocuk kitabı ilham verdi.
Her kitapta bir fare (resimli fakat metnin bir parçası değil), aynı türden 5 şeyden oluşan bir dizinin kendi işi olmadığından şikayet eder. Daha sonra, nesnenin bazı bileşenlerinin beklediği özelliğe sahip olmadığını bildirerek bunu yedekler.
Altıncı soruda, fare bir şey bulur ve beklenen özelliğe sahip olduğu için memnun olur.
İşte tipik bir örnek metni:
That's not my bunny, its tail is too fluffy.
That's not my bunny, its paws are too rough.
That's not my bunny, its tail is too woolly.
That's not my bunny, its eyes are too shiny.
That's not my bunny, its nose is too wrinkled.
That's my bunny! Its ears are so soft.
Şimdi, çoğu programlama halkının bunun bazı metinler üretmek için çok algoritmik bir yöntem olduğunu anlayacaktı. Çok açık bir süreç olduğu için bunu bir kod yazarak çoğaltabilmeliyiz.
Üç kelime koleksiyonu ile başlayalım:
things = ["dinosaur", "lamb", "princess", "reindeer", "train"]
parts = ["back", "bells", "body", "bows", "crown", "dress", "ears",
"engine", "fan", "flippers", "funnel", "hooves", "horns", "neck",
"nose", "roof", "sash", "side", "spines", "spots", "tail", "teeth",
"tiara", "wheels", "windows"]
properties = ["bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly"]
- İlk olarak, ne tür bir şey tarif edeceğimize karar veriyoruz.
- Sonra 5 kez, "Bu benim [şeyim değil, [kısmı] da [mülkiyet]] satırını üreteceğiz.
- Sonunda, "Bu benim [şeyim!" [Onun] kısmı [mülkiyet]!
Meydan okuma
- "Bu benim değil ..." hikayesinin metnini oluşturun.
- Aynı metni tutarlı bir şekilde üretmemelidir.
- Bu kod golf, bu yüzden bayt az sayıda bunu yapmaya çalışın.
- Lütfen dilinizi kullanın.
- Beyaz boşluk önemli değildir, ancak çizgiler arasında yeni satır karakteri olmalıdır.
- Kaynak kelime listeleri cevabınızın bir parçası değildir (TIO'da başlığa eklenebilir).
- Kaynak sözcük listelerini yeniden adlandırabilirsiniz.
- Çıkış bir nesneye veya bir nesneye üretilen metne gönderilebilir.
- Lütfen çevrimiçi bir tercümanın bağlantısını ekleyin.
- Çoğulları görmezden gelin, "boynuzları iyi".
- Mantıklı olması gerekmez. Prensesinizin hunisi çok kabarıksa, söyleyin.
Örnek çıktı:
That's not my train, its engine is too rusty.
That's not my train, its hooves is too thick.
That's not my train, its sash is too fuzzy.
That's not my train, its tail is too velvety.
That's not my train, its horns is too glittery.
That's my train! Its hooves is so hairy.
Mutlu golf!