পটভূমি
এই চ্যালেঞ্জটি অ্যাপিলারদের সম্মানে , যিনি তাদের চ্যালেঞ্জের সাথে বেস্ট অফ পিপিসি ২০১ in-তে বিভাগের মতো দেখতে সহজ হিসাবে নট জিতলেন , আমার 4 নোটের সংগীত বাক্সটি কি সেই গানটি খেলতে পারে? অভিনন্দন!
তাদের "আমার সম্পর্কে" পৃষ্ঠায়, এই ব্যবহারকারীর গেম অফ লাইফ সেলুলার অটোমেটনের জন্য সত্যই ঝরঝরে সিমুলেটর রয়েছে । (সিরিয়াসলি, এটি পরীক্ষা করে দেখুন)) অন্যদিকে, এসপিলেরা শব্দটি "তীরচিহ্ন" এর জন্য স্প্যানিশ। এই তথ্যের আলোকে, এই চ্যালেঞ্জটি গেম অফ লাইফের তীরচিহ্নগুলি সম্পর্কে।
লাইফ তীরচিহ্নগুলির খেলা
জিএল-তে, আমরা একটি গ্লাইডার দ্বারা একটি তীর এবং ব্লকের অনুক্রমের দ্বারা একটি প্রাচীর উপস্থাপন করব । একটি একক গ্লাইডার উপরের দিক থেকে প্রাচীরের কাছে পৌঁছায় এবং প্রাচীরের একটি ফাঁক (অ্যারোস্লিট) দিয়ে উড়ে যাওয়ার চেষ্টা করে। আপনার কাজটি গ্লাইডারটি অ্যারোস্লিট দিয়ে প্রবেশ করেছে বা প্রাচীরের মধ্যে ক্র্যাশ করেছে কিনা তা পরীক্ষা করা।
ইনপুট
আপনার ইনপুটটি বিটগুলির একটি গ্রিড, যা কোনও জিএল কনফিগারেশন উপস্থাপন করে। আপনি এটিকে যে কোনও যুক্তিসঙ্গত বিন্যাসে নিতে পারেন (যে কোনও দুটি স্বতন্ত্র প্রিন্টযোগ্য এএসসিআইআই অক্ষরের একাধিক স্ট্রিং, স্ট্রিংগুলির তালিকা, 2D পূর্ণসংখ্যার অ্যারে, 2 বুলিয়ানের অ্যারে ইত্যাদি)। স্বচ্ছতার জন্য, আমি .#
নিম্নলিখিত অক্ষরের একাধিক স্ট্রিং ব্যবহার করব ।
ইনপুটটিতে বেশ কয়েকটি সম্পত্তি থাকার নিশ্চয়তা রয়েছে। প্রথমত, এর উচ্চতা কিছু N ≥ 6 এর জন্য 2N , এবং এর প্রস্থ কমপক্ষে 2N + 2 । ইনপুট সব হতে হবে , s শীর্ষ তিন সারি উপর কোথাও ছাড়া একটি গ্লাইডার, এবং দুই মধ্যম সারি উপর ব্লক একটি প্রাচীর নেই। গ্লাইডারটি দক্ষিণ-পশ্চিম বা দক্ষিণ-পূর্ব দিকে যাবে এবং এর অবস্থানটি এমন যে যদি দেয়ালগুলি সরিয়ে ফেলা হয় তবে নীচের প্রান্তে পৌঁছানোর আগে এটি কোনও পাশের প্রান্তের মধ্য দিয়ে যাবে না (তবে এটি গ্রিডের কোনও কোণে পৌঁছে যেতে পারে)। গ্লাইডারটি প্রথমে বাম এবং ডান প্রান্ত থেকে কমপক্ষে এক ধাপের এস দ্বারা আলাদা করা হয় । এটি যে কোনও পর্যায়ে হতে পারে।.
.
প্রাচীরটি ব্লকগুলি নিয়ে গঠিত যা .
একটি স্থানে ব্যতীত s এর একটি কলাম দ্বারা পৃথক করা হয়েছে , যেখানে সেগুলি কমপক্ষে দুটি কলাম দ্বারা আলাদা করা হবে .
। গ্লাইডারের মতো, বামে এবং ডানদিকের ব্লকগুলিও এক ধাপে প্রান্তগুলি থেকে পৃথক করা হয় .
। বাম প্রান্তে সর্বদা কমপক্ষে একটি ব্লক এবং ডান প্রান্তে একটি ব্লক থাকবে।
এখানে একটি বৈধ ইনপুট গ্রিডের উদাহরণ রয়েছে:
....#......................
..#.#......................
...##......................
...........................
...........................
...........................
.##.##............##.##.##.
.##.##............##.##.##.
...........................
...........................
...........................
...........................
...........................
...........................
আউটপুট
যেমনটি বলা হয়েছে, আপনার কাজটি গ্লাইডারটি প্রাচীরের মধ্যে ক্র্যাশ হয়েছে কিনা বা এটি দক্ষিণ প্রান্তের মধ্যে দিয়ে গেছে কিনা তা নির্ধারণ করা। এই চ্যালেঞ্জের উদ্দেশ্যে, যদি সিমুলেশনটিতে পরে যা ঘটে যায় নির্বিশেষে কনফিগারেশনে কোনও একক গ্লাইডার এবং ব্লকের প্রাচীর থাকে না তবে ক্রাশ ঘটে। নিম্নলিখিত চিত্রগুলি দক্ষিণ-পূর্ব গ্লাইডার দুটি স্বতন্ত্র পর্যায়ে ক্র্যাশ না করে যে ক্ষুদ্রতম ফাঁকাগুলি দিয়ে যেতে পারে তা দেখায় (দক্ষিণ-পশ্চিম গ্লাইডারগুলির শর্তটি প্রতিসাম্য)।
...#...........
.#.#...........
..##...........
...............
...............
##...........##
##...........##
...#...........
....#..........
..###..........
...............
...............
##...........##
##...........##
গ্লাইডারটি যদি দেয়ালের মধ্য দিয়ে উড়ে যায় তবে আপনি সত্যবাদী মান এবং অন্যথায় মিথ্যা মান আউটপুট করতে পারেন। উপরের উদাহরণের জন্য, সঠিক আউটপুটটি মিথ্যা, কারণ গ্লাইডারটি প্রাচীরের বাম অংশে ক্রাশ হবে।
এই চ্যালেঞ্জের উদ্দেশ্যে, আপনি ধরে নিতে পারেন যে আপনি যদি 2 * (উচ্চতা - 3) পদক্ষেপের জন্য ইনপুটটিতে জিওএল অনুকরণ করেন তবে গ্লাইডারটি প্রত্যাশিত অবস্থানে নীচের সারিতে এবং প্রাচীরটি অক্ষত থাকে, তবে আউটপুট সত্যই ।
বিধি এবং স্কোরিং
আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সর্বনিম্ন বাইট গণনা জিতেছে।
পরীক্ষার মামলা
আমি পরীক্ষাগুলির কেসগুলি একটি গিটহাবের সংগ্রহস্থলে সংগ্রহ করেছি , কারণ সেগুলি বেশ বড়। পৃথক ফাইলগুলির লিঙ্কগুলি এখানে: