আপনার টার্মিনালে পাঠ্য অ্যানিমেট করুন


46

আপনার টার্মিনালে পাঠ্য অ্যানিমেট করুন

লক্ষ

লক্ষ্যটি হ'ল আপনার আউটপুটে "হ্যালো ওয়ার্ল্ড" স্ট্রিংটি "অ্যানিমেট" করা যাতে প্রতিটি অক্ষর একে অপরের পরে মূলধন হয়ে যায়।

প্রতিটি চিঠি মূলধন হওয়ার পরে আপনার প্রোগ্রামটি প্রস্থান করতে পারে।

উদাহরণ স্বরূপ;

# Iteration 1
Hello world

# Iteration 2
hEllo world

# Iteration 3
heLlo world

# Iteration 4
helLo world

# Iteration 5
hellO world

# Iteration 6 (note: it should capitilize the space char (ie: a break between iteration 5 and iteration 7)
hello world

# Iteration 7
hello World

# Iteration 8
hello wOrld

# Iteration 9
hello woRld

# Iteration 10
hello worLd

# Iteration 11
hello worlD

এটি কেবল স্ট্রিং একবারে অ্যানিমেট করা উচিত এবং প্রতিটি রাজ্যের মধ্যে 1 সেকেন্ড বিলম্ব হওয়া উচিত।

ইনপুট

কোনও ইনপুট প্রয়োজন হয় না, তবে "হ্যালো ওয়ার্ল্ড" অবশ্যই "অ্যানিমেটেড" স্ট্রিং হওয়া উচিত।

আউটপুট

"হ্যালো ওয়ার্ল্ড" স্ট্রিংটি অবশ্যই অ্যানিমেটেড হওয়া উচিত। এক ধরণের ওয়েভ অ্যানিমেশন তৈরি করতে আউটপুটটি অবশ্যই 1 লাইন হতে হবে। একটি খালি ট্রেলিং নতুন লাইন অনুমোদিত। জিআইএফ উদাহরণ;

https://i.gyazo.com/be12b693063b463540c5bf1f03d2454a.gif

আমি এটি একটি মেটাস্প্লিট ইউটিউব ভিডিওতে দেখেছি এবং ভেবেছিলাম এর প্রভাবটি খুব দুর্দান্ত ছিল, যা থেকে আমি জিআইএফটি রেকর্ড করেছি, তাই এটি একটু পিছিয়ে গেছে, তবে আমি আশা করি এটি আউটপুটটি সূক্ষ্মভাবে বর্ণনা করে

এটি , সর্বনিম্ন বাইট-কাউন্টটি বিজয়ী হিসাবে গণ্য হবে।

স্যান্ডবক্স লিঙ্ক


এটি ত্যাগ করে কোনও ত্রুটি দিয়ে থামতে পারে?
স্টিভি গ্রিফিন

অ্যানিমেশন যতক্ষণ না দেখা যায় ততক্ষণ স্টিওগ্রিফিন
ʰᵈˑ

আমি মনে করি না যে 1 সেকেন্ড বিলম্ব চ্যালেঞ্জকে আরও বাড়িয়েছে। আমাদের মতো একটি গুচ্ছ ছিল এবং প্রতিবার মনে হয় একই বয়লারপ্লেট যুক্ত হয়।
xnor

2
@ xnor আপনি কী এই বিলম্বের সময়কালটি স্পষ্টভাবে 1 সেকেন্ড বলে বোঝাতে চান, বা আপনি কোনও বিলম্ব বলতে মোটেই বোঝাচ্ছেন? পরে এটি কোনও অ্যানিমেশন হওয়ার পরে কোনও অর্থ হবে না ..
মেটোনিয়াম

1
@ মেটোনিম না, কেবলমাত্র লক্ষ্যটিতে বর্ণিত। যদি না আমি ভুল বুঝে থাকি। প্রতিটি অক্ষর কেবল একবার বাম থেকে ডানে একবার মূলধন করতে হবে, "হ্যালো" এর "এইচ" দিয়ে শুরু হয়ে "বিশ্বের" "ডি" দিয়ে শেষ হবে
ʰᵈˑ

উত্তর:


33

26 বাইট ভিম

ihello world<ESC>qq~gsul@qq0@q

ব্যাখ্যা (এখনও। জিআইএফ):

প্রথমত, আমাদের অবশ্যই 'হ্যালো ওয়ার্ল্ড' পাঠ্য প্রবেশ করানো উচিত। এই বেশ সহজ. এটা শুধু:

ihello world<ESC>

এই মুহুর্তে, 'ওয়ার্ল্ড'-এ কার্সারটি' ডি 'তে রয়েছে। পরবর্তী:

qq              " Start recording into register 'q'
  ~             " Swap the case of the character underneath the cursor, and move the cursor to the right
   gs           " Sleep for one second
     u          " Undo the last change (of swapping case).
      l         " Move one character to the right (Get it? 'l' == 'Right' because vim is intuitive!)
                " This will cause the error to break on the last character of the input.
       @q       " Call register 'q'
         q      " Stop recording
          0     " Move to the first character
           @q   " Call the recursive macro

আমি আরও দুটি 26 বাইট সংস্করণ পেয়েছি:

ihello world<ESC>qq~gsulq011@q
ihello world<ESC>011@='~gsul'<cr>

মানুষ যে দুর্দান্ত! আউটপুটটি এখানে: i.gyazo.com/52d0b9268446aed36ce7eb641c40ff6c.gif (এর অর্ধেকও হোক, গায়াজো রেকর্ডিং বন্ধ করেছে)
ʰᵈˑ

আমি ভাবি ~ না লুপটি ভেঙে যায় । আমি বিশ্বাস করি এটিই lকঠোর পরিশ্রম করে
ক্রিটসি লিথোস

@ ক্রিটিক্সিলিথোস আহ, এটি পরীক্ষা করার পরে মনে হচ্ছে আপনি ঠিকই আছেন ভাল কথা, আমি এটি সম্পাদনা করব
ডিজেএমসিএমহেম

1
নিশ্চিত করতে পারে - এটি কাজ করে।
সিগস্ট্যাকফোল্ট

15

পাইথন 2, 98 94 90 বাইট

