अपनी खुद की जिम एक्सरसाइज बनाएं और irl के साथ फॉलो करें


10

चलो एक साथ व्यायाम करते हैं, हम करेंगे? बस स्टिकमैन की चाल का पालन करें। तुम किस छड़ी वाले से पूछते हो? एक हम बनाने वाले हैं!

एक प्रोग्राम बनाएं जो केवल स्ट्रिंग-इनपुट की अनुमति देता है जिसमें पूर्णांक होते हैं, और बीच में एक अंतराल के साथ निम्नलिखित नौ छड़ी-आंकड़े को आउटपुट करता है:

 @  \@/ |@_ _@| @/   \@ |@| \@\ /@/
/|\  |   |   |   |   |   |   |   |
/ \ / \ / \ / \ /|\ /|\ / \ / \ / \
 1   2   3   4   5   6   7   8   9

इसके परिणामस्वरूप एक एनीमेशन होगा, जिसे हम irl के साथ अनुसरण कर सकते हैं।

इनपुट " 123245762" होने पर निर्मित आउटपुट का एक उदाहरण यहां दिया गया है :

यहाँ छवि विवरण दर्ज करें

कुछ िनयम:

  • यह टैग किया गया है , इसलिए बाइट्स जीत में सबसे छोटा कोड है
  • इनपुट stringकेवल [1-9]2 से 100 वर्णों से भिन्न लंबाई वाला एक ही है **
  • एनीमेशन एक अंतहीन लूप होना चाहिए
  • अंतराल समय 750 एमएस होना चाहिए
  • इनपुट में किसी भी समीपवर्ती पूर्णांक की अनुमति नहीं है - इसमें इनपुट का पहला और अंतिम पूर्णांक भी शामिल है (सातवें और आठ परीक्षण मामलों को देखें) **

** अमान्य इनपुट के मामले में यह कैसे विफल हो जाता है, यह पूरी तरह आप पर निर्भर करता है, लेकिन यह स्पष्ट होना चाहिए कि यह विफल हो गया है । यह एक अपवाद फेंक सकता है; बस शुरू में वापसी; अपने पीसी को रिबूट करें; इसे हटाएं इसका अपना स्रोत है- / संकलन-कोड; मिलिट्री में हैक करें और एक रॉकेट को संकलित जीपीएस-लोकेशन पर शूट करें। तुम्हारा कॉल। संपादित करें: इसे विफल इनपुट के रूप में केवल (सही / आधा) एनीमेशन प्रदर्शित करने की अनुमति नहीं है। यह स्पष्ट होना चाहिए कि नीचे दिए गए असफल परीक्षण के इनपुट के साथ कुछ गलत है। मेरे ध्यान में लाने के लिए @ user81655 को धन्यवाद , इसलिए संपादन।

Subrules:

  • कृपया अपने उत्तर में नीचे (गैर-विफल) परीक्षण मामलों में से एक के लिए जीआईएफ पोस्ट करें, जिसे आप निम्नलिखित कार्यक्रम के साथ बहुत आसान बना सकते हैं: screentogif.codeplex.com (किसी भी अन्य जीआईएफ बनाने वाले कार्यक्रम को भी पाठ्यक्रम की अनुमति है।)
  • बोनस अंक यदि आप वास्तव में एनीमेशन irl के साथ व्यायाम करते हैं तो यह समाप्त हो जाता है। ;)

सही टेस्टेसिस:

  1. 123245762
  2. 65
  3. 121234346565879879132418791576

असफल परीक्षण:

  1. 2 // बहुत कम अक्षर
  2. 7282918274959292747383785189478174826894958127476192947512897571298593912374857471978269591928974518735891891723878 // बहुत अधिक वर्ण
  3. 1232405762// अमान्य इनपुट ( 0) युक्त
  4. 112212// कारण 11और 22वर्तमान के कारण
  5. 1232457621 // शुरुआत और अग्रणी के कारण विफल रहता है 1

5
IMO इस की एक सीमा रेखा शिकार है इस
पीटर टेलर

1
BTW, एक चुनौती पोस्ट किए जाने के बाद संपादन करना हतोत्साहित करता है।
ब्लू

imo इनपुट सत्यापन चुनौती को बर्बाद करता है।
फ्लिपकार्ट

@ फीलटैक आप वास्तव में सही हैं। मुझे केवल चुनौती के साथ रखा जाना चाहिए और यह मान लेना चाहिए कि सभी इनपुट वैध हैं। पीपीसीजी पर यह मेरा पहला प्रश्न था। हालांकि अब इसे बदलने के लिए बहुत देर हो चुकी है।
केविन क्रूज़सेन

जवाबों:


0

पायथ, 114 बाइट्स

.V0j@cv.Z"xÚí» À0DW¹NM@+Üñ\">íÂA¸êÄÓw»`3±2þ&'NövfAé8é~0,p'ÆìÞúr_'¥,d!YÈBíéqs"3tv@zb.d.75

आउटपुट GIF

