কোড জনি কোড, কোড!


75

রক অ্যান্ড রোলের প্রতিষ্ঠাতা বাবা চক বেরি দুঃখের সাথে আজ মারা গেলেন।

তাঁর বিখ্যাত গান " জনি বি গুড " এর কোরাস বিবেচনা করুন :

Go, go
Go Johnny go, go
Go Johnny go, go
Go Johnny go, go
Go Johnny go, go
Johnny B. Goode

( এটি বিরামচিহ্নযুক্ত করার অন্যান্য উপায় রয়েছে তবে উপরের চ্যালেঞ্জের উদ্দেশ্যে কাজ করবে))

চ্যালেঞ্জ

অযৌক্তিকভাবে, অক্ষরের ছোট ছোট স্ট্রিং এজেড দেওয়া হয়েছে, "জনি বি গুড" এর কোরাসটি আউটপুট সমস্ত উদাহরণ সহ Goবা goইনপুট স্ট্রিংয়ের পরিবর্তে একইভাবে মূলধন করা হয়েছে।

একটি অনুসরণকারী নিউলাইন allyচ্ছিকভাবে অনুসরণ করতে পারে। কোরাসটিতে অন্য কোনও কিছুর পরিবর্তন হওয়া উচিত নয়।

উদাহরণস্বরূপ , যদি ইনপুট হয় codeতবে আউটপুটটি অবশ্যই হ'ল

Code, code
Code Johnny code, code
Code Johnny code, code
Code Johnny code, code
Code Johnny code, code
Johnny B. Codeode

allyচ্ছিকভাবে একটি নতুন লাইন অনুসরণ করে।

মনে রাখবেন যে, সব শব্দের ক্যাপিটালাইজেশন (তাল অভাব সত্ত্বেও) মূল ধুয়া সাথে মিলে যায়, এবং Goএর মধ্যে Goodeপৃথক শব্দ হিসাবে ভাল হিসাবে প্রতিস্থাপিত হয় Goএবং go

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।

পরীক্ষার মামলা

"input"
output

"go"
Go, go
Go Johnny go, go
Go Johnny go, go
Go Johnny go, go
Go Johnny go, go
Johnny B. Goode

"code"
Code, code
Code Johnny code, code
Code Johnny code, code
Code Johnny code, code
Code Johnny code, code
Johnny B. Codeode

"a"
A, a
A Johnny a, a
A Johnny a, a
A Johnny a, a
A Johnny a, a
Johnny B. Aode

"johnny"
Johnny, johnny
Johnny Johnny johnny, johnny
Johnny Johnny johnny, johnny
Johnny Johnny johnny, johnny
Johnny Johnny johnny, johnny
Johnny B. Johnnyode

"fantastic"
Fantastic, fantastic
Fantastic Johnny fantastic, fantastic
Fantastic Johnny fantastic, fantastic
Fantastic Johnny fantastic, fantastic
Fantastic Johnny fantastic, fantastic
Johnny B. Fantasticode

46
: পরীক্ষার বিষয় জন্য মিসড সুযোগ an, c,cath
নিল

54
কেউ দয়া করে একটি গো সংস্করণ করুন।
jl6

2
প্রোগ্রামটি কীভাবে বহু-শব্দযুক্ত স্ট্রিংগুলি পরিচালনা করতে পারে?
কমরেড স্পার্কলপনি

6
আসুন আমরা এক মিনিট দু'বার নীরবতা পর্যবেক্ষণ করি, এবং শান্তিতে শান্তিতে কামনা করি।
এরিক দি আউটগল্ফার

1
যখন স্প্যানিশ Google অনুবাদক দ্বারা উচ্চারিত কোড টেক্সট সেরা ধ্বনি: translate.google.com/#es/en/...
palsch

উত্তর:



14

ভিআইএম, 54 49 কীস্ট্রোক ( ক্রিটিকি লিথোস থেকে 1 টি কিস্ট্রোক সংরক্ষণ করা হয়েছে )

yw~hC<Ctrl-R>", <Ctrl-R>0<Enter>Johnny B. <Ctrl-R>"ode<Esc>}O<Ctrl-R>", Johnny <Ctrl-R>0, <Ctrl-R>0<Esc>3.         

প্রথম অক্ষরটিতে কার্সার দিয়ে কোনও ফাইলের রেখায় শব্দটি দিয়ে শুরু করুন, তারপরে এটি সমস্তটি পাঠ্যের ব্যাখ্যা দিয়ে প্রতিস্থাপন করবে

  1. শব্দটিকে একটি রেজিস্টারে অনুলিপি করুন, তারপরে প্রথম অক্ষরটিকে মূলধন হিসাবে পরিবর্তন করুন এবং এটি একটি রেজিস্টারে সংরক্ষণ করুন।
  2. প্রতিস্থাপন এবং শেষ লাইন পূরণ করতে নিবন্ধগুলি ব্যবহার করে প্রথম লাইনটি লিখুন
  3. প্রতিস্থাপনগুলি পূরণ করার জন্য নিবন্ধগুলি ব্যবহার করে দ্বিতীয় লাইনটি লিখুন
  4. মাঝের রেখাটি 3 বার পুনরাবৃত্তি করুন

এটি অনলাইন চেষ্টা করুন! (ধন্যবাদ ডিজেএমসিএমহেম !)


