एसिसिमेशन जंपिंग जैक


28

यह मेरी पहली चुनौती है, इसलिए मैं इसे काफी सरल रख रहा हूं।

यदि आपने कभी भी telnet towel.blinkenlights.nlअपनी कमांड लाइन पर टाइप किया है और एंटर दबाया है, तो आपको ऐसिमिनेशन की खुशी का अनुभव होगा। Asciimation है, काफी बस, ascii कला के साथ एक एनीमेशन कर रही है। आज हम जंपिंग जैक करने वाले व्यक्ति की एक बहुत ही बुनियादी असामनता करेंगे।

वहाँ दो ascii चित्र है कि हम एक asciimation में एक साथ रखा जाएगा। संख्या 1:

_o_
 0
/ \

संख्या 2:

\o/
_0_
<blank line>

ध्यान दें कि दूसरे के अंत में एक रिक्त रेखा है।

तो आपका कार्यक्रम इन चरणों को करना चाहिए:

  1. कंसोल स्क्रीन साफ़ करें।
  2. सही एससीआई आर्ट इमेज प्रिंट करें।
  3. एक ध्वज या कुछ और सेट करें ताकि आप अगली बार दूसरी छवि करना जान सकें।
  4. एक पल रुको (लगभग एक सेकंड)।
  5. 1 पर जारी है।

नियम

  • आपका कार्यक्रम (सैद्धांतिक रूप से) अनंत लूप होना चाहिए।
  • आपके द्वारा उपयोग की गई प्रोग्रामिंग भाषा इस चालान के पोस्ट होने से पहले बनाई गई होगी।
  • यह , इसलिए बाइट्स जीत में सबसे छोटा कोड है।
  • मानक खामियां लागू होती हैं।

का आनंद लें!


क्या <रिक्त लाइन> पर कुछ स्थान हो सकते हैं?
जकुबे

1
क्या यह प्लेटफ़ॉर्म स्वतंत्र होने के लिए है क्योंकि लिनक्स स्पष्ट कमांड ( clear) विंडोज एक के लिए अलग है ( cls)
बीटा डिके

1
क्या स्थिति को स्पष्ट करने के लिए रिक्त रेखा है? यदि स्क्रीन के ऊपर से छपाई हो रही है ताकि रिक्त रेखा को कोई स्पष्ट अंतर न दिखाई दे, तो क्या इसे छोड़ा जा सकता है?
ट्राइकोप्लाक्स

@ जाकुब हां वहां रिक्त स्थान हो सकते हैं।
बिट्सबाइट्स

1
@trichoplax हाँ। रिक्त रेखा केवल यह इंगित करने के लिए है कि सिर को उसी स्थिति में रहना चाहिए।
बिट्सबाइट्स

जवाबों:


29

CJam, 51 45 42 38 36 बाइट्स

