Tipik olarak, poligonlar, her dilin diğer diller için mevcut olan kod bölümlerini görmezden gelecek şekilde, dize değişmezlerine sarılarak, yorum sözdizimini veya benzer püf noktaları kullanarak görmezden gelebilecek şekilde oluşturulur.
Amacınız, her dilin çıktısının o çıktıyı üreten polyglot'taki kod olduğu bir polyglot yazmak. Spesifik olarak, çıktı sadece silme işlemiyle polyglot kodundan yapılmalı ve verilen dilde bir satır olmalıdır.
kurallar
- Yalnızca uygun sorgulara izin verilir (kaynak kodunu okumak, giriş yapmak, giriş yapmak, STDOUT bir seçenek değilse, çıkış STDOUT'a veya en yakın alternatif olmalıdır ve programlar yalnızca basılı olarak yazılmış sözcüklerden daha fazlasını içermelidir).
- Farklı diller farklı kodlamalar kullanabildiğinden, ham bayt burada önemli olan şeydir. (Heks) kodu Örneğin, dil bir UTF-8 kullanır ve B dili cp437 kullanıyorsa
C3 88 46 47
olacaktırÈFG
dil A veÈFG
dil B. - Tüm çıktılar farklı olmalıdır (yine ham baytları karşılaştırarak). Bu, küçük dil sürümlerini kısıtlamaya çalışmakla ilgili komplikasyonlardan kaçınır - iki dil aynı şeyi yapmak için kodun aynı bölümünü kullanıyorsa, ikisini de talep edemezsiniz.
- Eğer iki dilde A ve B varsa
XY
, her ikisinde de geçerli bir çıktı, ancakYZ
B'de de geçerliyse,XY
AYZ
için çıktı olarak ve B için çıktı olarak seçebilirsiniz , böylece her ikisini de puanınızdan talep edebilirsiniz ( ancakXY
yukarıdaki kural nedeniyle her iki dilde de hak iddia edemezsiniz ).
- Eğer iki dilde A ve B varsa
- Tüm çıkışlar mümkün olduğu kadar kısa olmalıdır. Örneğin, kodunuz
print('foo')#something
Python 3 için ise (çıktının doğru olmadığı gerçeğini göz ardı ederek), çıkmanız gereken kod olacaktırprint('foo')
veprint('foo')#
buna izin verilmezdi. Doğru çıktı üreten eşit (en az) uzunlukta birden çok dize varsa, bunlardan herhangi birini seçebilirsiniz. - Gönderiler en az 2 dilde çokgen olmalıdır.
- Puanınız tarafından verilecek
(number of programming languages with distinct outputs)**3/(total byte size of polyglot)
. En yüksek puan kazanır. İki gönderimin aynı puana ulaşması durumunda, ilk önce o puana ulaşan gönderim kazanacaktır.