আমার মনে হয় আপনি কি করতে পারেন Yপরিবর্তে yyএবং হয়তো এমনকি Gপরিবর্তে2j
Kritixi Lithos

এবং আপনি এর <CR>পরিবর্তে করতে পারেন<esc>o
ক্রিটিক্সী লিথোস

এর hDপরিবর্তেও কাজ করেdiw
ক্রিটিক্সী লিথোস

টিপস জন্য ধন্যবাদ! আমি আপনার শেষ সংস্করণে বর্তমান সংস্করণে কাজ করতে সক্ষম হয়েছি। আমি এক সাথে প্রথম এবং শেষ লাইনটি লিখে তারপরে মাঝখানে পূরণ করে আরও কয়েকটি সঞ্চয় করেছিলাম।
ডোমিনিক এ।


11

খাঁটি বাশ, 69 76 বাইট

M=aaaa;echo -e ${1^}, $1 ${M//a/\\n${1^} Johnny $1, $1}\\nJohnny B. ${1^}ode

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


2
আপনার অনলাইনে চেষ্টা করে, এটি প্রয়োজনীয় মূলধনটি করে না। উদাহরণস্বরূপ code, আপনি সমস্ত নিম্ন ক্ষেত্রে খাওয়ান , আপনি প্রয়োজনীয় মূলধন পাবেন না।
টম কার্পেন্টার

2
@ টমকার্পেন্টার স্থির! :)
আর কাপ

11

05 এ বি 1 ই , 37 বাইট

™„, ¹J¹Ð™”ÿºÇ ÿ, ÿ”4.D¹™”ºÇ B. ÿode”»

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

ব্যাখ্যা

™„, ¹J                                # concatenate title-cased input with ", " and input
     ¹Ð™                              # push input, input, title-cased input
        ”ÿºÇ ÿ, ÿ”                    # push the string "ÿ Johnny ÿ, ÿ" with "ÿ" replaced 
                                      # by title-cased input, input, input
                  4.D                 # push 3 copies of that string
                     ¹™               # push title-cased input
                       ”ºÇ B. ÿode”   # push the string "Johnny B. ÿode" with "ÿ" replaced 
                                      # by title-case input
                                   »  # join the strings by newlines

6

ব্যাচ, 207 বাইট

@set s= %1
@for %%l in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)do @call set s=%%s: %%l=%%l%%
@set j="%s% Johnny %1, %1"
@for %%l in ("%s%, %1" %j% %j% %j% %j% "Johnny B. %s%ode")do @echo %%~l

6

জাভাস্ক্রিপ্ট, 98

s=>[S=s[0].toUpperCase()+s.slice(1),[,,,].fill(` ${s}
${S} Johnny `+s)]+`, ${s}
Johnny B. ${S}ode`

কমা তৈরি করতে অ্যারে-টু-স্ট্রিং সিরিয়ালাইজেশন আপত্তি। ফর্মের একটি অ্যারে তৈরি করে:

["Go",
 " go\nGo Johnny go", (repeated...)]

এবং এটিকে ফর্মের স্ট্রিংয়ে যুক্ত করে ", go\nJohnny B. Goode":

["Go",
 " go\nGo Johnny go",
 " go\nGo Johnny go",
 " go\nGo Johnny go",
 " go\nGo Johnny go"] + ", go\nJohnny B. Goode"

6

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

(i,u=i[0].toUpperCase()+i.slice(1),x=`, ${i}
${u} Johnny `+i)=>u+x+x+x+x+`, ${i}
Johnny B. ${u}ode`

পূর্ববর্তী সংস্করণ:

(i,u=i[0].toUpperCase()+i.slice(1))=>u+`, ${i}
${u} Johnny ${i}`.repeat(4)+`, ${i}
Johnny B. ${u}ode`

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

  • এটি একটি বেনাম ফাংশন যা ইনপুটটিকে প্যারামিটার হিসাবে গ্রহণ করে i

  • প্রথম অক্ষরের মূলধনযুক্ত uইনপুট হিসাবে একটি পরিবর্তনশীল সংজ্ঞা দেয় i(নোট করুন যে এটি অনুমান করে যে কোনও কিছু নেই, যা ঠিক আছে)

  • এই দুটি ভেরিয়েবল থেকে ফিরে আসার জন্য সরাসরি স্ট্রিংটি তৈরি করুন।

  • স্ট্রিংটি পুনরাবৃত্তি না করে "go, \nGo Johnny go"চার বার পুনরাবৃত্তি করা "Go Johnny go, go"একটি বাইট সংরক্ষণ করে।


সম্পাদনা 1: সেমিকোলনটি গল্ফ করতে ভুলে গেছেন, হাহাহা !! বাইটগুলিও ভুলভাবে গণনা করেছেন , এটি মূলত ১০২ ছিল, ১০৪ নয় Thanks ধন্যবাদ অ্যাপিলার্স

2 সম্পাদনা করুন: পরিবর্তে .repeat(4), সেই স্ট্রিংটিকে একটি ভেরিয়েবলের মধ্যে রেখে xএবং x+x+x+xদুটি বাইট সংরক্ষণের অনুমতি দেয়।


পরীক্ষার স্নিপেট


যাইহোক, আমি এখানে নতুন, আমার একটি প্রশ্ন আছে: আমার প্রোগ্রামে দুটি নতুনলাইন কি বাইট হিসাবে গণনা করে? যদি তা না হয় তবে এটি আসলে ১০২ বাইট, তবে আমি মনে করি এটি সম্ভবত গণনা করে ... তাই না?
পেড্রো এ