"c\o/
_0_""^[c_o_
 0
/ \^["{_o\6e4m!}g

उपरोक्त कैरेट संकेतन का उपयोग करता है; अनुक्रम ^[वास्तव में कोड बिंदु 27 के साथ ASCII वर्ण है।

मैंने 4 बाइट्स को बचाने के लिए @DomHastings के उत्तर ( उनकी अनुमति^[c से) से एस्केप सीक्वेंस ( ) उधार लिया है ।

सत्यापन

आप इस तरह से फ़ाइल को फिर से बना सकते हैं:

base64 -d > jj.cjam <<< ImNcby8KXzBfIiIbY19vXwogMAovIFwbIntfb1w2ZTRtIX1n

कोड चलाने के लिए, CJam दुभाषिए को डाउनलोड करें और इसे निष्पादित करें:

java -jar cjam-0.6.5.jar jj.cjam

यह किसी भी टर्मिनल पर काम करेगा जो कंसोल_कोड या एक उपयुक्त सबसेट का समर्थन करता है । 1

यह काम किस प्रकार करता है

e# Push both jumping jacks on the stack.

"c\o/
_0_"

"^[c_o_
 0
/ \^["

e# When chained together, they contain two occurrences of the string "\ec",
e# which resets the terminal. Encoding the ESC byte in the second string
e# eliminates the need two escape a backslash before the string terminator.

{         e# Do:
  _o      e#   Copy the jumping jack on top of the stack and print the copy.
  \       e#   Swap the order of the jumping jacks.
  6e4m!   e#   Calculate the factorial of 60,000 and discard the result.
          e#   This takes "about a second".
}g        e# Since the discarded factorial was non-zero, repeat the loop.

1 जंपिंग जैक बेहतर होगा यदि आप प्रोग्राम को चलाने से पहले टर्मिनल के कर्सर को छिपाते हैं। कॉन्सोल में, उदाहरण के लिए, आप पृष्ठभूमि के रंग से मेल खाने के लिए कर्सर का रंग सेट कर सकते हैं। यह आपके टर्मिनल की सेटिंग्स के माध्यम से किया जाना है, क्योंकि ^[cटर्मिनल को रीसेट करता है।


36
+1 बस के लिए Calculate the factorial of 60,000 and discard the result. This takes "about a second".;)
ETHproductions

शायद "सेंसलेस ऑपरेशन के लिए 2Fm*एक अच्छा बाइट-छोटा विकल्प है 6e4m!जो एक सत्य मूल्य देता है और गणना करने में लगभग एक सेकंड लेता है"।
लिन

@ मौरिस मैंने कुछ इसी तरह की कोशिश की थी e!, लेकिन वे याद करने लगते हैं। पहली यात्रा के बाद, गरीब जैक को दिल का दौरा पड़ता है ...
डेनिस

10

पायथ - 41 40 39 बाइट्स

.VZ"\x1b[H\x1b[J"@c"_o_
 0
/ \\\o/
_0_"Tb .p9

(मैं \x1bएक बाइट के रूप में गिन रहा हूं क्योंकि एसओ विशेष वर्णों को नष्ट कर देता है)।

स्पष्ट रूप से ऑनलाइन काम नहीं करता है क्योंकि ए) अनंत लूप और बी) टर्मिनल एस्केप कोड का उपयोग करता है।

#                Infinite loop
 "..."           Print escape sequences to clear screen
 @               Modular indexing
  c     T        Chop at index ten into the constituent frames
   "..."         Frames 1 & 2 concatenated (Pyth allows literal newlines in strings)
  ~              Post assign. This is an assign that returns the old value.
   h             Increment function. Putting it after an assign makes it augmented assign.
   Z             Variable auto-initialized to zero.
 .p9             Permutations(range(9), 9). Takes about a second on my machine.

मुझे यह जानकर आश्चर्य हुआ कि संवर्धित-असाइनमेंट ने पोस्ट-असाइनमेंट के साथ काम किया। अजगर कमाल का है।


.V0अनंत लूप के रूप में उपयोग करें
जैकब

अब आप एक बाइट को बचाने में सक्षम हो सकते हैं कि ओपी ने पुष्टि की है कि रिक्त लाइन को स्पष्ट रूप से मुद्रित करने की आवश्यकता नहीं है
ट्राइकोप्लाक्स सिप

@ जाकुब जो कुछ भी नहीं बचा।
माल्टीसेन

आप अपने कोड के अनुरूप नहीं हैं: P
बीटा डेके

9

QBasic, 58 बाइट्स

पर परीक्षण किया गया QB64 गया

CLS
?"_o_"
?0
?"/ \"
SLEEP 1
CLS
?"\o/"
?"_0_"
SLEEP 1
RUN

समस्या के लिए सही भाषा आश्चर्यजनक रूप से प्रतिस्पर्धी हो सकती है, भले ही यह आमतौर पर क्रिया हो। ?के लिए शॉर्टकट PRINTनिश्चित रूप से भी मदद करता है,। CLSहै सीएल कान रों creen; RUNबिना तर्क के कार्यक्रम को फिर से शुरू किया जाता है, जो कि अनंत लूप पाने का सबसे छोटा तरीका है।

यहाँ केवल अन्य चाल 0पहली तस्वीर के midsection के लिए मुद्रण है । QBasic जब (और बाद में) गैर-संवेदी संख्यात्मक मानों के सामने एक स्थान रखता है, जब यह उन्हें प्रिंट करता है, जिसके परिणामस्वरूप 0 । 3 पात्रों को बचाया " 0"

मैं यह भी बता सकता हूं कि इस कोड में देरी का शाब्दिक अर्थ दूसरा है , और मशीन-निर्भर नहीं है। ; ^ पी


2
मुझे याद है कि BASIC के विभिन्न संस्करणों में संख्याओं को छापने पर आसपास के रिक्त स्थान नाराज हो जाते हैं। यह देखकर अच्छा लगा कि इसके लिए एक अच्छा उपयोग है ...
ट्राइकोप्लाक्स

7

पर्ल (* निक्स) , 54 बाइट्स

sleep print"\x1bc",$-++%2?'\o/
_0_
':'_o_
 0
/ \
'while 1

( \x1b1 बाइट के रूप में गिना जाता है लेकिन आसान परीक्षण के लिए बच गया है।) ऊपर बैश के साथ परीक्षण किया गया है और @Dennis के लिए एक और बाइट धन्यवाद द्वारा छोटा किया गया है !

पर्ल (विंडोज़) , 56 बाइट्स

sleep print"\x1b[2J",$-++%2?'\o/
_0_
':'_o_
 0
/ \
'while 1

@Jarmex को उसके परीक्षण और सलाह के लिए धन्यवाद !


2
डर है कि विंडोज पर काम नहीं करता है, लेकिन आप print"@[2J"ASCII 27 के साथ उद्धरण के अंदर @ का स्थान ले सकते हैं : (परीक्षण उद्देश्यों के लिए, print"\033[2J"आसान हो सकता है) के साथ केवल 1 बाइट से अधिक दूर हो सकता है।
जॅमेक्स

आप \eशाब्दिक ईएससी बाइट से बदल सकते हैं । - यदि आप \ecमेरे उत्तर में छल का उपयोग करते हैं तो क्या आप बुरा मानेंगे?
डेनिस

@ निश्चित रूप से, क्योंकि "\e"अभी भी उस के लिए एक शॉर्टकट है। कृपया आगे जाएं!
डोम हेस्टिंग्स

6

जावास्क्रिप्ट (ईएस 6), 109 93 79 70 बाइट्स + एचटीएमएल, 12 10 बाइट्स = 120 106 91 80 बाइट्स

काफी सरल। छवियों को संग्रहीत करने के लिए टेम्प्लेट स्ट्रिंग्स का उपयोग करता है, और एक बूलियन मान को निर्धारित करता है जिसका उपयोग करना है।

नोट: यह समाधान मान्य नहीं हो सकता है, क्योंकि यह वास्तव में कंसोल का उपयोग नहीं करता है। हालाँकि, मुझे विश्वास नहीं है कि JS का उपयोग करके ब्राउज़र कंसोल को साफ़ करना संभव है, कम से कम फ़ायरफ़ॉक्स का उपयोग करते समय नहीं।

a=!1,setInterval(_=>O.innerHTML=(a=!a)?`_o_ 
 0
/ \\`:`\\o/ 
_0_`,1e3)
<pre id=O>


1
@orlp कोड एनिमेटेड मैन बनाता है। (क्रोम @ विंडोज)। हालांकि यह जीयूआई कंसोल आधारित होने के बजाय आधारित है। इस तरह के रूप में मान्य नहीं माना जा सकता है।
जस्टिन

3
1. मेरे कंप्यूटर पर, यह फ़ायरफ़ॉक्स में ठीक काम करता है, लेकिन क्रोम में नहीं, इसलिए मुझे लगता है कि आपको भ्रम से बचने के लिए इसे ECMAScript 6 के रूप में लेबल करना चाहिए। 2. यदि आप <pre id="a"/>HTML भाग में रखते हैं, तो आपको <pre>कोड में टैग की आवश्यकता नहीं है ।
डेनिस

1
या, बेहतर अभी तक, HTML से छुटकारा पाएं और document.getElementById`a` साथ बदलें document.body
निंजाबियरनॉकी

1
मुझे HTML बनाने <pre>और करने के लिए 87 बाइट्स मिले document.all[4]। यह आपको रैपर स्ट्रिंग से छुटकारा पाने और बस इसे बनाने की अनुमति देता है innerHTML=a?`...`:`...`}
NinjaBearMonkey 14

1
इसने मेरे लिए क्रोम पर काम करना बंद कर दिया है
बीटा डेके

5

बैश, 86 84 बाइट्स

while sleep 1;do printf "\e[2J_o_\n 0\n/ \\";sleep 1;printf "\r\e[2J\o/\n_0_\n";done

3

पायथन 2, 99 बाइट्स

विंडोज पर चलता है

import os,time
g=0
while 1:os.system("cls");print["\\o/\n_0_","_o_\n 0 \n/ \\"][g];time.sleep(1);g=~g

UNIX मशीनों के लिए, दो बाइट्स जोड़ें:

import os,time
g=0
while 1:os.system("clear");print["\\o/\n_0_","_o_\n 0 \n/ \\"][g];time.sleep(1);g=~g

3

awk - 95 92 86 84 83

END{
    for(;++j;)
        system("clear;printf '"(j%2?"_o_\n 0\n/ \\":"\\o/\n_0_")"';sleep 1")
}

अच्छी कसरत: डी बस सोचता था कि क्या यह उचित था। हालांकि हासिल करने के लिए कोई कीमत नहीं ...;)

यदि कोई इसका परीक्षण करना चाहता है: प्रोग्राम को चलाने के बाद आपको वास्तव में END ब्लॉक शुरू करने के लिए Ctrl + D (इनपुट का अंत) दबाना होगा। इसे समाप्त करने के लिए मुझे Ctrl + Z का उपयोग करना होगा।

मेरे पास यह भी है, जो केवल 74 बाइट्स है, लेकिन यह एक दूसरे को रोकने के साथ शुरू होता है जो कि मेरे विचार से वांछित व्यवहार नहीं है

END{
    for(;1;print++j%2?"_o_\n 0\n/ \\":"\\o/\n_0_")
        system("sleep 1;clear")
}

1
क्या नींद तीन सेकंड के अंतराल को मापती है?
ट्राइकोप्लाक्स

हे भगवान। संकेत के लिए धन्यवाद :) या अगर यह एक संकेत नहीं था: नहीं, यह केवल 0.33 सेकंड सोया।
कैबी ४०