इसे यहाँ आज़माएँ

(कोई रोक नहीं, गैर-अनंत)


हम्म, पाइथ में असीम रूप से लौटना / फेंकना या लूप करना संभव नहीं है? या यह बहुत अधिक बाइट्स लेगा / बनाने में बहुत समय लगता है? (वर्तमान में यह सभी सही टेस्टकेस के साथ-साथ सभी फेल होने वाले टेस्टकेस के लिए भी समान है। और इसके लिए आउटपुट में भी जुड़ जाता है 0।) एंट्रेंस के लिए धन्यवाद। निश्चित रूप से इस प्रविष्टि के लिए सबसे अपठनीय कोड-स्निपेट में से एक मेरा अनुमान है। :)
केविन क्रूज़सेन

ऑनलाइन दुभाषिया नींद के दौरान IO को नहीं बहाता है, इसलिए इस पर ध्यान नहीं दिया जाता है। आपने कहा था कि आप एक अनंत लूप चाहते हैं, इसलिए मुझे यकीन नहीं है कि आप वहां क्या पूछ रहे हैं। "यह कैसे विफल हो जाता है आप पर निर्भर है" - मैं इसके लिए अपरिभाषित व्यवहार कर रहा हूं; कोड कुछ भी (हालांकि यह एक ही व्यवहार करना चाहिए) इसके अलावा, मैं इस पर कुछ संभव प्रविष्टियों की तुलना में अपेक्षाकृत पठनीय होने की उम्मीद कर रहा हूँ कर सकते हैं
ब्लू

4

SpecBAS - 387 बाइट्स

1 DIM m$=" @"#13"/|\"#13"/ \","\@/"#13" |"#13"/ \","|@_"#13" |"#13"/ \","_@|"#13" |"#13"/ \","@/"#13" |"#13"/|\"," \@"#13" |"#13"/|\","|@|"#13" |"#13"/ \","\@\"#13" |"#13"/ \","/@/"#13" |"#13"/ \"
2 INPUT a$: o=0
3 IF LEN a$<2 OR LEN a$>100 THEN 10
4 FOR i=1 TO LEN a$
5 n=VAL(a$(i))
6 IF n=0 OR n=o THEN 10
7 CLS : ?m$(n): o=n: WAIT 750
8 NEXT i
9 GO TO 4
10 CLS : ?" @"#13"-O-"#13"/ \"#13"FAT"

जब तक आप ईएससी दबाते हैं, तब तक लूपिंग रहता है। ठीक से व्यायाम करने में विफलता (गलत इनपुट - इस उदाहरण में 0 में से एक के रूप में) मोटापा की ओर जाता है। GIF लूप्स, प्रोग्राम में यह बस उस बिंदु पर रुकता है।

#13के बराबर स्पेसबीस है \nऔर आपको स्ट्रिंग्स में लाइन फीड शामिल करता है।

यहाँ छवि विवरण दर्ज करें


1
"एफएटी": डी ......
एडम वर्हेगी

2

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

f=s=>{n=s[0];e.textContent=' @ \\@/|@__@|@/  \\@|@|\\@\\/@/'.substr(n*3-3,3)+(n>1?`
 | 
`:`
/|\\
`)+(n<5|n>6?'/ \\':'/|\\');s=s.slice(1)+n;s[0]-n&&setTimeout(f,750,s)}
f("123245762")
<pre id=e>


1

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

s=>setInterval(_=>(c=console).clear(i=0)&c.log(`, @
/|\\
/ \\,\\@/
 |
/ \\,|@_
 |
/ \\,_@|
 |
/ \\,@/
 |
/|\\, \\@
 |
/|\\,|@|
 |
/ \\,\\@\\
 |
/ \\,/@/
 |
/ \\`.split`,`[s[i++%s.length]]),750)

यह बहिष्करण 0और डुप्लिकेट के बारे में नियमों को कैसे संभालता है ?
मॉर्गन थ्राप्प

4
@ Morgan'Venti'Thrappuccino मैं इस धारणा के तहत था कि अमान्य इनपुट को परिभाषित व्यवहार की आवश्यकता नहीं है, क्योंकि यह कहता है How it fails in case of invalid input is completely up to you। मैं केवल एक एनीमेशन प्रदर्शित करके अमान्य इनपुट को संभालता हूं। : पी किसी भी अन्य मौजूदा जवाबों में से किसी ने भी इसकी जांच नहीं की, हालांकि ओपी ने जो जवाब पोस्ट किया है, वह संभवत: इसलिए उसने हमें अमान्य इनपुट से निपटने के लिए किया।
user81655

"मैं केवल एक एनीमेशन प्रदर्शित करके अमान्य इनपुट को संभालता हूं। P" Lol .. यह देखने का एक तरीका है। xD मैं प्रश्न संपादित करूँगा।
केविन क्रूज़सेन

0

गणितज्ञ, 252 बाइट्स

