टेलिगिफ: उलटा अंजीर


20

figletउपयोगिता है कि सादा पाठ को बैनर और इस तरह उपयोग के लिए एससी-कला प्रतिनिधित्व में परिवर्तित करती है। उदाहरण के लिए:

$ figlet "CODE GOLF"
  ____ ___  ____  _____    ____  ___  _     _____ 
 / ___/ _ \|  _ \| ____|  / ___|/ _ \| |   |  ___|
| |  | | | | | | |  _|   | |  _| | | | |   | |_   
| |__| |_| | |_| | |___  | |_| | |_| | |___|  _|  
 \____\___/|____/|_____|  \____|\___/|_____|_|    

$

एक प्रोग्राम या फ़ंक्शन लिखिए जो एएससीआई-आर्ट आउटपुट से लेता है figletऔर इसे अपने मूल सादे पाठ पर लौटाता है।

यह आपको स्थापित करने में मददगार हो सकता है figlet। मेरे पास २.२.५ संस्करण है जो कि आपको sudo apt-get install figlet१४.०४ पर मिलता है । इस अंजीर में वास्तव में कई "फोंट" हैं। इस संदर्भ के प्रयोजनों के लिए, हम केवल डिफ़ॉल्ट standardफ़ॉन्ट के साथ काम करेंगे ।

इनपुट टेक्स्ट कोई और नहीं होगा जो कि 80 अक्षर चौड़ा होगा, और सादे टेक्स्ट से उत्पन्न होगा जिसमें केवल अपरकेस अक्षर और स्पेस होगा।

आपका कार्यक्रम figletकिसी भी तरह से या उसके स्रोत कोड को कॉल नहीं कर सकता है ।

उदाहरण

इनपुट:

    _    ____   ____ ____  _____ _____ ____ _   _ ___ 
   / \  | __ ) / ___|  _ \| ____|  ___/ ___| | | |_ _|
  / _ \ |  _ \| |   | | | |  _| | |_ | |  _| |_| || | 
 / ___ \| |_) | |___| |_| | |___|  _|| |_| |  _  || | 
/_/   \_\____/ \____|____/|_____|_|   \____|_| |_|___|

     _ _  ___     __  __ _   _  ___  ____   ___  ____  
    | | |/ / |   |  \/  | \ | |/ _ \|  _ \ / _ \|  _ \ 
 _  | | ' /| |   | |\/| |  \| | | | | |_) | | | | |_) |
| |_| | . \| |___| |  | | |\  | |_| |  __/| |_| |  _ < 
 \___/|_|\_\_____|_|  |_|_| \_|\___/|_|    \__\_\_| \_\

 ____ _____ _   ___     ____        ____  ____   _______
/ ___|_   _| | | \ \   / /\ \      / /\ \/ /\ \ / /__  /
\___ \ | | | | | |\ \ / /  \ \ /\ / /  \  /  \ V /  / / 
 ___) || | | |_| | \ V /    \ V  V /   /  \   | |  / /_ 
|____/ |_|  \___/   \_/      \_/\_/   /_/\_\  |_| /____|

आउटपुट:

ABCDEFGHI
JKLMNOPQR
STUVWXYZ

इनपुट:

 ____ _____  _    ____   __        ___    ____  ____  
/ ___|_   _|/ \  |  _ \  \ \      / / \  |  _ \/ ___| 
\___ \ | | / _ \ | |_) |  \ \ /\ / / _ \ | |_) \___ \ 
 ___) || |/ ___ \|  _ <    \ V  V / ___ \|  _ < ___) |
|____/ |_/_/   \_\_| \_\    \_/\_/_/   \_\_| \_\____/ 

आउटपुट:

STAR WARS

इस प्रश्न के पिछले संपादन पर ध्यान दें जिसमें ऊपरी और निचले मामले के अक्षरों और अंकों के इनपुट शामिल हैं। यह बताया गया कि इससे कुछ आसन्न चरित्र संयोजनों के साथ अस्पष्टता के कई बिंदु हो गए। यह स्पष्ट हो गया कि मुझे ऐसे किसी भी टकराव के साथ पात्रों का एक समूह खोजने की आवश्यकता है, ताकि प्रतियोगिता वास्तव में संभव हो। पहले तो मैंने इस शेल वन-लाइनर के साथ सभी लोअरकेस अक्षर और अंकों को आज़माया:

for t in {0..9}{a..z} {a..z}{a..z} {a..z}{0..9} {0..9}{0..9} ; do figlet $t | tr '\n' ':'; echo ; done | sort | uniq -d | tr ':' '\n'

इससे अस्पष्ट जोड़े के रूप में { j1, jl} और { i1, il} उपज प्राप्त हुई। इसलिए सभी बड़े अक्षरों के साथ (जैसा कि @AlexA द्वारा सुझाया गया है।), कोई अस्पष्ट जोड़े नहीं हैं:

for t in {A-Z} ; do figlet $t | tr '\n' ':'; echo ; done | sort | uniq -d | tr ':' '\n'

5
मेरा सुझाव है कि 'आप अंजीर को कॉल नहीं कर सकते हैं' खंड, क्योंकि अन्यथा निश्चित रूप से सबसे छोटा कार्यक्रम सभी संभव तारों पर पुनरावृति करेगा, उन पर अंजीर को बुलाएगा, और फिर समानता की तुलना करेगा।
orlp

1
अंजीर का स्रोत कोड निम्न git रेपो में पाया जा सकता है: git://git.debian.org/git/collab-maint/figlet.git(साथ डाउनलोड करें git clone)।
दरवाज़े

4
नोट: इस चुनौती को कोड करना बहुत मुश्किल है, अकेले कोड गोल्फ दें।
लिन

4
1और lसमान नहीं हैं, लेकिन हैं V1और Vlहैं।
लिन

2
उन लोगों के लिए जिनके पास एक प्रणाली नहीं है जो अंजीर चला सकते हैं, विभिन्न ऑनलाइन संस्करण हैं। "अंजीर ऑनलाइन" के लिए खोजें। उदाहरण के लिए, यह काफी सीधा और विज्ञापन मुक्त दिखता है: network-science.de/ascii । सुनिश्चित करें कि आप "मानक" फ़ॉन्ट चुनें।
रेटो कोराडी

जवाबों:


3

CJam, 147 बाइट्स, थोड़ा टूट गया

qN/6/{z{:i:+165%91%' +}%"e 3 VG rr A>Q V) rP r4 />/ F> [> C >> 9$ j8 fQrQ rG rN rD VV $>$ ;$ 859 98 ff = BB"S/eeWf%$W%{~@@/\a*}/{`''#},'@f+'@/S*N}%

यह CODE GOLF और AZ को पार करता है, लेकिन STAR WARS को नहीं (जो इसे पढ़ता है SAR WARS)। मैं हार मान लेता हूं, लेकिन शायद कोई प्रेरित हो।


1
यदि आपका समाधान काम नहीं करता है, तो आप शायद इसे पोस्ट न करें ...
एलेक्स ए।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.