for x in range(11):s='hello world';print'\r'+s[:x]+s[x:].capitalize(),;[1for y in' '*8**8]

-9 -4 বাইটস @ এলপিড্রো -4 বাইট ধন্যবাদ @ জোনাথান অ্যালান এবং @ রডকে ধন্যবাদ


3
পিপিসিজিতে আপনাকে স্বাগতম, প্রথম প্রথম পোস্ট সি:
রড

2
চমৎকার পোস্ট! এটি একই সাথে রাজধানী "এইচ" এবং "ডাব্লু" বলে মনে হচ্ছে যদিও repl.it/Fhii - এটি "এইচ"
-কে

1
মুদ্রণ সমস্যা সম্পর্কে, আপনি -uতর্ক করতে এবং ব্যবহারprint"\t"+s[:x]+s[x:].title(),; করতে পারেন (পিছনে কমা নোট করুন) । এবং এটি আপনার বাইট গণনা পরিবর্তন করবে না (কারণ যুক্তি +2 বাইট যোগ করবে)
রড

2
@ রড পতাকাটি একটি বাইট হিসাবে গণ্য হবে কারণ পাইথনের জন্য একটি গ্রহণযোগ্য প্রার্থনা python -c 'code here'। পতাকা সহ, প্রার্থনা হবে python -uc 'code here', যা এক বাইট ভিন্ন।
মেগো

1
খুব সুন্দর আপনার সংস্করণ, কিন্তু 95 বাইট এবং স্ক্রিন সাফ করে (উইন্ডোজ 7-64 এ আমি 2.7.8 দিয়ে পরীক্ষা করেছি)। এটি অনলাইনে চেষ্টা করুন অ্যানিমেশনটি দেয় না, কেবল লাইন বাই লাইন ফলাফল।
জোনাথন অ্যালান

12

কমোডোর 64, 168 162 137 133 বেসিক (এবং টোকানাইজড) বাইট ব্যবহার করা হয়েছে

 0s=1024:?"{control+n}{clear home}hello world":fOi=.to1:fOj=.to11:x=pE(s+j):pokes+j,x+64
 1x=pE(1023+j):pO1023+j,abs(x-64):pO1029,32:pO1035,32:fOz=.to99:i=.:nEz,j,i

এটিকে আসল সি or৪ বা এমুলেটরটিতে প্রবেশের জন্য আপনাকে বেসিক কীওয়ার্ড সংক্ষেপণগুলি ব্যবহার করতে হবে (বা প্রোগ্রামটি কমোডোর 128 এ প্রবেশ করুন এবং এটি আবার সি 64 মোডে লোড করুন, যদিও এটি 128 তেও কাজ করবে)। {control+n}শুধুমাত্র উদ্বোধনী উদ্ধৃতি পর কাজ / প্রদর্শন করা হবে। এটি সংক্ষিপ্তরূপে chr$(14)এবং তাই কিছু বাইট সংরক্ষণ করে এবং অক্ষরটি ব্যবসায়ের মোডে বা উপরের / লোয়ার কেসগুলিতে সেট করে ।

আমি আপনাকে সংক্ষেপে কিছু সংযোজন করেছি যাতে আপনি। {clear home}চরিত্র টিপে দ্বারা তৈরি করা হয় Shiftএবং CLR/HOMEখোলার উদ্ধৃতি চিহ্ন পর কী।

উদাহরণস্বরূপ উদ্দেশ্যে নিরীক্ষণযোগ্য তালিকা নীচে প্রবেশ করা যেতে পারে:

 0 let s=1024
 1 print chr$(14); chr$(147); "hello world"
 2 for i=0 to 1
 3  for j=0 to 11
 4   let x=peek(s + j)
 5   poke s + j, x + 64
 6   let x=peek(1023 + j)
 7   poke 1023 + j, abs(x - 64)
 8   poke 1029, 32
 9   poke 1035, 32
10   for z=0 to 99
11    let i=0
12   next z
13  next j
14 next i

এটি পিটিএসসিআইআই চরসেটটি বিজনেস মোডে (আপার / লোয়ার কেস) স্যুইচ করে এবং হ্যালো ওয়ার্ল্ড স্ট্রিংটি স্ক্রিনের শীর্ষ লাইনে মেমরির অবস্থান $ 0400 এ অবস্থিত লিখে কাজ করে, এটি তার পরের জন্য প্রতিটি অবস্থানে মান গ্রহণ করবে সেখান থেকে 11 বাইট এবং প্রতিটি মান 64 (আপার ক্ষেত্রে সমতুল্য) দ্বারা বৃদ্ধি করুন। যদি জে কাউন্টারটি 0 হয় তবে এটি পূর্বের মেমরির অবস্থানটি আবার 64 দ্বারা হ্রাস করতে লাইন 2 এ একটি রুটিনকে কল করে।

লাইন 3 একটি বিরতি, এটি স্থান $ 0405 এবং 40 040b স্থানে একটি স্থানও লিখে দেয়, এটি একটি বাগ ফিক্স (যা সম্ভবত কিছু বাইট সংরক্ষণ করতে অপসারণ করা যেতে পারে)।

কমোডোর সি 64 অ্যানিমেটেড হ্যালো ওয়ার্ল্ড


আমার যুক্ত করা উচিত fori=0to1step0... nextiমূলত while(true){...}আরও একটি আধুনিক ভাষায় এক ধরনের অসীম (গোটো-কম) লুপ তৈরি করা হচ্ছে ।
শন বেবারস

1
আপনি কেন অসীম লুপের পরিবর্তে একটি গোটো ব্যবহার করবেন না? এমনকি যে 2 টি নতুন লাইন যুক্ত করতে হবে তা দিয়েও এটি বাইটগুলি সংরক্ষণ করতে পারে। এছাড়াও র্যাম বাইটগুলি আপনার কোডের বাইটগুলির সংখ্যার মতো নয়।
মিল্কিওয়ে 90

কারণ GO TOনিষিদ্ধ করা হয়েছে, ডান ;-) CLRFRE(0)
নিষ্ক্রিয় ফাংশনটিতে

1
ওহ এর জন্য দুঃখিত
মিলকিওয়াই 90

11

