Bu soru, "Godel, Escher, Bach" kitabının kapağından esinlenmiştir:
Buradaki zorluk, verilen üç harfin üç taraftan okunabilecek bir 3D heykel üretip üretemeyeceğini söyleyen bir işlev yazmaktır.
Bu alıştırma için kullanabileceğiniz tek harf 26 5px * 5px bitmap'tir:
Veya ikili (A'dan Z'ye):
01110 11110 01111 11110 11111 11111 11111 10001 11111 11111 10001 10000 10001 10001 01110 11110 01110 11110 01111 11111 10001 10001 10001 10001 10001 11111
10001 10001 10000 10001 10000 10000 10000 10001 00100 00100 10010 10000 11011 11001 10001 10001 10001 10001 10000 00100 10001 10001 10001 01010 01010 00010
10001 11110 10000 10001 11100 11110 10011 11111 00100 00100 11100 10000 10101 10101 10001 10001 10001 11111 01110 00100 10001 01010 10001 00100 00100 00100
11111 10001 10000 10001 10000 10000 10001 10001 00100 10100 10010 10000 10001 10011 10001 11110 10011 10010 00001 00100 10001 01010 10101 01010 00100 01000
10001 11110 01111 11110 11111 10000 11111 10001 11111 11100 10001 11111 10001 10001 01110 10000 01111 10001 11110 00100 01110 00100 01010 10001 00100 11111
Heykel aşağıdaki sırayla üç harften oluşur:
- üstüne bir harf
- soldaki iki harf
- sağdaki üç harf
- birinci harfin alt kısmı ikinci harfin üst kısmına bağlanır.
Örnek:
İşleviniz, üç büyük harf (üç harf veya üç harf bir harf) giriş olarak kabul edebilir ve karşılık gelen heykelin var olup olmadığını söyleyen bir boolean (doğru / yanlış veya 0/1) çıktısı alabilirsiniz.
Örnek:
f("B","E","G") // true (because if you "sculpt out" B on top + E on the left + G on the right, and watch the three sides of the sculpture, you'll see exactly B, E and G as they are defined)
f("B","G","E") // false (because if you "sculpt out" B on top + G on the left + E on the right, and watch the three sides of the sculpture, you won't see a complete G and a complete E. Their shapes bother each other)
Not: Heykel "uçan pikseller" (hiçbir şeye bağlı küpler veya küpler grubu) içermesine rağmen doğru olabilirsiniz.
Standart boşluklar uygulanır.
Daha doğrusu, üç harften başka harici girdi kullanamazsınız ve 17576 olası cevabı kaynak kodunuzda sabitleyemezsiniz.
Herhangi bir dilde karakterlerde en kısa cevap kazanır!
İyi eğlenceler :)