मुझे पता नहीं है लेकिन यह संभव है कि यह सेकंड में मापेगा। :)
ट्राइकोप्लाक्स

1
यह सिर्फ और अधिक मज़ेदार लगता है अगर यह तेजी से आगे बढ़ रहा है, कि मैं वहां गोल्फ के बारे में भूल गया हूं? डी
कैबी 407

नींद की आज्ञा नहीं है, यह बैश है, btw
Cabbie407

2

बैच - 82 बाइट्स

संपादित करें: टाइमआउट कमांड को म्यूट किया और अतिरिक्त न्यूलाइन को हटा दिया।

cls&echo _o_&echo  0&echo / \&timeout>nul 1&cls&echo \o/&echo _0_&timeout>nul 1&%0

मैंने 2 अन्य समान बैच उत्तर देखे हैं इसलिए मैं वास्तव में इसे पोस्ट नहीं करना चाहता था, लेकिन यह मेरा पहला गोल्फ है।


1
लेकिन एक नंगे timeout 1सांत्वना पर बहुत सारे
अप्रमाणित

सच है, मेरे पास अतिरिक्त आउटपुट था। संपादित।
बजे पीटर लेनकेफी

1
हो सकता >mulहै कि यह टाइप त्रुटि हो, या हो सकता है आपको पता न हो कि क्या nulहै। en.wikipedia.org/wiki/Null_device
edc65

