यहां कार्य एक गॉली .rle
या प्लेनटेक्स्ट फ़ाइल (आपकी पसंद) से पढ़ना है जिसका फ़ाइल नाम एसटीडीआईएन (एक कमांड लाइन तर्क के रूप में) प्रदान किया गया है और ग्रिड एन्कोडेड में सामान्य पैटर्न की पहचान और गणना करें।
वैकल्पिक रूप से, आप इसके बजाय सीधे STDIN पर उपलब्ध कराई गई फ़ाइल की सामग्री का चयन कर सकते हैं।
आपका कार्यक्रम कम से कम पंद्रह सबसे आम सख्त अभी भी जीवन और पांच सबसे आम ऑसिलेटर्स , प्लस ग्लाइडर्स की पहचान और अंतर करने में सक्षम होना चाहिए ।
इन दोलक के सभी चरणों को मान्यता दी जानी चाहिए, जैसा कि ग्लाइडर के सभी चार चरणों में होना चाहिए।
इसे प्रत्येक पैटर्न की अंतिम गणना वाली सूची का उत्पादन करना चाहिए, जिसमें प्रत्येक पैटर्न का नाम और मात्रा एक अलग रेखा पर होती है। आपके कार्यक्रम में इन सभी पैटर्नों में से केवल एक ही सूची में शामिल हो सकता है या इनमें से कम से कम एक पाया गया था।
पैटर्न जो गिने जा रहे हैं अन्य पैटर्न का हिस्सा नहीं गिना जाना चाहिए। (उदाहरण के लिए, एक बीकन के 8-सेल चरण को भी दो ब्लॉकों के रूप में नहीं गिना जाना चाहिए, और एक जहाज-टाई को भी दो जहाजों के रूप में नहीं गिना जाना चाहिए)
आप यह मान सकते हैं कि इनपुट पहले ही स्थिर हो चुका है और इसमें कोई पैटर्न नहीं है, जो कि एनॉर्ममेंटेड सेट में नहीं है। आप यह भी मान सकते हैं कि इनपुट ग्रिड 1024x1024 बॉक्स के भीतर फिट होगा।
यह कोड-गोल्फ है , इसलिए सबसे छोटा कार्यक्रम जीतता है।
RLE फ़ाइल स्वरूप विवरण
RLE फ़ाइल में रन-लंबाई एन्कोडेड जीवन ग्रिड होता है। के साथ शुरू होने वाली सभी लाइनें #
टिप्पणी हैं और इसे अनदेखा किया जाना चाहिए।
पहली गैर-खाली, गैर-टिप्पणी लाइन फार्म की है x=<width>,y=<height>,rule=<rule>
। इस कार्य के प्रयोजनों के लिए, नियम हमेशा रहेगा B3/S23
। इसमें ऐसे स्थान हो सकते हैं जिन्हें इस लाइन को संसाधित करने से पहले छीन लिया जाना चाहिए (बेशक, इस लाइन को बिल्कुल भी संसाधित करना आवश्यक नहीं है)।
पहली के बाद गैर-टिप्पणी लाइनों को एक स्ट्रिंग के रूप में माना जाना चाहिए। यह केवल दशमलव अंक, वर्ण होने चाहिए $
, b
और o
, और पंक्ति विराम, और अंक के साथ समाप्त नहीं होंगे। रेखा विराम को अनदेखा किया जाना चाहिए, लेकिन आप मान सकते हैं कि पंक्ति विराम अंकों के तार को बाधित नहीं करेगा।
इसे एकल द्वारा समाप्त किया जा सकता है !
।
b
एक मृत कोशिका का o
प्रतिनिधित्व करता है, एक जीवित कोशिका का $
प्रतिनिधित्व करता है , और एक पंक्ति के अंत का प्रतिनिधित्व करता है। किसी भी दशमलव संख्या से संकेत मिलता है कि निम्न प्रतीक को कई बार दोहराने के रूप में माना जाना है।
प्लेनटेक्स्ट पैटर्न एन्कोडिंग
अन्य विकल्प यहां वर्णित एक अन्य सादे प्रारूप में पैटर्न को पढ़ना है। इस एन्कोडिंग में, बंद कोशिकाओं को हाइफ़न के साथ दर्शाया जाता है और कोशिकाओं पर अपरकेस ओस के साथ प्रतिनिधित्व किया जाता है, जिसमें नई पंक्तियों को अलग किया जाता है।
आप मान सकते हैं कि सभी गैर-टिप्पणी पंक्तियों को हाइफ़न के साथ समान लंबाई तक गद्देदार किया जाएगा।
के साथ शुरू होने वाली लाइनें !
टिप्पणी हैं और इसे अनदेखा किया जाना है।
कुछ परीक्षण मामले
RLE:
#This is a comment
x = 35, y = 16, rule = B3/S23
bo$2o$obo5$22bo$22bo$22bo2$18b3o3b3o2$22bo$22bo10b2o$22bo10b2o!
सादे पाठ:
!This is a comment
-O---------------------------------
OO---------------------------------
O-O--------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
----------------------O------------
----------------------O------------
----------------------O------------
-----------------------------------
------------------OOO---OOO--------
-----------------------------------
----------------------O------------
----------------------O----------OO
----------------------O----------OO
परिणाम:
Glider 1
Blinker 4
Block 1
RLE:
x = 27, y = 15, rule = B3/S23
5b2o$5b2o9$11bo$o9bobo$o9bobo$o10bo12b3o!
#Here's a comment at the end
सादे पाठ:
-----OO--------------------
-----OO--------------------
---------------------------
---------------------------
---------------------------
---------------------------
---------------------------
---------------------------
---------------------------
---------------------------
-----------O---------------
O---------O-O--------------
O---------O-O--------------
O----------O------------OOO
!Here's a comment at the end
परिणाम:
Block 1
Blinker 2
Beehive 1
RLE:
#You may have multiple comments
#As shown here
x = 13, y = 11, rule = B3/S23
2o$2o2$12bo$12bo$12bo$2b2o$2b2o4b2o$7bo2bo$7bobo$8bo!
सादे पाठ:
!You may have multiple comments
!As shown here
OO-----------
OO-----------
-------------
------------O
------------O
------------O
--OO---------
--OO----OO---
-------O--O--
-------O-O---
--------O----
परिणाम:
Block 2
Blinker 1
Loaf 1
RLE:
# Pentadecathlon
# Discovered by John Conway
# www.conwaylife.com/wiki/index.php?title=Pentadecathlon
x = 10, y = 3, rule = B3/S23
2bo4bo2b$2ob4ob2o$2bo4bo!
सादे पाठ:
! Pentadecathlon
! Discovered by John Conway
! www.conwaylife.com/wiki/index.php?title=Pentadecathlon
--O----O--
OO-OOOO-OO
--O----O--
परिणाम:
Pentadecathlon 1
बोनस
यदि आप दोनों इनपुट फॉर्मेट्स (फाइल एक्सटेंशन का उपयोग कर रहे हैं ( .rle
रीले फाइलों के लिए और प्लेनटेक्स्ट के लिए- तो .cells
अन्य एक्सटेंशन को कैसे पढ़ा जाए) अपरिभाषित है] या उनके बीच अंतर करने के लिए एक कमांड लाइन फ्लैग) आप अपने स्कोर से 5% घटा सकते हैं।
OOO.OO\n....OO