হ্যাঁ, তারা প্রত্যেকে একটি বাইট ব্যবহার করে।
জোনাথন অ্যালান

আমি এখানে কেবলমাত্র 102 বাইট গণনা করেছি ( মোটেরেফ.ইন / বাইট- কাউন্টার ব্যবহার করে ), এবং চূড়ান্ত সেমিকোলন ব্যবহার করার দরকার নেই, সুতরাং এটি সত্যই 101 টি বাইট।
অ্যাপসিলাররা

@ অ্যাপসিলাররা ঠিক বলেছেন, আমি ভুল হিসাব করে ফেলেছি! আরও খারাপ, হাহা আমি সেমিকোলনটি গল্ফ করতে ভুলে গিয়েছিলাম। ধন্যবাদ।
পেড্রো এ

6

ভি , 41 , 38 বাইট

ÄJé,Ùäwa johnny 5ÄGdwwcWB.W~Aode.Î~

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

ভি জন্য নিখুঁত চ্যালেঞ্জ!

ব্যাখ্যা:

ä$                              " Duplicate the input ('go' --> 'gogo', and cursor is on the first 'o')
  a, <esc>                      " Append ', '
                                " Now the buffer holds 'go, go'
          Ù                     " Duplicate this line
           äw                   " Duplicate this word (Buffer: 'gogo, go')
             a Johnny <esc>     " Append ' Johnny ' (Buffer: 'go Johnny go, go')
                           5Ä   " Make 5 copies of this line
G                               " Go to the very last line in the buffer
 dw                             " Delete a word
   w                            " Move forward one word (past 'Johnny')
    cW                          " Change this WORD (including the comma), to
      B.<esc>                   "   'B.'
             W                  " Move forward a WORD
              ~                 " Toggle the case of the character under the cursor
               Aode.<esc>       " Apppend 'ode.'
                         ÎvU    " Capitalize the first letter of each line

5
ব্যাখ্যা দয়া করে?
ckjbgames

@ckjbgames হয়েছে!
DJMcMayhem


5

সি, 156 151 বাইট

i,a,b;B(char*s){a=*s++;printf("%c%s, %c%s\n",b=a-32,s,a,s);for(;++i%4;)printf("%c%s Johnny %c%s, %c%s\n",b,s,a,s,a,s);printf("Johnny B. %c%sode",b,s);}

এটি
জিসিসি

@ ভিলাপএক্স আমি দেখতে পাচ্ছি না কেন এটি হবে না। এটি MinGW এ সূক্ষ্ম সংকলন করে এবং অনলাইনেও কাজ করে । হয়তো কিছু সংকলক পতাকা অন্তর্ভুক্ত প্রকার বা ফাংশন ঘোষণার অক্ষম করছে?
স্টেডিবক্স

এটা কিছু সতর্কবার্তা উত্পন্ন, কিন্তু আপনি একটি যোগ যখন main()যে আসলে ফাংশন এটি কাজ করে কল ...
moooeeeep

@ মুওইয়ীপ ঠিক আছে, আমি যা অনুভব করছিলাম - আমি বুঝতে পেরেছিলাম যে এই চ্যালেঞ্জটির জন্য একটি সম্পূর্ণ প্রোগ্রামের প্রয়োজন , তবে প্রকৃতপক্ষে এটি ওপি-তে স্পষ্টভাবে বলে না।
ভিলপ্যাক্স

5

পাইথন 3, 88 বাইট

lambda x:("{0}, {1}\n"+4*"{0} Johnny {1}, {1}\n"+"Johnny B. {0}ode").format(x.title(),x)

অবস্থানগত আর্গুমেন্ট সহ একটি সাধারণ বিন্যাসের স্ট্রিং।


ধন্যবাদ এরিকডুমিনিল সংশোধন করা হয়েছে।
wizzwizz4

1
@ এরিকডুমিনিল আমি জানতাম এটি লাইনের শেষে ছিল, তবে সম্পাদক উইন্ডোতে লাইন মোড়ানো ছিল ...: - /
উইজউইজ্জেড 4

আমি 88 বাইট গণনা করছি
ফিলিপ নার্দি বাতিস্তা

1
@ এরিকডুমিনিল len("\n".__repr__()[1:-2])২। __repr__()প্রোগ্রামটির দৈর্ঘ্য পরিমাপ করার সময় আমি ভুলে গিয়েছিলাম
wizzwizz4

