โดยทั่วไปแล้วรูปหลายเหลี่ยมจะถูกสร้างขึ้นในลักษณะที่แต่ละภาษาสามารถละเว้นส่วนของรหัสที่มีอยู่สำหรับภาษาอื่น ๆ โดยห่อไว้ในตัวอักษรสตริงใช้ไวยากรณ์ความคิดเห็นหรือเทคนิคอื่น ๆ ที่คล้ายกัน
เป้าหมายของคุณคือเขียนโพลิกล็อตที่เอาต์พุตสำหรับแต่ละภาษาคือรหัสจากโพลิกล็อตที่สร้างเอาต์พุตนั้น โดยเฉพาะอย่างยิ่งการส่งออกจะต้องสร้างจากรหัส polyglot ด้วยการลบเท่านั้นและจะต้องเป็นควินในภาษาที่กำหนด
กฎระเบียบ
- อนุญาตให้ใช้quines ที่เหมาะสมเท่านั้น(ไม่อ่านซอร์สโค้ดไม่รับอินพุตเอาต์พุตต้องเป็น STDOUT หรือทางเลือกที่ใกล้เคียงที่สุดหาก STDOUT ไม่ใช่ตัวเลือกและโปรแกรมต้องประกอบด้วยมากกว่าตัวอักษรที่พิมพ์โดยปริยาย)
- เนื่องจากภาษาต่าง ๆ สามารถใช้การเข้ารหัสที่แตกต่างกันไบต์ดิบจึงเป็นสิ่งสำคัญ ตัวอย่างเช่นถ้าภาษา A ใช้ UTF-8 และภาษา B ใช้ CP437 รหัส (ฐานสิบหก)
C3 88 46 47
จะเป็นÈFG
ภาษา A และ├êFG
สำหรับภาษา B - เอาท์พุททั้งหมดจะต้องแตกต่างกัน (อีกครั้งเปรียบเทียบไบต์ดิบ) วิธีนี้จะช่วยลดความยุ่งยากในการพยายาม จำกัด ภาษารองลงมา - หากสองภาษาใช้ส่วนเดียวกันของรหัสเพื่อทำสิ่งเดียวกันคุณไม่สามารถอ้างสิทธิ์ทั้งสองได้
- หากคุณมีสองภาษา A และ B เช่นนั้น
XY
เป็นผลลัพธ์ที่ถูกต้องในทั้งสอง แต่YZ
ก็ใช้ได้ใน B คุณอาจเลือกXY
เป็นเอาต์พุตสำหรับ A และYZ
เป็นเอาต์พุตสำหรับ B ดังนั้นคุณสามารถอ้างสิทธิ์ทั้งสองในคะแนนของคุณ ( แต่คุณไม่สามารถอ้างสิทธิ์ได้XY
ทั้งสองภาษาเนื่องจากกฎข้างต้น)
- หากคุณมีสองภาษา A และ B เช่นนั้น
- ผลลัพธ์ทั้งหมดจะต้องสั้นที่สุด ตัวอย่างเช่นหากรหัสของคุณคือ
print('foo')#something
สำหรับ Python 3 (ไม่สนใจข้อเท็จจริงที่ว่าเอาต์พุตไม่ถูกต้อง) รหัสที่คุณจะต้องใช้ในการแสดงผลจะเป็นprint('foo')
และprint('foo')#
จะไม่ได้รับอนุญาต หากมีหลายสตริงที่มีความยาวเท่ากัน (น้อยที่สุด) ที่สร้างเอาต์พุตที่ถูกต้องคุณสามารถเลือกหนึ่งในสตริงเหล่านั้นได้ - ข้อมูลที่ส่งต้องเป็นรูปหลายภาษาอย่างน้อย 2 ภาษา
(number of programming languages with distinct outputs)**3/(total byte size of polyglot)
คะแนนของคุณจะได้รับโดย คะแนนสูงสุดชนะ ในกรณีที่การส่งสองครั้งบรรลุคะแนนเท่ากันการส่งที่ถึงคะแนนนั้นก่อนจะเป็นผู้ชนะ