সি #, 230 215 193 161 135 134 130 বাইট

এটি সি # তাই এটি দীর্ঘ দীর্ঘ! :-( তবে কিছু সহায়তা এবং অনুসন্ধানের পরে, আমি (এবং অন্যরা, সত্যিই) ইতিমধ্যে ঠিক 100 বাইট অপসারণ করতে সক্ষম হয়েছি।

Golfed

()=>{for(int i=1;;){var b="\rhello world".ToCharArray();b[i++]-=' ';System.Console.Write(b);System.Threading.Thread.Sleep(1000);}}

Ungolfed

class P
{
    static void Main()
    {
        for (int i = 1;;)
        {
            var b = "\rhello world".ToCharArray();
            b[i++] -= ' ';
            System.Console.Write(b);
            System.Threading.Thread.Sleep(1000);
        }
    }
}

স্ক্রিনশট

1 সেকেন্ড দেরি সহ অ্যানিমেশন যদিও এটি লুপিং এবং দ্রুত করার সময় অনেক বেশি ভাল দেখায় ..

আপডেট

  • পরিবর্তে 15 টি বাইট হারিয়ে গাড়ীর রিটার্ন ব্যবহার করে Clear()আমাকে System.Consoleকোথাও ইনলাইন ব্যবহার করে প্রতিস্থাপনের অনুমতি দেয় ।

  • ল্যাম্বডা 23 ডি বাইট সংরক্ষণের মাধ্যমে প্রোগ্রামটি প্রতিস্থাপন করা হয়েছে @ ডেভিচ রিচারকে ধন্যবাদ

  • এটি এই মুহুর্তে @devRicher এর সাথে এক ধরনের সহযোগিতার হয়ে ওঠে , তার কয়েকটি পরামর্শের জন্য আমি আরও 32 বাইট হারাতে পেরেছি!
  • দ্বারা ধন্যবাদ 2 সত্যিই স্মার্ট এবং আকর্ষণীয় পরামর্শ @Kratz আমি প্রতিস্থাপন করতে পরিচালিত new string(b)সঙ্গে bএবং b[i]=char.ToUpper(b[i])সঙ্গে b[i]-=' 'আমার অন্য 26 বাইট সংরক্ষণ!
  • @ স্নোফায়ারকেi++ ধন্যবাদ সরিয়ে 1 বাইট কম
  • 4 বাইট কম ক্যারেজ সরিয়ে স্ট্রিংয়ের শুরুতে ফিরে আসা এবং i<11আমার forলুপ থেকে সরিয়ে

1
পরিবর্তন class P{static void Main(){ ... }}করার জন্য ()=>{ ... }কয়েক বাইট বন্ধ স্নিপ করতে। পিপিসিজি উত্তর হিসাবে ফাংশন গ্রহণ করে, তাই একটি ল্যাম্বডা ভাল কাজ করে।
devRicher

@ দেবরিচার আহ আমি দেখছি, এর আগে আমি কখনও লাম্বা ব্যবহার করিনি, তবে এটি একটি দুর্দান্ত উন্নতির মতো বলে মনে হচ্ছে। ধন্যবাদ!
মেটোনিয়াম

আপনি কীভাবে এগুলি ব্যবহার করবেন (বা চান না) জানেন না, তবে এটি এখনও সাধারণের জন্য জরিমানা void g(){ ... }
devRicher

char g = string j[x]50 টি বাইট সংরক্ষণের জন্য আপনি অ্যারে সূচকগুলি ( ) দিয়ে স্ট্রিংগুলি অ্যাক্সেস করতে পারবেন :()=>{var s="Hello world";for(int i=1;i<11;i++){string h = s;h[i]=char.ToUpper(s[i]);System.Console.Write(h+"\r");System.Threading.Thread.Sleep(1000);}}
ডিভ্রিচার

1
আপনি ক্লজটির জন্য বৃদ্ধিটি সরিয়ে এবং অ্যারে অ্যাক্সেসের মতো এটিকে রেখে অন্য একটি বাইট সংরক্ষণ করতে পারেন b[i++]-=' '। এটি কাজে আসবে, কারণ তখন আপনি লুপের জন্য শর্তটি সরিয়ে ফেলতে এবং লিখতে পারেন for(int i=0;;)। ওপি মন্তব্য নির্দিষ্ট, যে প্রোগ্রাম, একটি ত্রুটি সঙ্গে থেকে প্রস্থান করতে পারে, তাই আপনি একটি IndexOutOfRangeException অনুমতি দিতে পারেন
Snowfire

10

পাওয়ারশেল, 126 119 107 104 বাইট

'Hello world';$s='hello world';1..10|%{sleep 1;cls;-join($s[0..($_-1)]+[char]($s[$_]-32)+$s[++$_..11])}

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

সংশোধনী (সম্ভবত অনেকগুলি হতে পারে):

$s.Lengthকনস্ট 1011 এ পরিবর্তন করুন

পুনর্গঠিত স্ট্রিং বিল্ডার, 1 অ্যাড স্টেট স্টেটমেন্ট সরানো হয়েছে এবং এর ++$sপরিবর্তে ব্যবহার করা হয়েছে ($s+1), কিছু অ্যাডস অ্যাডমবার্কবার্ককে ধন্যবাদ বাঁচাতে

অ্যাডমবর্কবার্ক দেখায় যে মাত্র দু'বার স্ট্রিং ব্যবহার করা আসলে এনক্যাপসুলেটিংয়ের চেয়ে খাটো এবং তারপরে .ToLower()'আইএনইং - যা ভার্জোজ পাওয়ারশেলটি কীভাবে হয় তার সম্পর্কে অনেক কিছু বলে, -3!


মূলত স্ট্রিংয়ের দৈর্ঘ্যের মধ্য দিয়ে লুপ করুন, তিনটি অংশের একটি অ্যারে গঠন করুন, প্রাক-রাজধানী, মূলধন এবং উত্তর-মূলধনটি, মধ্য বর্ণ থেকে 32 দূরে নিয়ে যান, তারপরে একটি বড় অক্ষরে ফিরে রূপান্তর করুন, ভাগ্যক্রমে এটি হয় না স্থানকে দৃশ্যমান চরিত্রে পরিণত করবেন না, আমি আশা করি এটি গ্রহণযোগ্য?