1
@ এরিকডুমিনিল কেবলমাত্র যদি আপনি এটি """চিহ্নের পরিবর্তে চিহ্নগুলি মুড়িয়ে রাখেন "
wizzwizz4



4

পাইথন, 94 বাইট

lambda s:("|, #\n"+"| Johnny #, #\n"*4+"Johnny B. |ode").replace("|",s.title()).replace("#",s)

4

সি #, 219 211 212 146 122 বাইট

অতিরিক্ত অপ্টিমাইজেশান সহ মন্তব্যগুলি থেকে একাধিক পরামর্শ কার্যকর করা হয়েছে এটি এন্ডারসাল্ট:

a=>{string x=(char)(a[0]^32)+a.Remove(0,1),n=a+"\n",c=", ",r=n+x+" Johnny "+a+c;return x+c+r+r+r+r+n+$"Johnny B. {x}ode";}

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

Explantation:

a=>//Input parameter Explanation assumes "go" was passed
{
string x = (char)(a[0] ^ 32) + a.Remove(0, 1)// Input with first letter Uppercase "go"->"Go"
,
n = a + "\n",                               //"go" followed by newline
c = ", "                                    //Hard to believe: Comma followed by space
,
r = n + x + " Johnny " + a + c             //"go" follwed by newline followed by "Go Johnny go, "
;
return x + c + r + r + r + r + n + $"Johnny B. {x}ode"; };//return in the right order                              //Johnny B. Goode

টেস্টকেসগুলির জন্য আউটপুট:

Go, go
Go Johnny go, go
Go Johnny go, go
Go Johnny go, go
Go Johnny go, go
Johnny B. Goode

Code, code
Code Johnny code, code
Code Johnny code, code
Code Johnny code, code
Code Johnny code, code
Johnny B. Codeode

A, a
A Johnny a, a
A Johnny a, a
A Johnny a, a
A Johnny a, a
Johnny B. Aode

Johnny, johnny
Johnny Johnny johnny, johnny
Johnny Johnny johnny, johnny
Johnny Johnny johnny, johnny
Johnny Johnny johnny, johnny
Johnny B. Johnnyode

Fantastic, fantastic
Fantastic Johnny fantastic, fantastic
Fantastic Johnny fantastic, fantastic
Fantastic Johnny fantastic, fantastic
Fantastic Johnny fantastic, fantastic
Johnny B. Fantasticode

সম্পাদনা করুন: কোনও ফাংশন ব্যবহার করার পরামর্শ দেওয়ার জন্য ওয়েস্টনকে ধন্যবাদ


1
আপনাকে পুরো প্রোগ্রাম সরবরাহ করার দরকার নেই, একটি ফাংশন বা আরও ভাল, লাম্বদা যথেষ্ট হবে।
ওয়েস্টন

1
+1 এর জন্য ধন্যবাদ ^32। এটি &~32আমি ব্যবহার করছিলাম তার চেয়ে কম orter এছাড়াও, আমার জাভা answer উত্তরের একটি বন্দরটি ছোট বলে মনে হচ্ছে: string x(string a){string x=(char)(a[0]^32)+a.Remove(0,1),n=a+"\n",c=", ",r=n+x+" Johnny "+a+c;return x+c+r+r+r+r+n+"Johnny B. "+x+"ode";}}( ১৩৯ বাইট ) এখানে চেষ্টা করে দেখুন।
কেভিন ক্রুইজসেন 21:19

1
আশা করি আপনি কিছু মনে করবেন না, তবে আমি আপনার কাছ থেকে একটি ধারণা চুরি করেছি। : পি খারাপ লোক হিসাবে পরিচিত না হওয়ার জন্য, আমি এখানে একটি টিপ রেখে যাব: আপনি আপনার পদ্ধতিটিকে ল্যাম্বডা এক্সপ্রেশন ( string x(string a)-> (a)=>, -13 বাইট) রূপান্তর করতে পারেন , আমার পিছনে কেবল 1 বাইট;)
অহ্মান

1
@ অহমান আপনি যদি একটি সংকলন করেন তবে Func<string, string>কেবলমাত্র a=>প্রয়োজন নেই ()
TheLethalCoder

3

ম্যাটল্যাব / অষ্টাভ , 133 111 বাইট

@(a)regexprep(['1, 2' 10 repmat(['1 32, 2' 10],1,4) '3B. 1ode'],{'1','2','3'},{[a(1)-32 a(2:end)],a,'Johnny '})

এটি একটি শুরু। আশা করা যায় আরও কমে যেতে পারে।

মূলত এটি একটি বেনাম ফাংশন যা একটি স্ট্রিং ইনপুট নেয় এবং তারপরে প্রয়োজনীয় আউটপুট তৈরি করতে রেজেক্স ব্যবহার করে।

@(a)                                                    %Anonymous Function
    regexprep(                                          %Regex Replace
        ['1, 2' 10                                      %First line is: Code, code
            repmat(['1 32, 2' 10],1,4)                  %Then four lines of: Code Johnny code, code 
                               '3B. 1ode'],             %Final line: Johnny B. Codeode
         {'1','2','3'},                                 %1,2,3 are our replace strings in the lines above
         {[a(1)-32 a(2:end)],a,'Johnny '}               %We replace with '(I)nput', 'input' and 'Johnny ' respectively.
    )

একটি উদাহরণ:

@(a)regexprep(['1, 2' 10 repmat(['1 32, 2' 10],1,4) '3B. 1ode'],{'1','2','3'},{[a(1)-32 a(2:end)],a,'Johnny '});
ans('hi')
ans =

Hi, hi
Hi Johnny hi, hi
Hi Johnny hi, hi
Hi Johnny hi, hi
Hi Johnny hi, hi
Johnny B. Hiode

আপনি করতে পারেন সাজানোর অনলাইনে চেষ্টা করুন! । সমস্ত ওপরের কেস লেটার হয়ে যাওয়ার সাথে সাথে কোডটি অ্যাকটাভের সাথে পুরোপুরি কাজ করে না ${upper($0)}, যেখানে ম্যাটল্যাবে এটি আসল আপার কেস লেটারে রূপান্তরিত হয়েছে।

ইনপুটটি কেবলমাত্র a-z(ছোট অক্ষরের বর্ণমালা) গ্যারান্টিযুক্ত দেওয়া হয়েছে , আমি upper()ফাংশনটির সাথে রেজেক্স ব্যবহার না করে স্ট্রিংয়ের প্রথম অক্ষরকে মূলধনে রূপান্তর করতে 32 এর একটি সহজ বিয়োগ ব্যবহার করে 22 বাইট সংরক্ষণ করতে পারি ।

ফলস্বরূপ, কোডটি এখন অক্টোভের সাথেও কাজ করে, তাই আপনি এখন অনলাইনে চেষ্টা করে দেখতে পারেন !


3

রুবি, 89 88 86 79 বাইট

আমার প্রথম গল্ফ জমা দেওয়া:

->x{"^, *
#{"^ Johnny *, *
"*4}Johnny B. ^ode".gsub(?^,x.capitalize).gsub ?*,x}

তার দুর্দান্ত মন্তব্যের জন্য @ মানাটওয়ারকে অনেক ধন্যবাদ: 7 বাইট কম!


1
খুশী হলাম। প্রোক প্যারামিটারের আশেপাশে প্রথম বন্ধনীর প্রয়োজন নেই; আপনি অক্ষর থেকে বাঁচার পরিবর্তে আক্ষরিক নিউলাইন অক্ষর ব্যবহার করতে পারেন; একক বর্ণের স্ট্রিং লিটারালগুলি ?স্বরলিপি সহ লেখা যেতে পারে ; শেষের .gsubপরামিতিগুলির আশেপাশে প্রথম বন্ধনীর প্রয়োজন নেই। পেস্টবিন.
com

@ মানাটওয়ার্ক: বাহ, আপনি খুব চিত্তাকর্ষক এবং সুন্দর। ধন্যবাদ!
এরিক ডুমিনিল

3

নোভা , 105 বাইট

a(String s)=>"#{s.capitalize()+", #s\n"+"#s.capitalize() Johnny #s, #s\n"*4}Johnny B. #s.capitalize()ode"

নোভা ( http://nova-lang.org ) চূড়ান্ত বিটা (এবং বগি) হওয়ায় এখানে কিছু স্পষ্ট প্রতিবন্ধ রয়েছে যা এখানে কম বাইট ব্যবহার করা থেকে বিরত রয়েছে।

উদাহরণস্বরূপ, স্থানীয় ভেরিয়েবলের মতো মূলধন ফাংশন কল (যা 3 বার বলা হয়) সংরক্ষণ করতে পারত:

a(String s)=>"#{(let c=s.capitalize())+", #s\n"+"#c Johnny #s, #s\n"*4}Johnny B. #{c}ode"

যা বাইট গণনাটি 89 বাইটে নামিয়ে আনত । এটি এখন কাজ না করার কারণটি সি ভাষায় যুক্তির মূল্যায়ন আদেশের জন্য দোষ দেওয়া যায়, কারণ নোভা সি-তে সংকলিত হয়েছে (যুক্তির মূল্যায়ন আদেশটি ভবিষ্যতের আপডেটে স্থির করা হবে)

আরও বেশি, আমি স্ট্রিং ক্লাসে একটি "শিরোনাম" সম্পত্তি চালু করতে পারতাম (এবং আমি এই লোলটি করার পরে করব) মূলধন ফাংশন কল থেকে গণনা হ্রাস করতে:

a(String s)=>"#{(let c=s.title)+", #s\n"+"#c Johnny #s, #s\n"*4}Johnny B. #{c}ode"

এবং এটি নতুন মোট 82 বাইটে 7 বাইট মুক্ত করবে ।

তদ্ব্যতীত (এবং আরও বন্ধ), একবার ল্যাম্বডা ভেরিয়েবল টাইপ অনুমিত যোগ করা হলে এটি বৈধ হবে:

s=>"#{(let c=s.title)+", #s\n"+"#c Johnny #s, #s\n"*4}Johnny B. #{c}ode"

গণনাটি 72 বাইটে নামানো যেতে পারে ।

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

প্রথম 105 বাইট কোড উপলব্ধ বর্তমান নোভা বিটা v0.3.8 বিল্ড কাজ http://nova-lang.org

class Test {
    static a(String s)=>"#{s.capitalize()+", #s\n"+"#s.capitalize() Johnny #s, #s\n"*4}Johnny B. #s.capitalize()ode"

    public static main(String[] args) {
        Console.log(a("expl"))
    }
}

আউটপুট:

Expl, expl
Expl Johnny expl, expl
Expl Johnny expl, expl
Expl Johnny expl, expl
Expl Johnny expl, expl
Johnny B. Explode

সাধারণ উদ্দেশ্যে ভাষা নোভা জন্য আমার নির্লজ্জ বিজ্ঞাপন শোনার জন্য আপনাকে ধন্যবাদ ( http://nova-lang.org এ পাওয়া ... এটি এখনই পেতে !!)


3

ব্রেইনফাক, 352 বাইট

,[>+>+<<-]++++++++[>----<-]>.>>>,[.>,]++++++[>+++++++>+++++>++<<<-]>++.>++.>--<<<<[<]<.>>[.>]>>>.>++++++++[>+++++++++>+++++++<<-]>>[<<++>>-]<<[>>+>+>+>+>+<<<<<<-]>++>->-------->-->-->+++++++++>>++++[<<[<]<<<<<[<]<<.>>>[.>]>>.>>>[.>]<[<]<<.<<<[<]<.>>[.>]>.>.<<<[<]<.>>[.>]>>>.>>[>]>-]<<[<]>[.>]<[<]<<.>>>--------.<<<<++.>.<<<[<]<<.>>>[.>]>>>>>>.>----.+.

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

  1. ইনপুট পান।
  2. পরে জন্য বিশেষ অক্ষর সংরক্ষণ করুন।
  3. প্রথম অংশ লিখুন।
  4. "জনি" পরে জন্য সংরক্ষণ করুন
  5. "যান জনি যান, যান" চারবার মুদ্রণ করুন
  6. শেষ অংশটি লিখুন

আমি সবসময় ব্রেইনফাকের চ্যালেঞ্জ পছন্দ করি তাই মজাদার ছিল। এটি সম্ভবত আরও গল্ফ করা যেতে পারে তবে গল্ফিং ব্রেনফাক এক ধরণের দীর্ঘ।



3

জাভা 8, 151 147 146 130 বাইট

s->{String x=(char)(s.charAt(0)^32)+s.substring(1),n=s+"\n",r=n+x+" Johnny "+s+", ";return x+", "+r+r+r+r+n+"Johnny B. "+x+"ode";}

ব্যাখ্যা:

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

s->{                               // Method with String as both parameter and return-type
  String x=                        //  Temp String with: 
           (char)(s.charAt(0)^32)  //   The first letter capitalized
    +s.substring(1),               //   + the rest of the String
         n=s+"\n",                 //  Temp String with input + new-line
         c=", ",                   //  Temp String with ", "
         r=n+x+" Johnny "+s+c;     //  Temp String with "input\nInput Johnny input, "
  return x+c+r+r+r+r+n+"Johnny B. "+x+"ode";
                                   //  Return output by putting together the temp Strings
}                                  // End of method


2

সি # , 159 130 128 বাইট


Golfed

i=>string.Format("{0},{1}????\n{2} B. {0}ode".Replace("?","\n{0} {2}{1},{1}"),(i[0]+"").ToUpper()+i.Substring(1)," "+i,"Johnny");

Ungolfed

i => string.Format( "{0},{1}????\n{2} B. {0}ode"
    .Replace( "?", "\n{0} {2}{1},{1}" ),

    ( i[ 0 ] + "" ).ToUpper() + i.Substring( 1 ), // {0}
    " " + i,                                      // {1}
    "Johnny" );                                   // {2}

অসম্পূর্ণ পাঠযোগ্য

i => string.Format( @"{0},{1}
    ????
    {2} B. {0}ode"

    // Replaces the '?' for the string format that contains the 
    // repetition of "___ Johnny ___, ___".
    .Replace( "?", "\n{0} {2}{1},{1}" ),

    // {0} - Converts the first letter to upper,
    //       then joins to the rest of the string minus the first letter
    ( i[ 0 ] + "" ).ToUpper() + i.Substring( 1 ),
    // {1} - The input padded with a space, to save some bytes
    " " + i,
    // {2} - The name used as parameter, to save some bytes
    "Johnny" );

সম্পূর্ণ কোড

using System;

namespace Namespace {
    class Program {
        static void Main( string[] args ) {
            Func<string, string> func = i =>
                string.Format( "{0},{1}????\n{2} B. {0}ode"
                    .Replace( "?", "\n{0} {2}{1},{1}" ),

                    ( i[ 0 ] + "" ).ToUpper() + i.Substring( 1 ),
                    " " + i,
                    "Johnny" );

            int index = 1;

            // Cycle through the args, skipping the first ( it's the path to the .exe )

            while( index < args.Length ) {
                Console.WriteLine( func( args[index++] ) );
            }

            Console.ReadLine();
        }
    }
}

রিলিজ

  • v1.2 - - 2 bytes- অদলবদল (i)=>জন্য i=>, ধন্যবাদ TheLetalCoder মন্তব্য নেই।
  • v1.1 - -29 bytes- স্যার বিটসালট শেষ আপডেটের জন্য ধন্যবাদ , যিনি আমাকে স্মরণ করেছিলেন আমি ফর্ম্যাটের আগে স্ট্রিংটি সম্পাদনা করতে পারলাম।
  • v1.0 - 159 bytes- প্রাথমিক সমাধান।

নোট

শিরোনামটির কোড এবং পরীক্ষার কেসগুলির সাথে একটি পৃষ্ঠার লিঙ্ক রয়েছে। শুধু গো চাপুন এবং ফলাফলটি কোডের নীচে মুদ্রিত হবে।


জন্য কোন প্রয়োজন নেই ()জন্য যুক্তি প্রায় Funcঠিক না i=>। আপনি সম্ভবত সি # 6 থেকে অন্তরবিচ্ছিন্ন স্ট্রিংগুলিও ব্যবহার করতে পারেন এবং string.Formatকীভাবে (তুচ্ছ হওয়া উচিত) এটি দেখার জন্য আমি কোডটির দিকে খুব বেশি নজর দিইনি যদিও হারাতে পারি।
TheLethalCoder

আমি ড্রপ করতে পারি (), তবে আমি সন্দেহ করি যে কোডটির আকার বাড়ানো না দিয়েই আমি ইন্টারপোল্টেড স্ট্রিংগুলি ব্যবহার করতে পারি, প্রতিস্থাপনটি সংঘটিত হওয়ার কারণে প্রতিস্থাপনের কারণে ঘটে replace
auhmaan

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

2

জাভাস্ক্রিপ্ট - 72 106 বাইট

সম্পাদনা: উফ !! মূলধনের নিয়মের দিকে আমি নজর দিইনি! এটি কিছুক্ষণ পরে দীর্ঘ হবে

সম্পাদনা 2: এখন নিয়ম অনুসরণ করা উচিত!

সম্ভবত আরও গল্ফ করা যেতে পারে

c=>(`G,g
`+`G Johnnyg,g
`.repeat(4)+`Johnny B.Gode`).replace(/g/g,' '+c.toLowerCase()).replace(/G/g,' '+c)

হিসাবে ব্যবহার:

c=>(`G,g
`+`G Johnnyg,g
`.repeat(4)+`Johnny B.Gode`).replace(/g/g,' '+c.toLowerCase()).replace(/G/g,' '+c)
alert(f("Code"));
alert(f("Go"));

2

এক্সেল ভিবিএ, 137 121 112 89 87 84 বাইট

বেনামে ভিবিই তাত্ক্ষণিক উইন্ডো ফাংশন যা ভিবিই তাত্ক্ষণিক উইন্ডো প্রিন্ট করে Variant/Stringসেল [A1]এবং আউটপুট থেকে টাইপের ইনপুট নেয়

c=[Proper(A1)]:s=vbCr+c+[" Johnny "&A1&", "&A1]:?c", "[A1]s;s;s;s:?"Johnny B. "c"ode

তাত্ক্ষণিক উইন্ডো ফাংশনে রূপান্তর করার জন্য -16 বাইটস

ব্যবহারের জন্য -9 বাইট [PROPER(A1)]

ড্রপ করার জন্য -23 বাইট For ...লুপ এবং অপব্যবহারের ?বিবৃতি

-2 প্রতিস্থাপন জন্য বাইট " Johnny "&[A1]&", "&[A1]সঙ্গে[" Johnny "&A1&", "&A1]

-3 স্ট্রিং কনটেনটেশনের জন্য +ওভার ব্যবহার করার &জন্য এবং টার্মিনাল স্ট্রিংটি বন্ধ রেখে দেওয়া বাইটস

উদাহরণ কেস

[A1]="an"          ''  <- Setting [A1] (may be done manually)
                   '' (Below) Anonymous VBE function
c=[Proper(A1)]:s=vbCr+c+[" Johnny "&A1&", "&A1]:?c", "[A1]s;s;s;s:?"Johnny B. "c"ode"
 An, an            ''  <- output
 An Johnny an, an
 An Johnny an, an
 An Johnny an, an
 An Johnny an, an
 Johnny B. Anode

1
কি Debug.?sকার্যকরভাবে Debug.Print? ওটা কিভাবে কাজ করে?
ব্রুসওয়েইন

1
@ ব্রুসওয়েন, সুন্দর কেপ VBA হয়, autoformatting সমর্থন যার মানে ভালো জিনিস ?, i=1Toএবং &cমত আরো বাগাড়ম্বরপূর্ণ কিন্তু পাঠযোগ্য পদ হজম হয় Print, i = 1 Toএবং & c। সম্প্রদায়টি সিদ্ধান্ত নিয়েছে যে ভাষাগুলিতে কোডের সংকুচিত সংস্করণ প্রতিক্রিয়াগুলির জন্য গ্রহণযোগ্য ( কোডগোফ.মেটা.স্ট্যাকেক্সেঞ্জার / সেকশন 10258/… দেখুন )
টেলর স্কট

1
@ ব্রুসওয়েইন হিসাবে ?, আমি বিশ্বাস করি এটি এক্সেলের পুরানো সংস্করণ (4.0.০ এবং নীচে) থেকে একটি অবশিষ্টাংশ যেখানে ম্যাক্রো শীটগুলি ভিবিইয়ের মাধ্যমে ভিবিএতে ব্যবহার করা হয়েছিল যেখানে এটি প্রাক-সরবরাহের পরে সরবরাহ করা স্ট্রিং মুদ্রণের জন্য কীওয়ার্ড হিসাবে ব্যবহৃত হয়েছিল নির্দেশিত পাঠ্য ফাইল। ?শব্দ নিজেই এখনও কোড golfing জন্য খুবই উপযোগী হিসাবে Printশব্দ VBA বর্তমান সংস্করণে উপস্থিত একটি টেক্সট ফাইলে স্ট্রিং লিখতে ব্যবহার করা হয়। দ্রষ্টব্য, আমি এক সাথে স্মৃতি ছেড়ে চলেছি তাই এটি একটি নুনের দানা দিয়ে নিন।
টেলর স্কট

1
জানা ভাল! আমি কেবল জিজ্ঞাসা করেছি, কোডগলফের উদ্দেশ্যে নয়, কারণ আমি ক্রমাগত ভিবিএ শিখছি এবং এটি আমার কাছে অত্যন্ত নতুন ছিল, তাই আমি কৌতূহলী ছিলাম। সবসময় ভিবিএতে ঝরঝরে ছোট্ট কৌশল শিখতে পছন্দ করুন। চিয়ার্স!
ব্রুসওয়েইন

1

সিজেম , 50 বাইট

r:L(eu\+:M',SLN[MS"Johnny ":OL',SLN]4*O"B. "M"ode"

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

ব্যাখ্যা:

r:L(eu\+:M',SLN[MS"Johnny ":OL',SLN]4*O"B. "M"ode" e# Accepts an input token.
r:L                                                e# Gets input token and stores it in L.
   (eu\+:M                                         e# Converts token to uppercase-first and stores it in M.
          ',S                                      e# Appears as ", ".
             L                                     e# Input token.
              N                                    e# Newline.
               [                                   e# Opens array.
                M                                  e# Modified token.
                 S                                 e# Space.
                  "Johnny ":O                      e# Pushes "Johnny " and stores it in O.
                             L                     e# Input token.
                              ',SLN                e# The same {',SLN} as before.
                                   ]4*             e# Closes array and repeats it 4 times.
                                      O            e# "Johnny ".
                                       "B. "       e# "B. ".
                                            M      e# Modified token.
                                             "ode" e# "ode".

1

পাইকে , 43 বাইট

l5j", "Qs3
Qld"Johnny "iQs3:D4i"B. ode"+Tj:

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

প্রথম লাইনটি তৈরি করে এবং মুদ্রণ করে তার পরে কমাটির Johnny goআগে সন্নিবেশ করানো হয় এবং 4 বার নকল করে। শেষ পর্যন্ত শেষ অংশটি নির্মাণ করে।


ইনপুট জন্য কাজ করে না বলে মনে হচ্ছে johnnytio.run/nexus/…
ডেনিস

আমি কীভাবে এটি স্পষ্ট করেছিলাম তা এখনই ঠিক করে নেই আমার ধারণা নেই
ব্লু

1

পাইথন, 258 বাইট

from jinja2 import Template
def f(go):
    t = Template("""{{ Go }}, {{ go }}
{{ Go }} Johnny {{ go }}, {{ go }}
{{ Go }} Johnny {{ go }}, {{ go }}
{{ Go }} Johnny {{ go }}, {{ go }}
{{ Go }} Johnny {{ go }}, {{ go }}
Johnny B. {{ Go }}ode""")
    return t.render(Go=go.title(), go=go)

লক্ষ্য করুন এটি এই মুহুর্তে জাভার সমান এবং
সমানভাবে

1
সাইটে স্বাগতম! এই উত্তরটি সংক্ষিপ্ত করতে আপনি স্ট্রিং গুণটি ব্যবহার করতে পারেন। এ ছাড়া চলকটি ঘোষণা করা প্রয়োজন হয় না tকারণ এটি কেবল একবার ডাকা হয়।
গম উইজার্ড

ধন্যবাদ, তবে আমি ঠিক 258 বাইটের দিকে লক্ষ্য রেখে
যাচ্ছিলাম,

2
আপনি কেন অন্য একটি স্কোর মিলানোর চেষ্টা করছেন? এটি কোড গল্ফ, পাঠযোগ্যতার প্রতিযোগিতা নয়।
ওয়েস্টন

2
@ ব্যবহারকারী 7610 আমি মনে করি আপনি পয়েন্টটি মিস করছেন।
মেরাদুলো

1

জাভা 6, 258 242 বাইট

enum j{;public static void main(String[]a){char[]b=a[0].toCharArray();b[0]^=32;System.out.printf("%1$s, %2$s\n%1$s %3$s%2$s, %2$s\n%1$s %3$s%2$s, %2$s\n%1$s %3$s%2$s, %2$s\n%1$s %3$s%2$s, %2$s\n%3$sB. %1$sode",new String(b),a[0],"Johnny ");}}

এর দীর্ঘতম অংশটি প্রিন্টফের জন্য বিন্যাস। স্ট্রিং থেকে শুরু aকরে ইনপুট নিয়ে আলাদা সমস্যা রয়েছে z(হ্যাঁ আমি জানি আমার আর কিছু সমর্থন করার দরকার নেই)।

মন্তব্যে অসম্পূর্ণ:

enum j {
    ;

    public static void main(String[] a) {
        char[] b = a[0].toCharArray();              // Copy of the input string
        b[0]^=32;                                   // First character of copy to uppercase
        System.out.printf(
                "%1$s, %2$s\n%1$s %3$s%2$s, %2$s\n%1$s %3$s%2$s, %2$s\n%1$s %3$s%2$s, %2$s\n%1$s %3$s%2$s, %2$s\n%3$sB. %1$sode", // Format string
                new String(b),  // Capitalized string
                a[0],           // Original input string
                "Johnny ");     // "Johnny "
    }
}

সম্পাদনা: গল্ফড 16 বাইট ওয়েস্টনকে ধন্যবাদ


1
প্রচুর বাইট সংরক্ষণ করতে আপনি একটি ল্যাম্বডা ব্যবহার করতে পারেন।
corvus_192

1
"Johnny"সর্বদা একটি স্থান অনুসরণ করা হয়।
ওয়েস্টন

b[0]^=32;(char)cast ালাইয়ের প্রয়োজন ছাড়াই বড় হাতের অক্ষরেও ।
ওয়েস্টন

1

গণিত, 83 বাইট

{a=ToTitleCase@#,b=", ",#,{"
",a," Johnny ",#,b,#}~Table~4,"
Johnny B. ",a}<>"ode"&

বেনামে ফাংশন। ইনপুট হিসাবে একটি স্ট্রিং নেয় এবং আউটপুট হিসাবে একটি স্ট্রিং প্রদান করে। সম্ভবত আরও গল্ফ করা যেতে পারে।

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