नोट : एंडर्स कासेगॉर ने मुझे चेतावनी दी है कि यह एक और पिछले प्रश्न का एक डुप्लिकेट हो सकता है । ऐसा लगता है, और मुझे खेद है कि मुझे यह पोस्ट करने से पहले वह सवाल नहीं मिला। बहरहाल, उस प्रश्न को केवल एक उत्तर मिला और यह एक सरल है, बस अगर आप सभी इस बार कोशिश करना चाहते हैं। अगर यह प्रश्न समाप्त हो जाता है तो मैं समझूंगा कि इसे डुप्लिकेट के रूप में चिह्नित किया जा रहा है।
चुनौती
इस तरह एक इनपुट दिया:
8g 8Df 4cs 2C 1A
सबसे छोटा प्रोग्राम / फ़ंक्शन लिखें जो इस तरह से आउटपुट उत्पन्न करता है:
/\ -o-
| |
---|-|---------------------------------------------------|-|
|/ | |
---/|--------|\----b-*-----------------------------------|-|
/ | | | | o | |
-|--|--------|------|-----------------|------------------|-|
| (| \ | | | | | |
-|--|--)----*-------|/---------|------|------------------|-|
\ | / | | | |
-----|-------------------------|-------------------------|-|
| |
*_/ #-*-
नियम
आउटपुट में एक जी-क्लेफ़ के ड्राइंग के साथ शुरू होने वाले पांच-पंक्ति के कर्मचारियों को शामिल करना चाहिए जैसा कि ऊपर दिखाया गया है, कर्मचारियों के बाईं ओर संरेखित और कर्मचारियों की शुरुआत के बाद एक एकल कॉलम छोड़ना।
/\
| |
---|-|--
|/
---/|---
/ |
-|--|---
| (| \
-|--|--)
\ | /
-----|--
|
*_/
^
Single column
नोट अपने प्रकार के आधार पर *
या किसी o
वर्ण से शुरू होना चाहिए ।
हर *
या o
वर्ण के अलग-अलग आठ स्तंभ होने चाहिए :
/\ -o-
| |
---|-|---------------------------------------------------|-|
|/ | |
---/|--------|\----b-*-----------------------------------|-|
/ | | | | o | |
-|--|--------|------|-----------------|------------------|-|
| (| \ | | | | | |
-|--|--)----*-------|/---------|------|------------------|-|
\ | / | | | |
-----|-------------------------|-------------------------|-|
| |
*_/ #-*-
↑ ↑ ↑ ↑ ↑ ↑ ↑
8 columns of separation
उदाहरण में दिखाए अनुसार कर्मचारियों को दाएं से संरेखित टर्मिनेटर के साथ समाप्त होना चाहिए। टर्मिनेटर की बाईं पट्टी को अंतिम नोट से 8 कॉलम अलग किया जाना चाहिए।
इनपुट एक एकल स्ट्रिंग होगी जिसमें नोट्स होंगे (कम से कम एक, कोई खाली इनपुट नहीं), हर एक को व्हाट्सएप द्वारा अलग किया जाएगा (आप विचार कर सकते हैं कि हर नोट एक उचित होगा, इसलिए त्रुटियों की जांच करने की आवश्यकता नहीं है)। आप इनपुट को स्ट्रिंग्स के एक सरणी के रूप में भी ले सकते हैं, सरणी में प्रति तत्व एक नोट के साथ। प्रत्येक नोट के लिए, पहली चरित्र टिप्पणी लंबाई (के हर से हो जाएगा 1
एक के लिए पूरे नोट / semibreve , साथ शुरू होता है o
, 2
एक के लिए आधा नोट / राग , के साथ शुरू होता o
; 4
एक के लिए तिमाही नोट / crotchet , के साथ शुरू होता *
है, और 8
एक के लिए आठवें नोट / योग्यता , के साथ शुरू होता है*
)। दूसरा चरित्र टिप्पणी (तालिका देखें) हो जाएगा, और तीसरे, वैकल्पिक चरित्र होगा f
या F
फ्लैट नोट्स के लिए और s
या S
तेज नोट्स के लिए।
--- A (ledger line)
G
-------- F
E
-------- D
C
-------- b
a
-------- g
f
-------- e
d
--- c (ledger line)
जाहिर है, इनपुट को नोटों के मामले का सम्मान करना चाहिए, लेकिन आप f
और s
संशोधक के मामले को चुन सकते हैं ।
नोट्स c
और A
दो -
(लेज़र लाइन) जोड़ना होगा , प्रत्येक पक्ष में एक, क्योंकि उन्हें कर्मचारियों का विस्तार करना होगा। नोट्स d
और G
कर्मचारियों से बाहर हैं, लेकिन लेज़र लाइनों की आवश्यकता नहीं है।
नोट के बाईं ओर समतल या तीखे नोटों को जोड़ना b
या जोड़ना होगा #
।
उपजी (यदि कोई हो) 4 ऊर्ध्वाधर सलाखों के साथ खींचा जाना चाहिए। b
ऊपर और नीचे के नोटों को नोट के बाईं ओर नीचे की ओर तने को खींचना चाहिए। a
नीचे और नीचे से नोट के ऊपर और नीचे दाईं ओर के नोटों को खींचा जाना चाहिए। क्वैवर्स को हमेशा सही और बिल्कुल दिखाए गए झंडे को जोड़ना चाहिए, और अगर उनमें से कई एक पंक्ति में हैं, तो उन्हें बीम करने की आवश्यकता नहीं है।
--------------------------
-----|\----b-*------------
| | |
-----|------|-------------
| | |
----*-------|/---------|--
↑↑ |
----||------↑↑---------|--
|| || |
|| || #-*-
|\ |\ ↑↑
| Stem | Note | Stem
Note Stem Note
हमेशा की तरह, आपका प्रोग्राम / फ़ंक्शन आउटपुट को सीधे आरेखित कर सकता है या एक स्ट्रिंग, ऐरे ऑफ स्ट्रिंग्स, मैट्रिक्स के अक्षर या किसी अन्य उचित प्रारूप को लौटा सकता है।
उपयोगी कड़ियाँ
यह कोड-गोल्फ है , इसलिए प्रत्येक भाषा की जीत के लिए सबसे छोटा कार्यक्रम / कार्य हो सकता है!
बोनस: प्रसिद्ध धुनों के साथ उदाहरण लिखने की कोशिश करें और हर किसी को यह अनुमान लगाने की कोशिश करें कि यह कौन सा माधुर्य है!