2
আপনি কেবল স্ট্রিং মুদ্রণ বদলে সেটিকে সংরক্ষণ করে সামনের বন্ধ তিনটি বাইট সংরক্ষণ করতে পারবেন $sএবং .ToLower()এটা ing। -'Hello world';$s='hello world';
অ্যাডমবর্কবর্ক


9

সিপি -1610 বিধানসভা, 50 DECLEs = 63 বাইট

এই কোড একটি অন চালানো যাবে দেয়ার উদ্দেশ্যে করা হচ্ছে Intellivision

একটি সিপি -1610 অপকোডটি 10-বিট মান সহ এনকোড করা হয়েছে, যা একটি 'ডিসেল' হিসাবে পরিচিত। এই প্রোগ্রামটি D 4800 থেকে শুরু হয়ে $ 4831 এ শেষ হয়ে 50 টি ডেস্কলই দীর্ঘ।

                                  ROMW  10          ; use 10-bit ROM
                                  ORG   $4800       ; start program at address $4800

                          main    PROC
4800 0002                         EIS               ; enable interrupts (to enable display)

4801 0001                         SDBD              ; load pointer to string in R4
4802 02BC 0026 0048               MVII  #@@str, R4

4805 02A2                         MVI@  R4,     R2  ; R2 = length of string
4806 0091                         MOVR  R2,     R1  ; R1 = uppercase counter

4807 02BD 0214            @@loop  MVII  #$214,  R5  ; R5 = video memory pointer
4809 0093                         MOVR  R2,     R3  ; R3 = character counter

480A 02A0                 @@next  MVI@  R4,     R0  ; R0 = next character
480B 0338 0020                    SUBI  #32,    R0  ; minus 32 -> character #
480D 004C                         SLL   R0,     2   ; multiply by 8 to get the
480E 0048                         SLL   R0          ; correct GROM card
480F 03F8 0007                    XORI  #7,     R0  ; add 7 (for white)

4811 014B                         CMPR  R1,     R3  ; uppercase? ...
4812 020C 0002                    BNEQ  @@draw

4814 0338 0100                    SUBI  #256,   R0  ; ... yes: sub 32*8

4816 0268                 @@draw  MVO@  R0,     R5  ; draw character
4817 0013                         DECR  R3          ; decrement character counter
4818 022C 000F                    BNEQ  @@next      ; process next character or stop

481A 0001                         SDBD              ; R0 = spin counter to wait ~1 second
481B 02B8 0038 00D3               MVII  #$D338, R0  ;    = 54072 = 13518 * 60 / 15
                                                    ; (assuming 13518 cycles per frame)

481E 0010                 @@spin  DECR  R0          ; 6 cycles
481F 022C 0002                    BNEQ  @@spin      ; 9 cycles
                                                    ; -> 15 cycles per iteration

4821 0114                         SUBR  R2,     R4  ; reset pointer to beginning of string
4822 0011                         DECR  R1          ; decrement uppercase counter
4823 022C 001D                    BNEQ  @@loop      ; process next iteration or stop

4825 0017                         DECR  PC          ; infinite loop

4826 000B 0068 0065 006C  @@str   STRING 11, "hello world"
482A 006C 006F 0020 0077
482E 006F 0072 006C 0064
                                  ENDP

আউটপুট

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


7

এমএটিএল , 30 বাইট

11:"10&Xx'hello world't@)Xk@(D

এমএটিএল অনলাইন এ চেষ্টা করুন !

