मुझे कुछ पुराने डेमो की याद आती है, जब वे कंप्यूटर की क्षमताओं को दिखाते हैं, जब उन्हें i3, i5 और i7 के बजाय x86 कहा जाता था। मैंने अपने 386 में जो पहली बार देखा था, वह फ्यूचर क्रू से अवास्तविक डेमो था जो अब अपनी 25 वीं वर्षगांठ मना रहा है। पर मिनट 00:43 डेमो के पहले भाग शुरू होता है और हम एक sinusoidal मार्ग का अनुसरण एक स्क्रॉल पाठ को देखने। आइए ASCII कला में उस प्रभाव की नकल करने की कोशिश करें!
चुनौती
इस मार्ग को देखते हुए:
*** ***
*** ***
** **
* *
* *
* *
* *
** **
*** ***
******
और एक इनपुट पाठ, इस तरह से पाठ का अनुसरण करें, जैसे:
Thi Golf!
s i de Yay
s Co !
P
r d
o n
g a
ra s
mmi zle
ng Puz
ध्यान दें कि रिक्त स्थान पथ में वर्णों के रूप में गिना जाता है, और यदि पाठ नमूना से अधिक लंबा है तो पथ स्वयं को दोहराता है।
एनीमेशन हिस्सा है
एक बार जब आप पाठ खींच लेते हैं, तो 100 एमएस (लगभग 10 एफपीएस का एक एनीमेशन बनाने के लिए) प्रतीक्षा करें और पाठ को फिर से ड्रा करें लेकिन पथ की अगली स्थिति से शुरू करें। इसलिए, फ्रेम के लिए #n
, गणना करें n modulo 40
और पाठ के साथ पथ की निम्नलिखित स्थिति में ड्राइंग को हमेशा कैनवास के बाईं ओर संरेखित करें:
*** ***
| *** *** |
| ** ** |
| * * |
| * * |
| * * |
| * * |
| ** ** |
| *** *** |
| ****** |
Position 0 Position 39
तो फ्रेम 10 के लिए हमारे पास होगा:
and Co
es de
zl Go
z l
u f
T P !
h
is ng Ya
is mmi y!
Progra
टिप्पणियाँ
- इनपुट एक एकल
string
(याchar
सरणी, जो भी हो) पाठ के साथ चेतन करने के लिए होगा, और हमेशा कम से कम 1 वर्ण होगा। - चेतन करने के लिए वैध वर्ण मुद्रण योग्य ASCII सेट में हैं ।
- अनुसरण करने का मार्ग बिल्कुल वैसा ही होगा जैसा दिया गया है।
- पाठ हमेशा कैनवास के बाईं ओर संरेखित किया जाएगा, इसलिए इसका प्रभाव ध्वज की तरह लहराता हुआ पाठ होगा, जिसमें कोई पाठ विस्थापन नहीं होगा। और कैनवस से मेरा मतलब है स्क्रीन या जो भी आप टेक्स्ट दिखाने के लिए इस्तेमाल करेंगे । ;-)
- फ़्रेम पिछले फ्रेम से किसी भी वर्ण / पिक्सेल के स्पष्ट होना चाहिए जब तक कि चरित्र / पिक्सेल दोनों फ़्रेमों में समान न हो।
- एनीमेशन की गति तब तक मायने नहीं रखती है जब तक कि यह सुचारू रूप से या आपके डिवाइस के रूप में तेज़ चलता है (हम न्यूनतम 5 एफपीएस सेट कर सकते हैं, लेकिन यह कोई आवश्यकता नहीं है)। बस इसे तरल बनाने की गति को समायोजित करें और चिंता न करें यदि प्रतीक्षा समय बिल्कुल समान नहीं है।
- एनीमेशन अंतहीन रूप से लूप करेगा।
यह कोड-गोल्फ है , इसलिए पाठ जीतने के लिए सबसे छोटा कार्यक्रम या फ़ंक्शन सक्षम हो सकता है!