यह मेरे दोस्त का जन्मदिन जल्द ही है और क्योंकि वह एक प्रोग्रामर और ASCII कला प्रेमी है, मैंने सोचा कि मैं उसे कुछ ASCII केक बनाऊंगा!
अफसोस की बात है कि मैं उसकी वर्तमान आयु को भूलता जा रहा हूं, इसलिए मैं अपने ASCII ओवन के लिए एक कार्यक्रम रखना चाहूंगा, जो कि एक निर्दिष्ट संख्या में मोमबत्तियों के साथ एक केक बनाता है, इसलिए अगर मुझे उसके साथ गलत लगता है, तो मुझे इसे स्वयं करने की आवश्यकता नहीं है उम्र।
ASCII ओवन में केवल सीमित मेमोरी और स्टोरेज क्षमता होती है, इसलिए इसे संभव सबसे कम बाइट्स का उपयोग करना चाहिए ।
आपका कार्य:
एक प्रोग्राम लिखें जो कंसोल के लिए एक जन्मदिन का केक आउटपुट करता है, जिसमें इनपुट के रूप में कई मोमबत्तियां होती हैं।
केक की आवश्यकताएं हैं:
- इसमें एक सीमा होती है, जो क्षैतिज
-और ऊर्ध्वाधर|रेखाओं और वर्टिकल से बनी होती है+। - कम से कम 5 अक्षर चौड़े (केक बॉर्डर सहित
|) - कम से कम 5 अक्षर ऊंचे (केक बॉर्डर सहित
-) केक सीमा और प्रत्येक मोमबत्ती-बेस (लौ नहीं) के बीच प्रत्येक तरफ एक व्हाट्सएप चरित्र होना चाहिए , सिवाय इसके कि उस स्थान पर एक लौ हो। एक लौ या मोमबत्ती-बेस केक सीमाओं को ओवरलैप करने में सक्षम नहीं होना चाहिए।- केक की अधिकतम चौड़ाई 9 वर्ण है, इसलिए प्रति पंक्ति अधिकतम 5 मोमबत्तियां हैं।
- चूंकि हम नहीं चाहते कि हमारा केक 2-आयामी हो, इसलिए इसे कुछ मात्रा देने के लिए, अतिरिक्त 2 पंक्तियों का होना आवश्यक है। तल पर एक और बॉर्डर जोड़ें और उनके ऊपर वाले छोरों को कनेक्ट करें, फिर से ऊपर (
-,|और+) से ASCII वर्णों का उपयोग करते हुए ।
मोमबत्ती की आवश्यकताएं हैं:
- बेस के ऊपर स्टैक्ड होने के साथ बेस
|और फ्लेम*से मिलकर बनता है। - तिरछे को छोड़कर मोमबत्तियाँ सीधे प्रत्येक अभिभावक के पास नहीं हो सकती हैं।
- मोमबत्तियों को बाएं से दाएं, फिर ऊपर से नीचे, 5 से अधिकतम एक पंक्ति में रखा गया है।
(ध्यान दें: यदि पिछली पंक्ति में 5 मोमबत्तियाँ थीं, तो अगली पंक्ति में संभवतः 5 असवेल नहीं हो सकते हैं, तब से वे आसन्न होंगे।)
अतिरिक्त नोट्स:
- केक की चौड़ाई पहली पंक्ति में मोमबत्तियों की संख्या पर निर्भर करती है , लेकिन इसमें न्यूनतम 5 वर्ण और अधिकतम 9 वर्ण होने चाहिए।
- मोमबत्तियाँ शीर्ष-सबसे पंक्ति में शुरू होकर भरी जाती हैं, बाएँ से दाएँ जाती हैं। एक बार एक पंक्ति पूरी होने पर अगली पंक्ति पहले वाले के नीचे शुरू होनी चाहिए।
इनपुट:
आप (उचित) प्रारूप में एक नंबर स्वीकार कर सकते हैं।
इस चुनौती के लिए आप मान सकते हैं संख्या 0 और 2 के बीच है कि 31 (0 को छोड़कर), भले ही मैं कोई है जो इस वर्ष है स्वीकार करते हैं नहीं है।
आउटपुट:
आप या तो एक स्ट्रिंग लौटा सकते हैं या सीधे परिणामी केक को आउटपुट कंसोल में लिख सकते हैं।
नियम:
- मानक खामियों को मना किया जाता है।
- यह कोड-गोल्फ है , बाइट्स में किसी भी भाषा में सबसे छोटा कोड है, जीतता है।
उदाहरण:
इनपुट: 8
+-----------+
| * * * * * |
| |*|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
इनपुट: 2
+-----+
| * * |
| | | |
| |
+-----+
| |
+-----+
इनपुट: 12
+-----------+
| * * * * * |
| |*|*|*|*| |
| *|*|*| | |
| | | | |
| |
+-----------+
| |
+-----------+
सौभाग्य!