11:              % Push [1 2 ... 11]
  "              % For each k in [1 2 ... 11]
  10&Xx          %   Pause for 10 tenths of a second and clear screen
  'hello world'  %   Push this string
  t              %   Duplicate
  @)             %   Get the k-th character from the duplicated string
  Xk             %   Convert to uppercase
  @(             %   Write into the k-th position of the string
  D              %   Display
                 % Implicit end

5

পিএইচপি, 76 74 71 বাইট

আপনাকে @ hd ধন্যবাদ পুরো বিলম্ব হওয়ার জন্য এবং এর কোনও ভগ্নাংশের জন্য ধন্যবাদ!
2 বাইটের জন্য @ ব্যবহারকারী 63956 এবং 3 বাইটের জন্য @aross ধন্যবাদ Thanks

for(;$c=($s="hello world")[$i];sleep(print"$s\r"))$s[$i++]=ucfirst($c);

সাথে চালাও -nr


1
এর মাধ্যমে আপনি 2 বাইট সংরক্ষণ করতে পারেন sleep(print"$s\r")
ব্যবহারকারী 63956


4

সি, 97 106 বাইট প্রত্যাহার করে

পালানো অক্ষরগুলির সাথে 1 বাইট হিসাবে গণনা করা হয়

char*a="HELLO\0WORLD\xED";b,c;m(){for(b=0;b<156;putchar(a[c]+32*(b/12^c||c==5)))(c=b++%12)||fflush(sleep(1));}

দ্রষ্টব্য: আমি লিঙ্কযুক্ত টিআইওতে সময় বিলম্বের বিষয়ে মন্তব্য করেছি কারণ আউটপুট প্রদর্শিত হওয়ার আগে এটি সমাপ্তির জন্য অপেক্ষা করে, এটি গাড়ীর রিটার্নকেও স্বীকৃতি দেয় এবং নতুন লাইন রাখে বলে মনে হয় না। এছাড়াও, আপনি যদি উইন্ডোজে থাকেন তবে ঘুমটি সেকেন্ডের পরিবর্তে মিলিসেকেন্ডে থাকে, তাই sleep(1)হওয়া উচিত sleep(1000)

দ্রষ্টব্য 2: আউটপুট বাগগুলি লোড না করা পর্যন্ত আমি এই এন্ট্রিটি মুহুর্তের জন্য প্রত্যাহার করেছি।


কোনও কারণে, এটি আমার মেশিনে কিছু আউটপুট দেয় না
ক্রিটিক্সি লিথোস

আপনি যদি উইন্ডোতে থাকেন তবে আপনাকে বিলম্ব পরিবর্তন করতে হবে, এটি একটি ক্যারিজ রিটার্নেও শেষ হবে যাতে আপনি 130 থেকে 129 পরিবর্তন করতে চাইতে পারেন তাই এটি শেষ পুনরাবৃত্তির সময় এটি মুদ্রণ এড়ায়।
অহমোন

আমার জন্য এই প্রোগ্রামটি একেবারেই শেষ হয় না এবং এটি কোনও কিছুই আউটপুট দেয় না। ^Cএটি বন্ধ করার জন্য আমাকে নিজেই এটি করতে হয়েছিল। (এছাড়াও আমি
ম্যাকে

আমি বিশ্বাস করি এটি একটি প্রিন্ট বাফার সমস্যা, আমি আপাতত আমার প্রবেশিকাটি প্রত্যাহার করব।
অহমোন

4

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

অ্যাপসিলার্সকে 8 বি ধন্যবাদ সংরক্ষণ করা হয়েছে

_=>a=setInterval("b=[...`hello world`],c.clear(b[d]=b[d].toUpperCase(++d>10&&clearInterval(a))),c.log(b.join``)",1e3,c=console,d=0)

ব্যাখ্যা

এটি কোনও যুক্তি ছাড়াই একটি ফাংশন তৈরি করে, যা স্ট্রিংকে hello worldঅক্ষরের অ্যারেতে বিভক্ত করে এবং d+1তম অক্ষরকে বড় করে তোলে । dএটি এমন একটি পাল্টা যা 0প্রতিবারের মতো শুরু হয় এবং বর্ধিত হয়।

ব্যবহার

f=_=>a=setInterval("b=[...`hello world`],c.clear(b[d]=b[d].toUpperCase(++d>10&&clearInterval(a))),c.log(b.join``)",1e3,c=console,d=0)
f()

চতুর, আমি এটি আপডেট করব।
লুক

এছাড়াও, আমি এটি কোনও ফাংশন করার কোনও কারণ দেখতে পাচ্ছি না, যেহেতু এটি কোনও ইনপুট নেয় না - কেবল কোড চালান, তাই না?
অ্যাপসিলাররা

প্রশ্নটি বলছে এটি একটি প্রোগ্রাম হওয়ার কথা, তবে সেক্ষেত্রে আপনি কোনও ফাংশনও জমা দিতে পারেন। কোড স্নিপেটগুলি সাধারণত অনুমোদিত নয়।
লুক

এটি দুর্দান্ত, জিজি!
ʰᵈˑ

আপনি কি এই ক্ষেত্রে একটি অনুমোদিত "কোড স্নিপেট" বনাম কোনও অনুমোদিত "প্রোগ্রাম" বনাম আপনার বোঝার মধ্যে পার্থক্য করতে পারবেন? আপনি শুধু নেতৃস্থানীয় মুছে ফেলেন _=>আপনি কি একটি সম্পূর্ণ প্রোগ্রাম আছে (যেমন, যদি আপনি এটি একটি ফাইল আটকে, Node.js সফলভাবে সমাপ্তির চালানো হবে)। "কোড স্নিপেটস" এর বিরুদ্ধে আমার নিষেধাজ্ঞার লিখিত কোডের বিরোধী যা কিছু ইনপুট ভেরিয়েবল হিসাবে iস্পষ্টভাবে গ্রহণ করে, যেমন "যদি আমরা ধরে নিই যে ইতিমধ্যে ইনপুট রয়েছে, আমরা করতে পারি ..." যা এখানে ঘটছে না, যেহেতু স্পষ্টভাবে এখানে রয়েছে কোনও ইনপুট নেই।
অ্যাপসিলাররা

4

নুডেল , 22 বাইট

”<8@\|DḶ|\6þıHḶƥɲSḍsɲS

চেষ্টা করে দেখুন :)


কিভাবে এটা কাজ করে

”<8@\|DḶ|\6þ           # Displays the string "hello¤world".
”<8@\|DḶ|\6            # Decompresses to the array ["h", "e", "l", "l", "o", "¤", "w", "o", "r", "l", "d"] and pushes it on top of the stack.
           þ           # Pushes a copy of the array to the screen which since is an array is done by reference.

            ı          # Makes the array on the top of the stack the new stack.

             HḶƥɲSḍsɲS # Loops eleven times creating the animation.
             H         # Pushes the string "H" on to the top of the stack.
              Ḷ        # Consumes the "H" that gets evaluated as a base 98 number which comes out to eleven.
               ƥ       # Move the stack pointer up one.
                ɲS     # Switch the case of the top of the stack which will show up on the screen because the array is done by reference.
                  ḍs   # Delay for one second.
                    ɲS # Switch the case back.
                       # Implicit end of the loop.

স্নিপেট একটি 25 বাইট সংস্করণ ব্যবহার করে যা অবিচ্ছিন্নভাবে লুপ হয়।

<div id="noodel" cols="10" rows="2" code="”<8@\|DḶ|\6þıḷʠ*HḶƥɲSḍsɲS" input=""/>
<script src="https://tkellehe.github.io/noodel/release/noodel-2.5.js"></script>
<script src="https://tkellehe.github.io/noodel/ppcg.min.js"></script>



3

পার্ল 6 , 65 61 বাইট

for 3..12 ->\i{sleep say "\echello world".&{S:nth(i)/./{$/.uc}/}}

(sleep say S:nth(3+$++)/./{$/.uc}/with "\echello world")xx 11

জিআইএফ: এখানে চিত্র বর্ণনা লিখুন

কিভাবে এটা কাজ করে

এএনএসআই এস্কেপ সিকোয়েন্সটি \ecস্ক্রিনটি সাফ করে।
প্রতিটি পুনরাবৃত্তি, iহার্ড-কোডেড স্ট্রিংয়ের 'তম অক্ষরটি এর উচ্চ-কেস সংস্করণ দ্বারা প্রতিস্থাপিত হয়। সবসময় ফাংশন আয় , যা ঘুম ফাংশন যা ব্যাখ্যা করে এটা কাছে হস্তান্তর করা হয় দ্বিতীয়।
sayTrue1


3

রুবি, 82 81 বাইট

12.times{|a|$><<?^H*11;'Hello world'.chars{|y|$><<((0!=a-=1)?y:y.upcase)};sleep 1}

^ এইচটি আসকি 8 (ব্যাকস্পেস), এবং এটি কেবল 1 বাইট।



3

গণিত, 130 128 123 110 108 বাইট

Dynamic@o
s="hello world";i=1;t=StringTake;Do[o=t[s,{1,i-1}]<>Capitalize@t[s,{i}]<>t[s,{++i,11}];Pause@1,11]

ব্যাখ্যা: i=111 থেকে 11 পর্যন্ত, "হ্যালো ওয়ার্ল্ড" এর 1 ম থেকে (i-1) character অক্ষরে "hello world"[i]মুদ্রণ করুন , মূলধন করুন , তারপরে বাকী স্ট্রিংটি মুদ্রণ করুন, iএকই সাথে বাড়ানো হবে।


3

জাভা 215 212 204 203 বাইট

interface A{static void main(String z[])throws Exception{for(int i=0;i<10;i++){char[]b="helloworld".toCharArray();b[i]=Character.toUpperCase(b[i]);System.out.println(new String(b));Thread.sleep(1000);}}}

Ungolfed:

 interface A {
 static void main(String z[]) throws Exception {
    for (int i = 0; i < 10; i++) {
        char[] b = "helloworld".toCharArray();
        b[i] = Character.toUpperCase(b[i]);
        System.out.println(new String(b));
        Thread.sleep(1000);
    }
  }
}

1
এটি interface A(স্থান সহ) হওয়া উচিত নয় ? এছাড়াও আপনি ,এবং এর মধ্যে স্থান সরাতে পারেন Character.toUpperCase
NoOneIs এখানে

2
সাইটে স্বাগতম!
ডিজেএমসিএমহেম

কুডোস @ ননওআইনে এখানে 3 পয়েন্টের জন্য
ডেভেলপিং

ধন্যবাদ @ ডিজেএমসিহেম, সর্বদা চ্যালেঞ্জগুলির মধ্য দিয়ে পড়া পছন্দ করে এবং শেষ পর্যন্ত তার উত্তর পেয়ে গেল!
ডেভেলপিং

3

আর , 106 103 বাইট

x=el(strsplit("hello world",""))
for(i in 1:11){y=x;y[i]=toupper(y[i]);cat('\f',y,sep='');Sys.sleep(1)}

কেবল একটি সরল লুপ, এর সাহায্যে কনসোলটি সাফ করা cat('\f')কিছুটা সিস্টেম-নির্ভর বলে মনে হচ্ছে তবে এর থেকে ভালতর উপায় সম্পর্কে আমি অবগত নই।


আমি এটি ব্যবহার করে আউটগল্ফ করার চেষ্টা করেছি utf8ToInt। এটি কাজ করে না, বিশেষ কেস হিসাবে স্থানটি পরিচালনা করা দরকার। প্রক্রিয়াটিতে আমি আবিষ্কার করেছিলাম যে cat("\014")আরও ভাল কাজ করবে বলে মনে হয়েছে যেখানে কাজ cat("\f")হয়নি work তবে টিআইও
জেসি

2

সি, 122 বাইট

i;f(){char s[]="Hello world\r";for(i=0;i<11;i++){s[i]=toupper(s[i]);s[i-1]=tolower(s[i-1]);printf(s);fflush(0);sleep(1);}}

সি # এর চেয়ে কম: ডি


1
শেষ ফ্রেমটি দৃশ্যমান হওয়ার জন্য আপনাকে আপনার লুপের i<11পরিবর্তে করণীয় করতে হবেi<10
ক্রিটিকি লিথোস

2

পার্ল, 75 বাইট

sleep print"\33c".("hello world"=~s/(.{$_})(.)(.*)/$1\U$2\E$3\n/r)for 0..10

ESCcকনসোলটি সাফ করার জন্য এবং ANSI কোড ব্যবহার করে প্রতিটি পুনরাবৃত্তির উপরের বাম দিকে কার্সারটি সরানো, তবে \nলাইন বাফারটিতে পুরো অ্যানিমেশনটি হারিয়ে যাওয়া এড়াতে প্রতিস্থাপনের স্ট্রিংয়ের শেষে এখনও দরকার ।

print1 এর মান ফেরত দেওয়ার জন্য একটি সফল কল , যা সরাসরি যেতে পারে sleep


আপনি এটি ব্যবহার করতে পারেন $`এবং এতে $'কয়েকটি বাইট সংরক্ষণ করতে পারেন (.{$_})(.)(.*)(এটি কোনও টার্মিনালে কাজ করবে না, তবে এটি কোনও সমস্যা নয়)। এটি প্রয়োজন একটু পরিবর্তন বিট আপনার কোড যদিও বাকি: "hello world"=~s/./sleep print"\33c$`\U$&\E$'\n"/ger। (আমি প্রায় এই সঠিক কোডটি লিখেছি, তারপরে কেউ এখনও কোনও পার্ল উত্তর পোস্ট করেছে কিনা তা সন্ধান করার সময় আমি আপনার খুঁজে পেয়েছি)। এবং বাইটেকাউন্ট সম্পর্কে একটি সামান্য বিশদ: আপনি একটি বাইট সংরক্ষণ করার জন্য একটি লিটারেরাল নিউলাইন ব্যবহার করতে পারেন, এবং সম্ভবত কিছু ধরণের লিটারাল \33c(যদিও শেষেরটি সম্পর্কে খুব বেশি নিশ্চিত নন)।
দাদা

2

স্মাইলব্যাসিক, 90 71 বাইট

FOR I=0TO 10CLS?"hello world
LOCATE I,0?CHR$(CHKCHR(I,0)-32)WAIT 60NEXT

2

জেলি , 24 21 বাইট

”Æ⁹Œu⁸¦ȮœS
“½,⁻⁸3»Jç€

এটি একটি নীলাদিক লিঙ্ক / ফাংশন যা STDOUT- এ প্রিন্ট করে। এটি সম্পূর্ণ প্রোগ্রাম হিসাবে কাজ করে না।

কোড টিআইওতে পরীক্ষা করা যায় না; এটি নিয়ন্ত্রণের অক্ষর ব্যবহার করে এবং টিআইওর কোনও টার্মিনাল এমুলেটর নেই (এখনও)।

কিভাবে এটা কাজ করে

“½,⁻⁸3»Jç€  Niladic link. No arguments.

“½,⁻⁸3»     Index into Jelly's dictionary to yield "hello world".
       J    Indices; yield [1, ..., 11].
        ç€  Apply the helper link to each index, with right arg. "hello world".


”Æ⁹Œu⁸¦ȮœS  Dyadic helper link. Left argument: i. Right argument: "hello world"

Ӯ          Set the return value to '\r'.
  ⁹         Set the return value to "hello world". Implicitly prints '\r'.
   Œu⁸¦     Uppercase the i-th letter.
       Ȯ    Print.
        œS  Sleep "hello world" seconds. (Strings are cast to Boolean.)

(Strings are cast to Boolean.)বোকা!
এরিক আউটগল্ফার

2

সি, 122 বাইট

অনুশীলন হিসাবে, আমি অন্যান্য উত্তরগুলির তুলনায় আরও অনুকূল আউটপুট ফর্ম্যাটটি সরবরাহ করতে এটি লিখেছিলাম। এছাড়াও এটির অর্থ কার্সার বিরতি দেওয়ার সময় সর্বাধিক বড় আকারের অক্ষরের পরে বসেছিল।

main(){
    char*p=".Hello world\rH";
    write(1,p+1,13);
    do{
        sleep(1);
        *p=8;
        p[1]|=32;
        p[2]^=(p[2]>32)*32;
        write(1,p++,3);
    }while(p[4]);
}

(নিউলাইনস এবং ইনডেন্টেশনস কসমেটিক এবং বাইট গণনার অংশ নয়)

এখন, কিছু পাঠক লক্ষ করতে পারেন যে আধুনিক মেশিনগুলিতে চালনার জন্য এর জন্য কিছু ম্যাসেজ করা প্রয়োজন (যাদুর উদ্দীপনাটি -static -Wl,-N) তবে সি এর বাস্তব বাস্তবায়ন যেভাবে আচরণ করত তাই আমার মনে হয় এটি বৈধ। এটি অক্ষরের সেটটি ASCII হিসাবেও ধরে নিয়েছে এবং এটি কোনও অনুবর্তনযোগ্য নতুন লাইন মুদ্রণ করে না।

বোনাস: একটি EBCDIC সংস্করণের জন্য, আপনি এর 8সাথে 22এবং এর 64সাথে প্রতিস্থাপন করতে পারেন 32এবং p[1]এবং এর জন্য যুক্তিটি স্যুইচ করতে পারেন p[2]। একটি নন-ইসিবিডিডিক সিস্টেমে পরীক্ষা করতে, আপনি সংকলন করতে পারেন -funsigned-char -fexec-charset=cp037

আউটপুট 43 বাইট: Hello world«H‹hE‹eL‹lL‹lO‹o ‹ W‹wO‹oR‹rL‹lD


2

স্কালা, 92 বাইট

val h="hello world"
0 to 10 map{i=>print("\b"*99+h.updated(i,h(i)toUpper))
Thread sleep 999}

Ungolfed

val h="hello world"    //declare a variable h with the string "hello world"
0 to 10                //create a range from 0 to 10
map { i=>              //loop with index i
  print(                 //print
    "\b" * 99              //99 backspace chars
    + h.updated(           //and h with
      i,                     //the i-th char
      h(i).toUpper           //replaced with the i-th char in uppercase
    )     
  )
  Thread sleep 999       //sleep 999 ms
}

1
+1 এর জন্যh(i)toUpper
সর্বদা

2

ব্যাচ, 184 বাইট

@echo off
for %%h in (Hello hEllo heLlo helLo hellO hello)do call:c %%h world
for %%w in (World wOrld woRld worLd worlD)do call:c hello %%w
exit/b
:c
timeout/t>nul 1
cls
echo %*

কৌতূহলজনকভাবে কমান্ড লাইনটি timeout/t>nul 1কোনও দুর্ঘটনাক্রমে নতুন লাইন না থাকলে দুর্নীতিগ্রস্থ হয়, সুতরাং আমি ফাইলটির শেষে এটিকে রাখতে পারি না।


2

রুবি, 108 বাইট

প্রথমবার, প্রথম বর্ষের ছাত্র। এটি কোনও agগল নয় তবে আমি অন্তত কিছুটা গর্বিত।

12.times{|i|sleep(0.1); puts "\e[H\e[2J", "hello world".sub(/(?<=.{#{Regexp.quote(i.to_s)}})./, &:upcase);}

2

পাস্কাল, 187 152 বাইট

সবচেয়ে দক্ষ বা সংক্ষিপ্ততম না, তবে বেশ ভাল কাজ করে!

uses crt,sysutils;label R;const X:Word=1;P='hello world';begin
R:clrscr;write(P);gotoxy(X,1);write(upcase(P[X]));sleep(999);X:=X*Ord(X<11)+1;goto R
end.

পরীক্ষিত এবং ফ্রি পাস্কল সংকলক 2.6+ এ কাজ করে।

35 বাইট সংরক্ষণ করার জন্য @ মান্যাটওয়ার্ককে ধন্যবাদ !


আমি ফাইলটি সংকলন করতে এবং এটি উইন্ডোতে চালাতে http://www.onlinecompiler.net/pascal ব্যবহার করেছি ।
এখনও পর্যন্ত এটির সাথে কোনও সমস্যা দেখেনি।


UpCaseপুরানো টার্বো কাল থেকে একটি ফাংশন বিদ্যমান। (সেখানে এটি কেবল পরিচালনা করেছে Char, তবে ফ্রি পাস্কালে এছাড়াও স্ট্রিংগুলি পরিচালনা করে))
মনটাক

বেশ কয়েকটি ছোট ছোট টুইট: এক্স Word(বা Byte) ঘোষণার জন্য যথেষ্ট ; পি তৈরি করুন constযাতে এটি আরম্ভের মান থেকে টাইপ করে; সেখানে থাকাকালীন পৃথক varকীওয়ার্ড থেকে মুক্তি পেতে এক্সকে একটি প্রাথমিক ধ্রুবক করুন (এটি সমস্ত পাস্কাল ভেরিয়েন্টে কাজ না করে তবে ফ্রি পাস্কেলে অবশ্যই হয়); ClrScrউপরের বাম কোণে লাফিয়ে ব্যবহার করুন ; প্রতিস্থাপন যে ifএকটি একক অভিব্যক্তি সঙ্গে X:=X*Ord(X<11)+1পেস্টবিন.এফএফাইএক্সকেস
মানটওয়ার্ক

আমি সত্যিই এটি জানতাম না const X:Word=1;P='hello world';এবং এটি const X:Word=1;P='hello world';সম্ভব ছিল। আমি টার্বো প্যাসকেল 7 এ পাসক্যাল শিখেছি যা এর সাথে সামঞ্জস্য হতে পারে না। এবং সম্পূর্ণরূপে ভুলে গেছি upcase। আপনাকে অনেক ধন্যবাদ!
ইসমাইল মিগুয়েল

2

সি 120 110 104 96 বাইট

f(){char *j,s[]="\rhello world";for(j=s;*++j;*j-=32,printf(s),*j+=32,fflush(0),sleep(‌​1));}

উদার সংস্করণ

void f()
{
  char *j;
  char s[]="hello world";
  j=s; 

   for (;*j;j++)
   {
      *j-=32;  
       printf(s); // print the string and right after change the same char to lower case
       *j+=32;
      fflush(0);
      sleep(1);
   }

}

@ পাক কিছু বাইট সংরক্ষণ করার জন্য ধন্যবাদ, দুর্দান্ত ধারণা। :)

@ পাক @ কার্লনাপফ আপনার ইনপুটগুলির জন্য ধন্যবাদ ছেলেরা।

এখনও ছোট করা যায় !? :)


ব্যবহার করুন -=এবং +=। এছাড়াও, একটি পয়েন্টার ভেরিয়েবল হয়ত সংরক্ষণ করতে পারে []তবে আমি নিশ্চিত নই।
কার্ল ন্যাপফ

1
চর * জ; ফ () {চর এস [] = "হ্যালো ওয়ার্ল্ড"; এর জন্য (জে = এস; * জে; জে ++) {* জে = = 32; প্রিন্টফ ("\ r% s", s); * জে + = 32; fflush (0); ঘুম (1);}} (103 অক্ষর)

1
পূর্ববর্তী মন্তব্যের পিছনে ধারণা: এটিকে আবার প্রিন্টফের পরে ছোট করে রাখুন, তারপরে আপনাকে জে -1 উপস্থিত আছে কিনা তা পরীক্ষা করে দেখার দরকার নেই। এবং কিছু অক্ষর সংরক্ষণ করতে পয়েন্টার ব্যবহার করুন।

2
char *j,s[]="hello world";আরও কয়েক অক্ষর সংরক্ষণ করতে।

1
f(){char*j,s[]="\rhello world";for(j=s;*++j;*j-=32,printf(s),*j+=32,fflush(0),sleep(1));}89 বাইট।
কার্ল ন্যাপফ

2

পাইথন 2, 220 189 179 বাইট

স্ট্রিং ব্যবহার না করে সমাধান এবং capitalize(), বাইট গণনাটি হ'ল:

import time,sys
from numpy import *
F=fromstring("\rhello world",int8)
for i in range(1,12):
    time.sleep(1)
    F[i]-=32
    savetxt(sys.stdout,F,fmt="%c",newline="")
    F[i]+=32

এবং কেস রিসেট না করে কিছুটা দীর্ঘতর রূপ (191 অক্ষর):

import time,sys
from numpy import *
a=arange(11)
F=tile(fromstring("\rhello world",int8),(11,1))
F[a,a+1]-=32
for i in a:
    time.sleep(1)
    savetxt(sys.stdout,F[i],fmt="%c",newline="")

সাইটে স্বাগতম! দেখে মনে হচ্ছে আপনি অতিরিক্ত হোয়াইটস্পেস করেছেন। বিশেষত আপনার সমান চিহ্নগুলির চারপাশে
গম উইজার্ড

2

সি ++, 88 125 বাইট

#include<iostream>#include<unistd.h>
int main(){for(int c;++c<12;){char a[]="\rhello world";a[c]-=32;std::cout<<a;sleep(1);}}

অবরুদ্ধ সংস্করণ:

#include <iostream>
#include <unistd.h>

int main()
{
   for (int c;++c<12;)
   {
      char a[] = "\rhello world";
      a[c]-=32;
      std::cout << a;
      sleep(1);
   }
}

দেব-সি ++ সহ উইন্ডোজ 10 মেশিনে টিডিএম-জিসিসি দিয়ে সংকলিত।

সম্পাদনা: আমি আমার প্রথম সংস্করণে অন্তর্ভুক্তগুলি ভুলে গিয়েছি।


আরে, আপনিই সেই লোক যে আমাকে আমার সি # উত্তর দিয়ে সাহায্য করেছিল! তোমার সি ++ পদ্ধতির আমাকে বুঝতে পারছি আমি তৈরি করতে আসলে আমার থেকে যে শর্ত অপসারণ forএরকম: STRING শুরুতে গাড়ি ফেরত সরিয়ে লুপ .. আমি আপনি খুব সাহায্য করব for(int c=1;;c++)আপনি 1 বাইট সংরক্ষণ করতে হবে।
মেটোনিয়াম

আপনি আমার সি # উত্তরটিতে প্রস্তাবিত মত, আমার সর্বশেষ মন্তব্যের সাথে একত্রে আপনি করতে পারেন for(int c=1;;)এবং তারপরে a[c++]-=32;অন্য বাইট সংরক্ষণ করতে পারেন।
মেটোনিয়াম

এমনকি শুরুতে গাড়ীর ফিরে আসার পরেও, এটি এখনও হ্যালো ওয়ার্ল্ডের পরে আউটপুটে একটি চরিত্র (my আমার ক্ষেত্রে) মুদ্রণ করে যদিও আমি সত্যই নিশ্চিত নই কেন ...
স্নোফায়ার

এটা ... বরং অদ্ভুত। এমন হওয়া উচিত নয় ?!
মেটোনিয়াম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.