@ edc65 कॉपी-पेस्ट का बैकड्रॉप और परीक्षण नहीं। धन्यवाद!
17-22 बजे पीटर लेनकेफी

2

बीबीसी बेसिक, 75 बाइट्स

ध्यान दें कि टोकन इसे 75 बाइट्स तक खींचता है। व्हॉट्सएप आईडीई द्वारा जोड़ा गया है।

      g=0
   10 IFg=0THENPRINT"\o/":PRINT"_0_"ELSEPRINT"_o_":PRINT" 0 ":PRINT"/ \"
      g=1-g:WAIT 100CLS:GOTO10

Properties showing program size


2

जावास्क्रिप्ट ईएस 6, 100 95 बाइट्स

(f=_=>{console.log(_?`_o_
 0
/ \\`:`\\o/
_0_`)
(b=setTimeout)(q=>(clear(),b(b=>f(!_))),1e3)})()

कंसोल पर लॉग करता है। सफारी नाइटली पर परीक्षण किया गया


2

बैच, १५१ १३० ११atch बाइट्स

cls
@echo _o_
@echo  0
@echo / \
@PING -n 2 127.0.0.1>NUL
cls
@echo \o/
@echo _0_
@PING -n 2 127.0.0.1>NUL
%0

अब आप कुछ बाइट्स को बचाने में सक्षम हो सकते हैं कि ओपी ने पुष्टि की है कि रिक्त लाइन को स्पष्ट रूप से मुद्रित करने की आवश्यकता नहीं है
ट्राइकोप्लाक्स

