দাবি পরিত্যাগী
যদিও আমি জানি যে এখানে এই সম্পর্কিত সম্পর্কিত প্রশ্ন রয়েছে , আমার প্রশ্ন দুটি গ্যারেজ দরজা ব্যবহার করেছে, একটি এলোমেলো উপাদান, এবং আমি এটিকে বাস্তব জীবনের ঘটনাগুলির উপর ভিত্তি করে দেখছি, আমার পুত্রটি দুর্ঘটনাক্রমে বলা গ্যারেজের একটি দরজাটি নীচে নামিয়ে দেখলাম যখন আমি বাইরে চলে যাচ্ছিলাম seeing গত সপ্তাহে গ্যারেজ ... সৃজনশীল রস বয়ে যাওয়ার জন্য মাথায় আঘাতের মতো কিছুই নেই! ;)
পটভূমি
লুকাস (আমার 15 মাস বয়সী ছেলে) গ্যারেজ রিমোটের সাথে খেলতে পছন্দ করে। এই রিমোটে দুটি বোতাম রয়েছে, একটি বাম গ্যারেজের দরজার জন্য এবং একটি ডান গ্যারেজের দরজার জন্য। উভয় বোতাম একই পদ্ধতিতে কাজ করে; দরজাটি খোলার জন্য পেতে একবার টিপুন, থামাতে আবার চাপুন, বন্ধ করতে আবার টিপুন, আবার থামতে আবার চাপুন, ইত্যাদি।
লুকাস এই দূরবর্তীটিকে পছন্দ করে, তিনি এলোমেলোভাবে একটি বাটন বা উভয়ই বা একটিও টিপুন। যদি উভয়ই টিপে থাকে তবে কোনও সংকেত প্রেরণ করা হয় না, তবে একটি বোতামের একটি প্রেস একটি সংকেত প্রেরণ করবে।
সুতরাং, কোড-গল্ফ চ্যালেঞ্জ দুটি ভাগে বিভক্ত:
প্রথম অংশ
এক মিনিটেরও বেশি সময় ধরে লুকাসের এলোমেলো বোতাম টিপতে প্রতিনিধিত্ব করে একটি 60 টি অক্ষরের দীর্ঘ স্ট্রিং তৈরি করুন। এই ক্ষেত্রে "এলোমেলো" এর অর্থ "প্রতিটি টিকে প্রতিটি ইনপুটের সমান সুযোগের সাথে"। চরিত্রগুলি নিম্নরূপ:
- 0: লুকাশ হয় হয় কোনও বোতাম টিপেনি, বা উভয় বোতাম টিপেছে। যেভাবেই হোক, কোনও সংকেত প্রেরণ করা হয়নি।
- 1: বাম গ্যারেজের দরজার জন্য বোতামটি লুকাস দ্বারা চাপানো হয়েছে
- 2: ডান গ্যারেজের দরজার জন্য বোতামটি লুকাস দ্বারা চাপানো হয়েছে
অংশ দুই
পার্ট ওনে উত্পন্ন স্ট্রিংটি ব্যবহার করে, এই দরজাগুলি খোলার, থামাতে এবং বন্ধ করার জন্য ট্রিগার হিসাবে নম্বরগুলি ব্যবহার করে দ্বি-গাড়ী গ্যারেজটি খোলার এবং বন্ধ করার অনুকরণ করুন।
আমার গ্যারেজের দরজাগুলি বেশ দ্রুত (কেন এটি সম্পর্কে উপরোক্ত অস্বীকৃতি দেখুন)। আপনি একবার বোতামটি টিপলে পুরো খোলা বা বন্ধ হতে চার সেকেন্ড সময় লাগে।
সুতরাং, যদি বন্ধ থাকে:
- 0 সেকেন্ড: 0% খোলা (বন্ধ); বোতাম টিপলে, দরজা খোলার শুরু হয়
- 1 সেকেন্ড: 25% খোলা
- 2 সেকেন্ড: 50% খোলা
- 3 সেকেন্ড: 75% খোলা
- 4 সেকেন্ড: 100% খোলা, দরজা বন্ধ
এবং তাই, যদি খোলা থাকে:
- 0 সেকেন্ড: 100% খোলা; বোতাম টিপে গেলে দরজা বন্ধ হয়ে যায়
- 1 সেকেন্ড: 75% খোলা
- 2 সেকেন্ড: 50% খোলা
- 3 সেকেন্ড: 25% খোলা
- 4 সেকেন্ড: 0% খোলা (বন্ধ), দরজা বন্ধ
যদি কোনও নির্দিষ্ট দরজা চলমান থাকে তবে সেই একই দরজার একটি সংকেত এটি বন্ধ করে দেবে। পরবর্তী সিগন্যালের পরে সেই একই দরজায় প্রেরণ করা হবে এটি বিপরীত দিকে চলন্ত প্রেরণ করবে। যদি কোনও দরজা যখন আগে চলমান থাকে এবং যদি "স্টপ" সংকেতটি পাওয়া যায় তখন পুরোপুরি খোলা বা পুরোপুরি বন্ধ থাকে তবে দরজাটি পুরোপুরি উন্মুক্ত বা সম্পূর্ণ-বন্ধ অবস্থায় "বন্ধ" হিসাবে নিবন্ধিত হবে, প্রস্তুত যখন এটি একটি নতুন সিগন্যাল পায় তখন বিপরীত দিকে যান।
এই সিমুলেশন সহ, উভয় গ্যারেজ দরজা প্রথমে বন্ধ অবস্থায় থাকবে। সুতরাং, আসুন 10 কমান্ডের দ্বিতীয় সেকেন্ডের তালিকাটি দেখুন এবং দেখুন যে লুকাস যদি সেগুলি রিমোটে সঞ্চালন করে থাকে:
2120221120
2: (L:0% stopped, R:0% opening)
1: (L:0% opening, R:25% opening)
2: (L:25% opening, R:50% stopped)
0: (L:50% opening, R:50% stopped)
2: (L:75% opening, R:50% closing)
2: (L:100% stopped, R:25% stopped)
1: (L:100% closing, R:25% stopped)
1: (L:75% stopped, R:25% stopped)
2: (L:75% stopped, R:25% opening)
0: (L:75% stopped, R:50% opening)
আউটপুট
আউটপুটটির প্রথম অংশটির জন্য পার্ট ওয়ান থেকে উত্পাদিত র্যান্ডম "0", "1" এবং "2" অক্ষরের 60 টি অক্ষরের দীর্ঘ স্ট্রিংয়ের প্রদর্শন প্রয়োজন। যেমন।
212022112021202211202120221120212022112021202211202120221120
এই স্ট্রিংয়ের নীচে, গ্যারেজ দরজা প্রতিটি স্বতন্ত্র চরিত্রের সাথে কীভাবে আচরণ করবে (দ্বিতীয় স্তরের দ্বারা দ্বিতীয় স্থানে) তার উপরে উল্লিখিত বিধি অনুসারে এই "সংকেতগুলি" প্রক্রিয়াকরণ করা হচ্ছে। প্রাথমিক ডিসপ্লে স্ট্রিংয়ের নীচে ফলস্বরূপ আপনার 60 লাইনের সমাপ্তি হওয়া উচিত।
এই প্রক্রিয়াজাত প্রতিটি রেখার আকারে হবে:
N: (L:X% XXXXXXX, R:Y% YYYYYYY)যেখানে:
- এন হল সংশ্লিষ্ট র্যান্ডম স্ট্রিংয়ের নবম চরিত্র, যা 0, 1, বা 2 আকারে হবে।
- এক্স% হ'ল বাম দরজার উন্মুক্ততার শতাংশ (কোনও শূন্য প্যাডিং নেই)
- XXXXXXX বাম দরজার স্থিতি। যদি দরজাটি চলমান না থাকে (অর্থাত্ খোলার বা বন্ধ না করা) অবস্থাটি "থামানো" প্রয়োগ করা হয়, যার অর্থ এটি গতিতে থামানো হয়েছে (কেবলমাত্র 25%, 50% বা 75% এ সম্ভব) বা সম্পূর্ণ খোলা থাকলে বন্ধ করা হয়েছে (100% ) বা সম্পূর্ণ বন্ধ (0%)। অন্যথায়, দরজা হয় হয় "খোলার" বা "সমাপ্তি"।
- Y% হ'ল ডান দরজার উন্মুক্ততার শতাংশ (কোনও শূন্য প্যাডিং নেই)
- YYYYYYY ডান দরজার স্থিতি। যদি দরজাটি চলমান না থাকে (অর্থাত্ খোলার বা বন্ধ না করা) অবস্থাটি "থামানো" প্রয়োগ করা হয়, যার অর্থ এটি গতিতে থামানো হয়েছে (কেবলমাত্র 25%, 50% বা 75% এ সম্ভব) বা সম্পূর্ণ খোলা থাকলে বন্ধ করা হয়েছে (100% ) বা সম্পূর্ণ বন্ধ (0%)। অন্যথায়, দরজা হয় হয় "খোলার" বা "সমাপ্তি"।
10 "সিগন্যাল" এবং 10 টি প্রক্রিয়াজাত লাইন ব্যবহার করে নীচে দেখানো উদাহরণ
2120221120
2: (L:0% stopped, R:0% opening)
1: (L:0% opening, R:25% opening)
2: (L:25% opening, R:50% stopped)
0: (L:50% opening, R:50% stopped)
2: (L:75% opening, R:50% closing)
2: (L:100% stopped, R:25% stopped)
1: (L:100% closing, R:25% stopped)
1: (L:75% stopped, R:25% stopped)
2: (L:75% stopped, R:25% opening)
0: (L:75% stopped, R:50% opening)
এটি কোড-গল্ফ, তাই সংক্ষিপ্ততম কোডটি পরিষ্কার বিজয়ী হবে। আমি "ওপেনিং", "থামানো" এবং "ক্লোজারিং" এর মত বাক্যাংশ ব্যবহার করে এটিকে কিছুটা সহজ করে দিয়েছি, যা এই সাতটি অক্ষর ... তাই আপনি নিজের কৌশলে কাজ করতে চাইতে পারেন।
ভাগ্য সুপ্রসন্ন হোক!
1আপনার উদাহরণের বাম দরজাটি 75% এ থামছে না কেন সর্বশেষ কমান্ড?