লাইফ-এর মতো সেলুলার অটোমেটন হ'ল সেলুলার অটোমেটন যা কনওয়ের গেম অফ লাইফের অনুরূপ, এতে তারা একটি (তাত্ত্বিকভাবে) অসীম বৃহত বর্গক্ষেত্র গ্রিডে কাজ করে, যেখানে প্রতিটি কোষের ঠিক 8 টি প্রতিবেশী থাকে এবং 2 টি রাজ্যের মধ্যে একটি, যথা জীবিত এবং মৃত ।
তবে, এই লাইকের মতো সংস্করণগুলি এক গুরুত্বপূর্ণ উপায়ে পৃথক: প্রদত্ত ঘরের জীবিত হয়ে উঠার নিয়ম এবং পরবর্তী প্রজন্মের কাছে বেঁচে থাকার জন্য প্রদত্ত একটি ঘরের নিয়ম।
উদাহরণস্বরূপ, ক্লাসিক গেম অফ লাইফ নিয়মটি ব্যবহার করে B3/S23
যার অর্থ একটি নতুন জন্মের জন্য 3 টি জীবন্ত কোষ লাগে এবং বেঁচে থাকার জন্য 2 বা 3 জীবিত প্রতিবেশী হয়। এই চ্যালেঞ্জের জন্য, আমরা ধরে নেব যে প্রতিবেশীরা নিজেকে অন্তর্ভুক্ত করে না, তাই প্রতিটি ঘরে যথাযথ 8 প্রতিবেশী থাকে।
আপনার কাজটি একটি শুরুর কনফিগারেশন, একটি জন্ম নিয়ম, একটি বেঁচে থাকার নিয়ম এবং ইতিবাচক পূর্ণসংখ্যার (প্রজন্মের সংখ্যা পরিচালিত হওয়া) দেওয়া সম্ভব, সংক্ষিপ্ততম কোডটিতে প্রদত্ত প্রজন্মের সংখ্যার জন্য এই নিয়মগুলি ব্যবহার করে লাইফ-এর মতো অটোমেটনের অনুকরণ করুন ulate । প্রারম্ভিক কনফিগারেশনটি বর্গ ম্যাট্রিক্স / 2-মাত্রিক অ্যারে বা মাল্টলাইন স্ট্রিং হবে, আপনি চয়ন করতে পারেন। অন্যদের যেকোন যুক্তিসঙ্গত ফর্ম্যাট এবং পদ্ধতিতে দেওয়া যেতে পারে।
উদাহরণস্বরূপ, জন্মের নিয়ম যদি 12345678
(যে কোনও জীবিত প্রতিবেশী) হয় তবে বেঁচে থাকার নিয়মটি ছিল 2357
এবং প্রারম্ভিক কনফিগারেশন ছিল
0 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0
পরবর্তী দুটি প্রজন্ম হবে
Generation 1: Generation 2:
0 0 0 0 0 1 1 1 1 1
0 1 1 1 0 1 1 0 1 1
0 1 0 1 0 1 0 1 0 1
0 1 1 1 0 1 1 0 1 1
0 0 0 0 0 1 1 1 1 1
প্রদত্ত প্রজন্মের সংখ্যা 10 হলে আউটপুটটি কিছুটা লাইন বরাবর হবে
0 1 1 1 0
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
0 1 1 1 0
ইনপুট ম্যাট্রিক্সের প্রদত্ত সীমার বাইরে ঘটে যাওয়া পরিবর্তনগুলি আপনাকে হ্যান্ডেল করতে হবে না, তবে ম্যাট্রিক্সের বাইরের সমস্ত কোষ মরা শুরু করে। অতএব, ইনপুট ম্যাট্রিক্স যে কোনও আকারের হতে পারে, আপনার ভাষা যে সর্বাধিক মান সমর্থন করতে পারে to আপনাকে প্রজন্মের মধ্যে বোর্ড আউটপুট দিতে হবে না।
এটি একটি কোড-গল্ফ তাই সংক্ষিপ্ততম কোডটি জয়ী।
পরীক্ষার মামলা
এগুলি B/S
ব্যবহৃত বিধি নির্দেশ করতে স্বরলিপি ব্যবহার করে
B2/S2
, generations = 100
কনফিগারেশন:
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
আউটপুট:
0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 0
1 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
B1357/S2468
, generations = 12
কনফিগারেশন:
1 0 1 0 1 0
0 1 1 0 1 0
1 0 0 0 0 0
0 0 0 0 0 1
1 1 1 1 1 0
0 1 1 0 0 1
আউটপুট:
0 1 0 0 0 0
0 1 1 1 1 0
0 1 0 1 1 0
1 1 1 0 0 0
0 0 1 1 1 0
0 1 1 0 0 0
আপনার যদি আরও পরীক্ষার কেস উত্পন্ন করার দরকার হয় তবে আপনি এই দুর্দান্ত সিমুলেটরটি ব্যবহার করতে পারেন । বোর্ডের আকার সীমাবদ্ধ করার বিষয়টি নিশ্চিত করুন