आपको @PING 127.0.0.1 -n 2>NULइसके बजाय 12 वर्णों को बंद करने में सक्षम होना चाहिए । पिंग प्रयासों के बीच एक दूसरे के बारे में इंतजार करने के लिए चूकता है, इसलिए यह सटीक होने के कुछ मिलीसेकंड के भीतर है, इस चुनौती के लिए काफी करीब है। संदर्भ
AdmBorkBork

टिम्मीड के लिए 12 बाइट्स के लिए गोल्फ को बंद किया गया
मैक्स

2

CBM 64 बुनियादी V2, 121 119 112 117 बाइट्स

2?CHR$(147)+"\o/":?" 0":?"/ \"
3GOSUB7
4?CHR$(147)+"_o_":?"_0_"
5GOSUB7
6RUN
7A=TI
8IFTI-A<60THENGOTO8
9RETURN

?CHR$(147)स्क्रीन को साफ करता है ? यदि ऐसा है तो आप अब 2 बाइट्स बचाने में सक्षम हो सकते हैं, ओपी ने पुष्टि की है कि रिक्त लाइन को स्पष्ट रूप से मुद्रित करने की आवश्यकता नहीं है
ट्राइकोप्लाक्स सिप

यह पहला एनीमेशन फ्रेम (यानी, जहाँ हथियार समतल हैं) का उत्पादन नहीं करता है।
साइकोनॉट

तुम सही हो ... मैं इसे ठीक करने जा रहा हूँ!
मैक्स

1

जूलिया, 70 बाइट्स

( विंडोज पर , भूमिगत समापक के लिए धन्यवाद के clearसाथ प्रतिस्थापित करके cls)

