আপনার নিজের জিম অনুশীলন তৈরি করুন এবং irl বরাবর অনুসরণ করুন


10

আসুন একসাথে একটি অনুশীলন করা যাক, আমরা কি? কেবল স্টিকম্যানের গতিবিধি অনুসরণ করুন। আপনি কি স্টিকম্যান জিজ্ঞাসা? আমরা যেটি তৈরি করতে চলেছি!

এমন একটি প্রোগ্রাম তৈরি করুন যা কেবলমাত্র পূর্ণসংখ্যাযুক্ত স্ট্রিং-ইনপুটটির জন্য অনুমতি দেয় এবং এর মধ্যে একটি অন্তর অন্তর সহ নিম্নলিখিত নয়টি স্টিক-চিত্রকে আউটপুট দেয়:

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

এর ফলে একটি অ্যানিমেশন তৈরি হবে, যা আমরা পরে irl বরাবর অনুসরণ করতে পারি।

ইনপুট " 123245762" যখন তৈরি হয় তখন আউটপুট তৈরির একটি উদাহরণ এখানে দেওয়া হয় :

এখানে চিত্র বর্ণনা লিখুন

কিছু নিয়ম:

  • এটি ট্যাগ , তাই বাইট জেতে সংক্ষিপ্ততম কোড
  • ইনপুটটি stringকেবলমাত্র [1-9]দৈর্ঘ্য 2 থেকে 100 বর্ণের পরিবর্তিত দৈর্ঘ্য সহ একটি মাত্র **
  • অ্যানিমেশন অবশ্যই একটি অন্তহীন লুপ হতে হবে
  • ব্যবধান সময় 750 এমএস হতে হবে
  • ইনপুটটিতে কোনও সদৃশ সংলগ্ন পূর্ণসংখ্যার অনুমতি নেই - এর মধ্যে ইনপুটটির প্রথম এবং শেষের পূর্ণসংখ্যা অন্তর্ভুক্ত রয়েছে (সপ্তম এবং আটটি পরীক্ষার কেস দেখুন) **

** অবৈধ ইনপুট ক্ষেত্রে এটি কীভাবে ব্যর্থ হয় তা পুরোপুরি আপনার উপর নির্ভর করে তবে এটি ব্যর্থ হয়েছে তা পরিষ্কার হওয়া উচিত । এটি একটি ব্যতিক্রম ছুঁড়ে দিতে পারে; কেবল শুরুতে ফিরে আসুন; আপনার পিসি রিবুট করুন; এটি নিজস্ব উত্স- / সংকলন-কোড মুছুন; সামরিক ক্ষেত্রে হ্যাক এবং সংকলন জিপিএস-লোকেশন একটি রকেট গুলি। আপনার কল সম্পাদনা: ব্যর্থ ইনপুট হিসাবে এটি কোনও (সঠিক / অর্ধেক) অ্যানিমেশন কেবল প্রদর্শন করার অনুমতি নেই। এটি অবশ্যই পরিষ্কার হতে হবে যে নীচে ব্যর্থ টেস্টকেসগুলির জন্য ইনপুটটিতে কিছু ভুল is এটিকে আমার নজরে আনার জন্য @ ব্যবহারকারী 81655 কে ধন্যবাদ , তাই সম্পাদনা করুন।

Subrules:

  • আপনার উত্তরে নীচে যে কোনও একটি (ব্যর্থহীন) পরীক্ষার জন্য জিআইএফ পোস্ট করুন, যা আপনি নিম্নলিখিত প্রোগ্রামের সাহায্যে খুব সহজ করে তুলতে পারেন: স্ক্রেন্টোগিফ.কোডপ্লেক্স.কম (অন্য কোনও জিআইএফ-তৈরির প্রোগ্রাম অবশ্যই অনুমোদিত))
  • বোনাস পয়েন্টস যদি আপনি যদি অ্যানিমেশন রাইলের কাজ শেষ করেই অনুশীলন করে থাকেন actually ;)

সঠিক টেস্টকেসগুলি:

  1. 123245762
  2. 65
  3. 121234346565879879132418791576

ব্যর্থ টেস্টকেসগুলি:

  1. 2 // খুব কম অক্ষর
  2. 7282918274959292747383785189478174826894958127476192947512897571298593912374857471978269591928974518735891891723878 // অনেক বেশি অক্ষর
  3. 1232405762// অবৈধ ইনপুট (এর 0) ধারণ করে
  4. 112212// বর্তমান 11এবং 22বর্তমান কারণে ব্যর্থ
  5. 1232457621 // শুরু এবং নেতৃত্বের কারণে ব্যর্থ 1

5
আইএমও এই একটি সীমান্তরেখা প্রতারিত হয় এই
পিটার টেলর

1
বিটিডব্লিউ, একটি চ্যালেঞ্জ পোস্ট হওয়ার পরে সম্পাদনা করা নিরুৎসাহিত করা হয়।
নীল

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

আউটপুট জিআইএফ

এখানে চেষ্টা করুন

(বিরতি নেই, অসীম নয়)


