এখানে কাজটি হ'ল একটি গলি .rle
বা প্লেইন টেক্সট ফাইল (আপনার পছন্দ) থেকে পড়া যাঁর ফাইলের নাম দেওয়া হয়েছে (এসটিডিআইএন বা কমান্ড লাইন আর্গুমেন্ট হিসাবে) এবং এটিতে এনকোডেড গ্রিডের সাধারণ প্যাটার্নগুলি সনাক্ত এবং গণনা করা।
বিকল্পভাবে, আপনি তার পরিবর্তে ফাইলের সামগ্রী সরাসরি STDIN এর মাধ্যমে সরবরাহ করতে পারেন।
আপনার প্রোগ্রামটি কমপক্ষে পনেরটি সাধারণ কড়া স্টিল লাইফ এবং পাঁচটি অতি সাধারণ দোলক , প্লাস গ্লাইডার সনাক্ত এবং আলাদা করতে সক্ষম হওয়া উচিত ।
গ্লাইডারের চারটি পর্যায় যেমন হওয়া উচিত, তেমনি এই দোলকগুলির সমস্ত ধাপগুলিও স্বীকৃত হওয়া উচিত।
এটি পৃথক লাইনে প্রতিটি প্যাটার্নের নাম এবং পরিমাণ সহ প্রতিটি প্যাটার্নের চূড়ান্ত গণনা সহ একটি তালিকা আউটপুট করা উচিত। আপনার প্রোগ্রামটি আউটপুট তালিকায় এই সমস্ত নিদর্শনগুলির মধ্যে অন্তর্ভুক্ত থাকতে পারে বা কেবলমাত্র অন্তত একটির সন্ধান পেয়েছিল।
যে নিদর্শনগুলি অন্য নিদর্শনগুলির অংশ হিসাবে গণনা করা হচ্ছে তা গণনা করা উচিত নয়। (উদাহরণস্বরূপ, বীকনের 8-সেল ফেজটিও দুটি ব্লক হিসাবে গণনা করা উচিত নয়, এবং একটি শিপ-টাইও দুটি জাহাজ হিসাবে গণনা করা উচিত নয়)
আপনি ধরে নিতে পারেন যে ইনপুটটি ইতিমধ্যে স্থিতিশীল হয়েছে এবং এতে কোনও নকশাগুলি নেই যা সংযোজনিত সেটে নেই। আপনি ধরেও নিতে পারেন ইনপুট গ্রিড একটি 1024x1024 বাক্সের মধ্যে ফিট হবে।
এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম প্রোগ্রামটি জয়ী।
আরএলই ফাইল ফর্ম্যাট বিবরণ
একটি আরএলই ফাইলটিতে একটি রান-দৈর্ঘ্যের এনকোডেড লাইফ গ্রিড থাকে। শুরু হওয়া সমস্ত লাইন #
মন্তব্য এবং এড়ানো উচিত।
প্রথম অ-খালি, নন-মন্তব্য লাইনটি ফর্মের 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
rle ফাইলের .cells
জন্য এবং প্লেইন টেক্সটের জন্য- অন্য এক্সটেনশনগুলি কীভাবে পড়তে হবে তা অপরিজ্ঞাত করা হয়] বা তাদের মধ্যে পার্থক্য করার জন্য একটি কমান্ড লাইন পতাকা ব্যবহার করা হয়) আপনি আপনার স্কোর থেকে 5% বিয়োগ করতে পারেন।
OOO.OO\n....OO