n(i=1)=(sleep(1);run(`cls`);print(i>0?"_o_
 0
/ \\":"\\o/
_0_");n(-i))

लिनक्स पर, 72 बाइट्स

n(i=1)=(sleep(1);run(`clear`);print(i>0?"_o_
 0
/ \\":"\\o/
_0_");n(-i))

यह \nबाइट को बचाने के बजाय वास्तविक नईलाइन्स का उपयोग करता है ; अन्यथाi "ध्वज" के रूप में या तो 1 या -1 है, और यह अनंत लूप को प्राप्त करने के लिए पुनरावृत्ति का उपयोग करता है। इसे n(1)या तो कहें या बसn()

इसके अलावा, run(`clear`)/ run(`cls`)विंडो को खाली करने के लिए शेल कमांड का उपयोग करता है, क्योंकि जूलिया में बिल्ट-इन विंडो-क्लियर कमांड नहीं है।


आप को बदलने के द्वारा दो बाइट्स बचाने आप खिड़कियों पर इस चलाते हैं clearकरने के लिए cls(मैं, यह मानते हुए कर रहा हूँ मैं जूलिया बारे में कुछ पता नहीं है)।
भूमिगत

@undergroundmonorail - धन्यवाद, लेकिन मैं Ubuntu का उपयोग करता हूं, cls काम नहीं करता है। उम्मीद है कि जूलिया एक वास्तविक टर्मिनल-क्लियरिंग फ़ंक्शन को लागू करने का निर्णय लेती है।
ग्लेन ओ

@GlenO पर विंडोज clsकाम करता है (मेरा उत्तर देखें)
बीटा क्षय

1

विंडोज बैच, 83 89

ओपी द्वारा स्पष्टीकरण के बाद एडिट ने खाली लाइन को हटा दिया

@cls&echo _o_&echo  0&echo./ \&timeout>nul 1&cls&echo \o/&echo _0_&timeout>nul 1&%0

यदि आप जंपिंग मैन में खाली लाइन से छुटकारा पा लेते हैं (जो वैसे भी नहीं देखा जा सकता है), स्कोर 83 है

नोट: timeoutविंडोज एक्सपी में मौजूद नहीं है। यह विस्टा या नए संस्करणों में काम करता है। इसके अलावा timeoutदूसरे के लिए सटीक नहीं है, इसलिए यह चरण 4 को लागू करने के लिए एक सही विकल्प है (एक पल रुको ( लगभग एक सेकंड ))


1

जावास्क्रिप्ट (ईएस 6), 82 बाइट्स

मेरे पिछले उत्तर का एक संशोधन जो कंसोल का उपयोग करता है। फ़ायरफ़ॉक्स में आंशिक रूप से काम करता है, लेकिन केवल क्रोम, AFAIK में कंसोल को साफ करता है।

a=!0,c=console,setInterval(_=>c.log(c.clear(a=!a)|a?`_o_
 0
/ \\`:`\\o/
_0_`),1e3)

हमेशा की तरह, सुझावों का स्वागत है!


इसे प्यार करना! मैं इस के माध्यम से नोटिस करता हूं कि क्रोम अब मेरे लिए भी ES6 निष्पादित कर रहा है!
डोम हेस्टिंग्स

@DomHastings मैंने पहले कभी क्रोम में विकसित नहीं किया है, लेकिन मैंने सुना है कि यह डिफ़ॉल्ट रूप से ईएस 6 का समर्थन नहीं करता था, इसलिए मैं बस आप के रूप में आश्चर्यचकित था! :)
ETHproductions

1

जावास्क्रिप्ट, 92 91 89 बाइट्स

x=0;setInterval(function(){console.log("\033c"+["_o_\n 0\n/ \\","\\o/\n_0_"][x^=1])},1e3)
  • कोई ES6 सुविधाएँ (लेकिन उनके साथ काफी कम होगी)
  • लिनक्स पर Node.js के साथ काम करता है (अन्य वातावरण के बारे में नहीं जानता)
  • क्रोम के कंसोल में आंशिक रूप से काम करता है (कंसोल cको साफ़ करने के बजाय, आउटपुट को तोड़ते हुए दिखाया गया है)

"\033c"+उपरोक्त कोड से हटाना , निम्न ब्राउज़र में काम करता है, लेकिन कंसोल को साफ़ नहीं करता है।

x=0;setInterval(function(){console.log(["_o_\n 0\n/ \\","\\o/\n_0_"][x^=1])},1e3)


प्रभावशाली काम! ईएस 6 सुविधाओं का उपयोग करते हुए, मुझे 77 मिलते हैं: x=0;setInterval(_=>console.log("\033c"+[`_o_<line break> 0<line break>/ \\`,`\\o/<line break>_0_`][x^=1]),1e3)किसी कारण से, जेएस मुझे console.logएक अतिरिक्त पैराम के रूप में फ़ंक्शन और एएससीआईआई मैन के रूप में पास नहीं होने देगा ।
ETHproductions

@ETHproductions Thanks! I thought about doing it in ES6, but having never used it and not having io.js installed I decided not to. As far as not being able to pass console.log to setInterval, the reason is that we're not passing the function, but calling it. It would be evaluated before setInterval was called, and since console.log doesn't return, it would essentially be passing undefined to setInterval. Make sense? And thanks for shortening it!
Nateowami

I understand what you're saying, but according to this page, this code should work: x=0;setInterval(console.log,1e3,"\033c"+[_o_<line break> 0<line break>/ \`,\\o/<line break>_0_][x^=1])` In fact, it doesn't bring up an error if I replace console.log with alert.
ETHproductions

Ah, I get what you're saying. I think the problem though is that we need to log something different each time, but "\033c"+[`_o_<line break> 0<line break>/ `,\\o/<line break>_0_`][x^=1] gets evaluated before the call to setInterval.
Nateowami

0

Ruby, 79 bytes

k=!0;loop{puts((k)?"\e[H\e[2J_o_\n 0\n/ \\":"\e[H\e[2J\\o/\n_0_");k=!k;sleep 1}

Requires escape codes.


0

Forth, 86 bytes

Requires GNU Forth for the escaped strings. To run in a non-GNU Forth, just change S\" to S", and the escaped characters won't print correctly.

: P PAGE TYPE CR 999 MS ;
: R BEGIN S\" \\o/\n_0_" P S\" _o_\n 0 \n/ \\" P 0 UNTIL ; R


0

CBM BASIC v2.0 (68 characters)

0?"S_o_q||0q||N M":goS1:?"SMoN":?"_0_":goS1:gO
1wA161,255,pE(161):reT

The above requires some explanation, since Stack Exchange markup doesn't properly represent PETSCII characters:

  • The program is shown here for convenience in lowercase, but can and should be entered and run in uppercase mode on a Commodore 64.
  • The first and third "S" characters are actually in reverse video, and produced by pressing the CLR key (SHIFT+HOME).
  • "क्यू" अक्षर वास्तव में रिवर्स वीडियो में हैं, और नीचे कर्सर दबाकर निर्मित होते हैं (CRSR ⇓).
  • "|" वर्ण वास्तव में रिवर्स वीडियो में हैं, और बाएं कर्सर ( SHIFT+ CRSR ⇒) को दबाकर उत्पादित किया जाता है ।

0

मोम, 119 113 बाइट्स

ph0`J2[`}ghq'-<gh0N}`0`}gN`/o\`Ngh0`J`<
>g}`o`}N` `0>'d`0 `N`/ \`0hg>-'phg}`[2`b
dF1f+5~Zzf(.FP9f..F3_#     d   <

कार्यक्रम के महत्वपूर्ण भागों की व्याख्या:

left to right  right to left

3FBf   or       fBF3          27       ASCII code for (esc)
3             [x,x,3]•        set lstack 1st to 3
 F            [3,3,3]•        set lstack to 1st
  B           [3,3,27]•       1st=1st^2nd
   f                          push lstack 1st on gstack
——————
9PF.(f   or    f(.FP9         102400   counter to roughly match a wait time
                                       of 1 s on my i5 2410M Laptop
9             [x,x,9]•        set lstack 1st to 9
 P            [x,x,10]•       increment 1st
  F           [10,10,10]•     set lstack to 1st
   .          [10,10,100]•    1st=1st*2nd
    (         [10,10,102400]• 1st=1st<<2nd (100<<10=102400, arithmetic shift left)
     f                        push lstack 1st on gstack
——————
zZ~5+f   or    f+5~Zz         95       ASCII for '_'
z             [0,0,0]•        initialize lstack to zero
 Z            [0,0,90]•       get value from relative coordinate (0,0),
                              which is the location of `Z` itself, ASCII(Z)=90
  ~           [0,90,0]•       flip 1st and 2nd lstack values
   5          [0,90,5]•       set lstack 1st to 5 
    +         [0,90,95]•      1st = 1st+2nd
     f                        push lstack 1st on gstack

fके बाद में उपयोग के gstack (वैश्विक ढेर) पर मूल्यों धक्का। ये मान 0gh(या मिरर किए गए hg0) और hg( gh) निर्देशों द्वारा एक्सेस किए जाते हैं । hgstack को ऊपर की ओर घुमाता है, gstack gके शीर्ष मान को पढ़ता है और इसे मधुमक्खी (निर्देश सूचक) के lstack (स्थानीय स्टैक) पर धकेलता है।

}`o`}N` 0 `N`/ \`                      sequence to print the standing man

N`\o/`Ng}`0`}N                         sequence to print the jumping man

}`[2J`                        equivalent to the ANSI escape sequence (esc)[2J
                              to clear the screen
>-'p  or >-'q  or >  p        loop for counting down (wait 1 s)
d  <      b  <    d'-<

यदि आवश्यक हो तो बाद में गहराई से व्याख्या की जाती है। शायद एनीमेशन के साथ।


0

डेडफिश , गैर-प्रतिस्पर्धात्मक (658 बाइट्स)

iiisisdddddoiiiiiiiiiiiiiiiioddddddddddddddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddsddddoiiiiiiiiiiiiiiiioddddddddddddddddoddddddddddddddddddddddodddsddodddddddddddddddoddddddddddddddddddddddsddddddddoddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoosddddddddoiiiiiiiiiiiiiiiiiiioddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddddddddddddddddddosdddddodddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddddddddddddddddsdddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoo

यह एक गैर-प्रतिस्पर्धी समाधान है , क्योंकि यह पूरी तरह से चुनौती की आवश्यकताओं को पूरा नहीं करता है। डेडफिश एक बहुत ही अजीब व्याख्या की गई लैनुगेज है, जिसमें केवल 4 कमांड और एक संचायक है। संचायक एक एकल बाइट वैरिएबल है जिसे 0. पर कमांड किया गया है। 4 कमांड हैं:

  • i = संचायक को बढ़ाना a = a + 1
  • d = संचायक में कमी a = a - 1
  • s = संचायक को चौकोर करें a = a * a
  • o = संचायक का उत्पादन print(a)

चूंकि भाषा में पुनरावृत्ति शामिल नहीं है, स्क्रीन को साफ करना, या देरी करना, यह आवश्यकताओं को पूरा नहीं करता है। अपेक्षित उत्पादन:

_o_
 0 
/ \
(Blank line, not from the program)
\o/
_0_
(Blank line, not from the program)
(Blank line, not from the program)

कोड स्पष्टीकरण:

_  iiisisdddddo
o  iiiiiiiiiiiiiiiio
_  ddddddddddddddddo
\n dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
   ddddsddddo
0  iiiiiiiiiiiiiiiio
   ddddddddddddddddo
\n ddddddddddddddddddddddo
/  dddsddo
   dddddddddddddddo
\  ddddddddddddddddddddddsddddddddo
\n ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
\n o
\  sddddddddo
o  iiiiiiiiiiiiiiiiiiio
/  ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
\n dddddddddddddddddddddddddddddddddddddo
_  sdddddo
0  dddddddddddddddddddddddddddddddddddddddddddddddo
_  ddddddddddddddddddddddddddddddddddddddsdddddo
\n dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
\n o

पायथन 3 में डेडफिश व्याख्याकार:

c=input()
o=""
a=0
for p in range(0,len(c)):
    i=c[p]
    if i=="i":
        a += 1
    if i=="d":
        a+=-1
    if i=="s":
        a=a*a
    if i=="o":
        o+=chr(a)
print(o)

0

नूडल , नॉनकमेटिंग 24 बाइट्स

नॉनकंपलिंग क्योंकि नूडल का जन्म चुनौती बनने के बाद हुआ था :)

”ṛ|ọBCḊCBCḣ“\o/¶_0_ḷėçḍs

कोशिश करो:)

यह काम किस प्रकार करता है

”ṛ|ọBCḊCBCḣ              # Creates a string that gets decompressed into "_o_¶¤0¤¶/¤\" and places it into the pipe.
           “\o/¶_0_      # Creates a string and places it into the pipe.
                   ḷ     # Unconditionally loop the code up to a new line or end of program.
                    ė    # Takes what is in the front of the pipe and puts it into the back.
                     ç   # Clears the screen and prints.
                      ḍs # Delays for one second.

वर्तमान में नूडल का कोई संस्करण नहीं है जो इस चुनौती में प्रयुक्त वाक्यविन्यास का समर्थन करता है। यहाँ एक संस्करण है जो करता है:

24 बाइट्स

\o/¶_0_ _o_¶¤0¤¶/¤\ḷçėḍs

<div id="noodel" code="\o/¶_0_ _o_¶¤0¤¶/¤\ḷçėḍs" input="" cols="5" rows="5"></div>

<script src="https://tkellehe.github.io/noodel/noodel-latest.js"></script>
<script src="https://tkellehe.github.io/noodel/ppcg.min.js"></script>

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