হুম, পাইথের মধ্যে অসীমভাবে ফেরা / নিক্ষেপ করা বা লুপ করা সম্ভব নয়? অথবা এটি খুব বেশি বাইট লাগবে / তৈরি করা কি খুব বেশি সময়সাপেক্ষ? (বর্তমানে এটি সমস্ত সঠিক টেস্টকেসগুলির পাশাপাশি একই সাথে সমস্ত ব্যর্থ টেস্টক্যাসের ক্ষেত্রে একই কাজ করে And এবং এটির জন্য আউটপুটে যোগও করে 0) অবশ্যই এই প্রবেশের জন্য সবচেয়ে অপঠনযোগ্য কোড-স্নিপেটগুলির মধ্যে একটি আমার অনুমান gu :)
কেভিন ক্রুইজসেন

অনলাইনে অনুবাদক ঘুমের সময় আইও ফ্লাশ করে না যাতে এটি নজরে আসে না। আপনি বলেছিলেন যে আপনি একটি অসীম লুপ চেয়েছিলেন তাই আপনি সেখানে কী জিজ্ঞাসা করছেন তা আমি নিশ্চিত নই। "এটি কীভাবে ব্যর্থ হয় তা আপনার উপর নির্ভর করে" - আমি এর জন্য অপরিজ্ঞাত আচরণ করছি; কোডটি কিছু করতে পারে (যদিও এটি একই আচরণ করা উচিত) এছাড়াও আমি কিছু সম্ভাব্য এন্ট্রিগুলির তুলনায় এটি তুলনামূলকভাবে পঠনযোগ্য হওয়ার আশা করছি
ব্লু

4

স্পেসবিএএস - 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"

আপনি ESC চাপ না দেওয়া পর্যন্ত লুপিং রাখে। সঠিকভাবে অনুশীলন করতে ব্যর্থতা (ভুল ইনপুট - এই উদাহরণে 0 পদক্ষেপের একটি হিসাবে 0) মেদকে বাড়ে। জিআইএফ লুপস, প্রোগ্রামে এটি ঠিক তখনই থামায়।

#13স্পেসবিএএস সমতুল্য \nএবং স্ট্রিংগুলিতে আপনাকে লাইন ফিড অন্তর্ভুক্ত করতে দেয়।

এখানে চিত্র বর্ণনা লিখুন


1
"ফ্যাট": ডি ......
আদম ভারহেগি

2

জাভাস্ক্রিপ্ট (ES6), 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

জাভাস্ক্রিপ্ট (ES6), 210 বাইট

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

এটি কীভাবে বাদ 0এবং ডুপ্লিকেট সম্পর্কে নিয়ম পরিচালনা করে ?
মরগান থ্রাপ

4
@ মরগান'ভেন্তি 'থ্রাপ্পুচিনো আমি এই ধারণার মধ্যে ছিলাম যে অবৈধ ইনপুটগুলির সংজ্ঞায়িত আচরণের প্রয়োজন নেই, কারণ এটি বলছে How it fails in case of invalid input is completely up to you। আমি কেবল একটি অ্যানিমেশন প্রদর্শন করে অবৈধ ইনপুট পরিচালনা করি। : পি অন্যান্য বিদ্যমান উত্তরগুলির মধ্যে এটির কোনওটিই চেক করে নি, তবে ওপি সবে পোস্ট করা উত্তরটি করেছে, তাই তিনি আমাদের চেয়েছিলেন অবৈধ ইনপুট পরিচালনা করতে পারে।
ব্যবহারকারী 81655

"আমি কেবলমাত্র একটি অ্যানিমেশন প্রদর্শন করে অবৈধ ইনপুট পরিচালনা করি।: পি" লোল .. এটি দেখার এক উপায়। এক্সডি আমি প্রশ্নটি সম্পাদনা করব।
কেভিন ক্রুইজসেন 14

0

গণিত, 252 বাইট

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

কেউ জিআইএফ তৈরি করতে পারলে ভাল হত। একটি নোটবুক চালান।


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 বাইট

লোয়ার জন্য আমি জাভাতে প্রোগ্রামটি করার চেষ্টা করেছি। নিশ্চয়ই আমি গল্ফিং এবং রেজিক্সে বেশ খারাপ, তাই সম্ভবত এটি আরও গল্ফ করা যেতে পারে (অনেক?)। যাইহোক, এটি জাভাতে
Now . এখন প্রায় দুই বছর পরে এবং আমি জাভা ৮-তে কোডটি প্রায় অর্ধেক করে রেখেছি ved তবে আমি কেন কখনও ইনপুটটিকে বৈধতা দেওয়ার এবং একটি সম্পূর্ণ প্রোগ্রামের প্রয়োজনীয়তার বিষয়ে এই নিয়মগুলি তৈরি করেছিলাম, যদিও ...>> আমি ঘৃণা করি এখন আমার অতীত স্ব ..

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

জিআইফ:
(দ্রষ্টব্য: ওল্ড জিআইএফ, যেহেতু এটি এখন স্পষ্টভাবে 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(); এর সাথে অন্যান্য সমস্ত ক্রিয়াকলাপগুলি তখন খুব কম।
অ্যালেক্স মেইবার্গ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.