i=0;Dynamic[Uncompress["1:eJxTTMoPSuNkYGAoZgESPpnFJcFCQIaCQ4yBoZF+TUwMmFaIiQELx8Q46IMEFGrgwoJA4RqHeCyi8Q41aKICQFEUA2qg5gIlHdCEIeaimyAMcQTEWWj26aO7DQDaqDEh"][[FromDigits[#~StringTake~{i=i~Mod~StringLength@#+1}]]],UpdateInterval->3/4,TrackedSymbols->{}]&

अच्छा होगा अगर कोई GIF बना सकता है। एक नोटबुक में चलाएं।


0

पायथन 3, 338 बाइट्स

import os,time
p=" @ \n/|\\\n/ \\","\\@/\n | \n/ \\","|@_\n | \n/ \\","_@|\n | \n/ \\","@/ \n | \n/|\\"," \\@\n | \n/|\\","|@|\n | \n/ \\","\\@\\\n | \n/ \\","/@/\n | \n/ \\"
i=input()
for j in range(len(i)):(i[j]in"123456789"and i[j]!=i[(j+1)%len(i)])or exit()
while 1:[[time.sleep(0.75),os.system("clear"),print(p[int(j)-1])]for j in i]

0

जावा 8, 663 636 634 631 596 355 354 बाइट्स

बस lols के लिए मैंने जावा में प्रोग्राम बनाने की कोशिश की। माना जाता है कि मैं गोल्फ और रेग्जेस में बहुत बुरा हूं, इसलिए इसकी संभावना सबसे अधिक (बहुत अधिक) गोल्फ हो सकती है। फिर भी, यहाँ यह जावा 7 में है।
अब लगभग दो साल बाद और मैंने जावा 8 में कोड को लगभग आधा कर दिया है। मैंने कभी भी इनपुट को मान्य करने और एक पूर्ण कार्यक्रम की आवश्यकता के बारे में उन नियमों को क्यों बनाया, हालांकि ...>> मुझे नफरत है। अब मेरा अतीत स्व .।

interface M{static void main(String[]a)throws Exception{if(!a[0].matches("[1-9]{2,100}")|a[0].matches("(.).*\\1|.*(.)\\2.*"))return;for(;;)for(int c:a[0].getBytes()){c-=48;System.out.printf("%s%n%s%n%s%n",c<2?" @ ":c<3?"\\@/":c<4?"|@_":c<5?"_@|":c<6?"@/ ":c<7?" \\@":c<8?"|@|":c<9?"\\@\\":"/@/",c<2?"/|\\":" | ",c%7>4?"/|\\":"/ \\");Thread.sleep(750);}}}

स्पष्टीकरण:

इसे ऑनलाइन आज़माएं। (60 सेकंड के बाद इसका समय समाप्त हो गया है।)

interface M{                     // Class
  static void main(String[]a)    //  Mandatory main-method
      throws Exception{          //    Required throws for the `Thread.sleep`
    if(!a[0].matches("[1-9]{2,100}")
                                 //   Validate 2-100 integers only containing 1-9
       |a[0].matches("(.).*\\1|.*(.)\\2.*")
                                 //   Validate no adjacent duplicated char (with wrap-around)
      return;                    //    If either isn't valid, stop the program
    for(;;)                      //   Loop indefinitely
      for(int c:a[0].getBytes()){//    Inner loop over the characters of the input
        c-=48;                   //     Convert character-code to integer
        System.out.printf("%s%n%s%n%s%n",
                                 //     Print:
          c<2?" @ ":c<3?"\\@/":c<4?"|@_":c<5?"_@|":c<6?"@/ ":c<7?" \\@":c<8?"|@|":c<9?"\\@\\":"/@/",
                                 //      The top part of the stick figure
          c<2?"/|\\":" | "       //      The middle part of the stick figure
          c%7>4?"/|\\":"/ \\");  //      The bottom part of the stick figure
        Thread.sleep(750);}}}    //     Sleep 750 ms

Gif:
(नोट: पुराना gif, क्योंकि यह स्पष्ट रूप से jdk1.8 + अब है)

यहाँ छवि विवरण दर्ज करें


आमतौर पर हम Java 7जावा के इस संस्करण को संदर्भित करने के लिए कहते हैं क्योंकि 1.7कुछ लोग यह सोचने के लिए भ्रमित कर सकते हैं कि यह Java 1संशोधन है7
GamrCorps

लंबे समय तक अगर बयान को किसी चीज में बदल दिया जाए p(new String[]{" @ ",y,"|@_", ... }[c-49]);if(c==49){p(x);l();}else if(c==53){w();p(x);}else d();। इसके अलावा, मुझे लगता है कि पात्रों को परिभाषित करना lऔर उन्हें wबर्बाद करना, अब जब कि वे केवल दो बार उपयोग किए जाते हैं। sइसके बजाय देने पर विचार करें char[] s=a[0].toCharArray(); इसके साथ अन्य सभी ऑपरेशन बहुत छोटे हैं, फिर।
एलेक्स मेइबर्ग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.