অলস জন্য কোড গল্ফ


10

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

এর পরে, আপনি কোনও কোড গল্ফার এটির মতো করে এটি ফর্ম্যাট করতে যাচ্ছেন।

আউটপুট ভেরিয়েবল একটি মাল্টলাইন স্ট্রিং বলা হয় answer

আপনি এতে মাল্টলাইন স্ট্রিং ব্যবহার করতে পারেন:

আপনি যদি স্ট্যাক ওভারফ্লো অনুসন্ধান করেন তবে আপনার আরও প্রোগ্রামিং ল্যাঙ্গুয়েজ এটি সমর্থিত হওয়া উচিত find

এখানে আউটপুট মার্কডাউন একটি টেম্পলেট। codeপরিবর্তনশীল একটি কোড ব্লক রয়েছে, এবং সেখানে একটি দ্বিতীয় স্তরের হেডার হয়।

## {language}, {bytes} bytes

     {code}

একটি মার্কডাউন পার্সারে পেস্ট করার পরে আউটপুটটি কেমন দেখাচ্ছে তা এখানে।

{ভাষা}, {বাইটস} বাইট

    {code}

ভেরিয়েবলগুলি আপনি যে ভাষাতে আপনার কোড গল্ফ এন্ট্রি কোড করেছেন, সেটির বাইট সংখ্যা এবং এটির জন্য আসল কোড হিসাবে ইতিমধ্যে পূরণ করা হবে বলে মনে করা হচ্ছে।

কোড হিসাবে আউটপুটটির আরও একটি উদাহরণ এখানে, ভেরিয়েবলগুলি পূরণ করে:

## JavaScript, 1337 bytes

document.getElementById("foo").innerHTML = bar;

ব্লককোট হিসাবে সংস্করণটি এখানে:

জাভাস্ক্রিপ্ট, 1337 বাইট

    document.getElementById("foo").innerHTML = bar;

আপনি যদি নীচের জাভাস্ক্রিপ্ট কোডের মতো <p>আইডি দ্বারা এইচটিএমএলে কোনও উপাদানটির পাঠ্য সেট করার জন্য কোনও উপায় ব্যবহার করেন তবে আপনার কোড থেকে বাইটগুলি সরিয়ে নেওয়া যেতে পারে result:

document.getElementById("result").innerHTML = answer;

এটি কাজ করার জন্য জেএসফিডেলের<p id="result"></p> এইচটিএমএল বিভাগে অন্তর্ভুক্ত করার বিষয়টি নিশ্চিত করুন ।

স্কোরিং

সমস্ত প্রশ্নের মত, সর্বনিম্ন পরিমাণ বাইট ব্যবহার করা কোডটি সবচেয়ে ভাল।


3
হবে {code}কি কখনও একটি একাধিক লাইন কোড হতে?
আদনান

8
"আপনি যে ভাষাতে আপনার কোড গল্ফ এন্ট্রি কোড করেছেন, সেই বাইটের সংখ্যা এবং এর জন্য প্রকৃত কোড হিসাবে ভেরিয়েবলগুলি পূরণ করা হবে।" আমি কি কেবলমাত্র এটাকে চারিদিক বৈচিত্র হিসাবে ব্যাখ্যা করছি?
প্রিমো

2
যেহেতু উত্তর দুটি সম্পূর্ণ ভিন্ন সমস্যার সমাধান করছে, তাই আমি এটিকে অস্পষ্ট হিসাবে ধরে রেখেছি। পরিষ্কার করে বলো কিনা language, bytesএবং codeইনপুট বা এই কিনা হয় quine বৈকল্পিক যেখানে সেগুলো সমাধান কোড নিজেই সুসংগত হওয়া আবশ্যক। (এবং যদি তা হয় তবে প্রত্যক্ষ বা অপ্রত্যক্ষভাবে সেই উত্স কোডটি পড়ার অনুমতি রয়েছে কিনা, এবং কুইন বিল্ট-ইনগুলি অনুমোদিত কিনা))
মার্টিন ইন্ডার

2
আদনানের প্রশ্নটিও কি আপনি পরিষ্কার codeকরতে পারেন যে ইনপুটটিতে নিজেই লাইনফিড থাকতে পারে?
মার্টিন ইন্ডার

2
@ পানট আমি বিভ্রান্ত আমরা কি ধরে নিতে পারি যে codeবহুমাত্রিক হবে না, বা আমরাও পারি না? অনুগ্রহ করে চ্যালেঞ্জ পাঠ্যে
লুইস মেন্ডো

উত্তর:


2

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

কোড:

“## ÿ, ÿ¡Ï
“,|v4ð×y«,

সিপি -1222 এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!



নিবন্ধন করুন
আদনান

এবং তাই ভি বনাম O5AB1E যুদ্ধ অব্যাহত রয়েছে ... দুর্দান্ত কাজ!
জেমস

@ ডিগ্রিগ্রিনইগস্যান্ড আইরনম্যান আমি প্রতিশোধ নেওয়ার জন্য পরবর্তী ASCII শিল্প চ্যালেঞ্জের জন্য অপেক্ষা করব :)।
আদনান

8

জাভা, 70 বাইট

String A(String[]b){return"## "+b[0]+", "+b[1]+" bytes\n\n    "+b[2];}

ধরে b[0]নেওয়া হয় ভাষার নাম, b[1]বাইট গণনা, এবং b[2]কোড।

এটিকে সংকলনীয় করে তুলতে 9 বাইট ব্যয় হয়, যার ফলে 79-বাইট অ-স্ট্যান্ডেলোন প্রোগ্রাম থাকে:

class a{String A(String[]b){return"## "+b[0]+", "+b[1]+" bytes\n\n    "+b[2];}}

সমতুল্য একতরফা প্রোগ্রামটি 103 বাইট দীর্ঘ:

interface a{static void main(String[]A){System.out.print("## "+A[0]+", "+A[1]+" bytes\n\n    "+A[2]);}}

একক একটি কমান্ড লাইন যুক্তিগুলির সাথে কাজ করে, একে একে নন-স্ট্যান্ডেলোন প্রোগ্রামের মতো ধরে ধরে:

  • প্রথম যুক্তি হ'ল ভাষার নাম
  • দ্বিতীয় যুক্তি হল বাইট গণনা count
  • তৃতীয় যুক্তি কোড

জাভা (ল্যাম্বডা এক্সপ্রেশন), 56 48 বাইট

(b)->"## "+b[0]+", "+b[1]+" bytes\n\n    "+b[2];

এটি একটি java.util.function.Function<String[], String>


এই প্রোগ্রাম / ফাংশনগুলির কোনওটিই মাল্টলাইন স্ট্রিংগুলি পরিচালনা করে না। এটি করতে, কেবল প্রতিস্থাপন করুন b[2]এবং এর A[2]সাথে b[2].replace("\n","\n ")এবং A[2].replace("\n","\n ")- এর মাধ্যমে 23 বাইট যুক্ত হয়।


এটি নিশ্চিত করার জন্য আমি এখনই কোনও কম্পিউটারের কাছে নেই, তবে আপনি \tদুটি নতুন লাইনের পরে 4 টি স্পেস প্রতিস্থাপন করতে বা কিছু ব্যবহার করতে পারবেন না ?
আর কাপ,

@ আর.ক্যাপ কখনও কখনও ফাঁকা জায়গাগুলির পরিবর্তে ট্যাব ব্যবহার করে এসই-তে ঝামেলা সৃষ্টি করে।
ব্যবহারকারী 8397947

আহ আমি দেখি. তাহলে কি বাইট গণনাটি \t4 টি ফাঁকা জায়গা বিবেচনা করে বিবেচনা করে না?
আর কাপ,

3
ল্যাম্বডায় পেরেন্স হারিয়ে ফেলুন; আপনি ন্যায়বিচারে দুটি বাইট সংরক্ষণ করতে পারেন b->
ব্রায়ান ম্যাকচ্যাটন

2
কোডের একাধিক লাইনের বেশি হলে কী হবে?
নিল

5

ভি , 24 বাইট

নোট করুন যে শেষে একটি পিছনে স্থান আছে।

এই প্রোগ্রামটি অনুমান করে যে {code}একাধিক লাইনে হবে না।

ওপ স্পষ্ট করে দিয়েছে, "কোড" একাধিক স্ট্রিং হতে পারে। এই 24 বাইট সংস্করণটি কাজ করে:

2é#á $á,JA bytes
vGî4é 

যেহেতু এটিতে একটি ছাপানো অক্ষর নেই তাই এখানে পাঠযোগ্য সংস্করণ:

2é#á $á,JA bytes
<esc>vGî4é<space>

<esc>আক্ষরিক পালানোর চরিত্রটি কোথায় 0x1B?


1
এটি সর্বদা
কনর ও'ব্রায়ান

4

পাইথন 3.5, 40 33 বাইট:

( -7 বাইটস মেগো থেকে কিছু স্পষ্ট করার জন্য ধন্যবাদ )

lambda*f:'## %s, %s bytes\n\n\t%s'%f

একটি বেনামে ল্যাম্বদা ফাংশন যা ফর্ম্যাটটিতে অবস্থানগত আর্গুমেন্ট হিসাবে ইনপুট নেয় <function name>(String, Number, String)এবং একটি বহুমুখী স্ট্রিং আউটপুট দেয়।

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


2
আপনি যদি প্যারামিটারের তালিকা তৈরি করেন *fএবং tupleকলটি বাদ দেন তবে আপনি বেশ কয়েকটি বাইট শেভ করতে পারেন ।
মেগো

@ মেগো দুর্ভাগ্যক্রমে, এটি কার্যকর হয় না, TypeError: not enough arguments for format stringযখনই আমি এটির মতো চালাই I
আর কাপ,

আমি যখন চেষ্টা করি তখন ঠিকঠাক কাজ করে - আপনাকে তালিকা যুক্তির পরিবর্তে অবস্থানগত যুক্তি নিতে হবে। অতিরিক্তভাবে, আপনি #এবং এর মধ্যে স্থানটি ফেলে দিতে পারেন %
মেগো

@ মেগো ওয়াও, এটি এত অদ্ভুত, কারণ যখন আমি পাইথন ৩.৩.১ এর সাথে পাইচার্মে চেষ্টা করি তখন আমার ত্রুটি হয়। যে আমাকে এত বিভ্রান্ত করেছে। এছাড়াও, #ল্যাম্বডা এবং ল্যাম্বদার মধ্যে স্থান প্রয়োজন, বা তাই আমি মনে করি।
আর কাপ,

@ মেগো এটি আপডেট হয়েছে।
আর কাপ,

4

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

(l,b,c)=>`## ${l}, ${b} bytes

`+c.replace(/^/gm,`    `)

এছাড়াও, হাসির জন্য, এখানে একটি উত্তর যা আমাকে নিজের জন্য ফর্ম্যাট করে:

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

f=_=>`## JavaScript (ES6), ${`${f}`.length+3} bytes\n\n    f=${f};`;

এর ফলাফল মুদ্রণ করুন f()


@ পেট্রিকরোবার্টস ওফস, আমি আসলে দৈর্ঘ্যটি পরীক্ষা করে দেখিনি, আমি কেবল এটি অনুলিপি করে আটকিয়েছি, পরে পরে এটির জন্য 6 বাইট যুক্ত করেছি (ES6)। (কেন কেবল ওব্বি দৈর্ঘ্য পরিবর্তন করতে বিরক্ত করলেন?)
নীল

4

সি #, 40 38 বাইট

(a,b,c)=>$"## {a}, {b} bytes\n\n\t"+c;

সি # ল্যাম্বদা যেখানে ইনপুট এবং আউটপুটকে স্ট্রিং করে।


সি #, 59 বাইট

(a,b,c)=>$"## {a}, {b} bytes\n\n\t"+c.Replace("\n","\n\t");

একাধিক উত্তর হ্যান্ডলিং সহ।


সি #, 71 বাইট

38 বাইট সমাধান যা নিজেই মুদ্রণ করে

()=>$"## C#, 38 bytes\n\n\t"+@"(a,b,c)=>$""## {a}, {b} bytes

\t""+c;";

অনলাইনে এগুলি ব্যবহার করে দেখুন


3

গণিত, 40 বাইট

Print["## ",#,", ",#2,"bytes

    ",#3]&

বেনামে ফাংশন। ভাষা, বাইট গণনা এবং প্রোগ্রামকে ইনপুট হিসাবে গ্রহণ করে এবং শরীরকে STDOUT এ মুদ্রণ করে।


2

জल्फ, 24 22 বাইট

"## ¦i, ¦j Ξ/u3

    ¦

এখানে ব্যাখ্যা করার মতো বেশি কিছু নেই। ¦এর অর্থ ইন্টারপোলটেড ইনপুট।

এখানে চেষ্টা করুন! লিঙ্কে ইনপুট জন্য আউটপুট হয়:

## Jolf, 24 bytes

    some filler code I think

ইনপুটটি হ'ল:

name

number

"code"

1

এমএটিএল , 28 27 বাইট

@ নিনজাবারমনেকির পরামর্শের জন্য 1 বাইট সংরক্ষিত হয়েছে

35tOj', 'j' bytes'10t4Z"j&h

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

কোড ব্লক অবশ্যই একটি লাইনে থাকতে হবে।

ব্যাখ্যা

35t           % Push 35 (ASCII for '#') twice
0             % Push 0. When converted to char, it will be displayed as a space
j             % Input string (language name)
', '          % Push this string
j             % Input string (byte count)
' bytes'      % Push this string
10t           % Push 10 (ASCII for linefeed) twice
4Z"           % Push string containing four spaces
j             % Input string (code)
&h            % Concatenate everything into a string. Implicitly display

0

কমন লিস্প, 57 বাইট

(lambda(L b c)(format()"## ~A, ~A bytes~%~%    ~A"L b c))

এছাড়াও, মজাদার জন্য, নীচে এখানে কোডের একটি স্নিপেট রয়েছে যা নিজের জন্য একটি শিরোনাম প্রিন্ট করে।

কমন লিস্প, 146 বাইট

#1=(PROGN
(SETF *PRINT-CIRCLE* T)
(LET ((S (FORMAT NIL "~S" '#1#)))
  (FORMAT NIL "## Common Lisp, ~A bytes~%~%    ~A" (LENGTH S) S)))


0

হ্যাশম্যাপ , 29 বাইট

"## "i", "h" bytes.\n\n    "i

(প্রোগ্রামটির সাথে আমি সেই পোস্টটি লিখেছি, তবে আমাকে escape n এড়িয়ে যেতে হয়েছিল) n)
ব্যাখ্যা:

"## "                         Push string
     i", "                    Push input and string
          h" bytes.\n\n    "i Push input as number and string, then the input.

0

সিজেম , 26 23 বাইট

3 বাইট অপসারণ করার জন্য @ নিনজাবিয়ারমনিকে ধন্যবাদ!

'#_Sl',Sl" bytes"N_S4*l

কোড ব্লক অবশ্যই একটি লাইনে থাকতে হবে।

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

ব্যাখ্যা

'#_S       e# Push character "#" twice, then a space
l          e# Read line from input
',S        e# Push a comma, then a space
l          e# Read line from input
" bytes"   e# Push this string
N_S4*      e# Push newline twice, then four spaces
l          e# Read line from input. Implicitly display 

23 বাইট:'#_Sl',Sl" bytes"N_S4*l
নিনজাবিয়ারমনকি

@ নিনজাবারমোনকি ধন্যবাদ! সম্পাদনা করা হয়েছে। এই ধারণাটি আমার অন্য উত্তরের জন্য একটি বাইটও সংরক্ষণ করেছে
লুইস মেন্ডো

0

পাইকে, 25 বাইট

"##"Q", "z" bytes"skd4*z+

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

অথবা

পাইকে, 0 বাইট

এখানে চেষ্টা করুন! - অনুলিপি বোতামে ক্লিক করুন;)

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


0 বাইট সংস্করণ কাজ করে কি?
হাইকমাম

আপনি কি উত্তর যুক্ত করতে পারেন? আমি এটি গণনা করছি না তবে আপনি এখনও এটি ধরে রাখতে পারেন।
হাইকাম

আরে @ মুডিফিশ, আপনি কি এগুলিকে দুটি উত্তরে আলাদা করতে পারবেন?
হাইকমাম

@ হাইকম, যদি এটি উত্তর গ্রহণের উদ্দেশ্যে হয় তবে আমি বরং বলব না যে 0 বাইট সমাধানটি পাইকে ব্যবহার করা হিসাবে গণ্য করা হয়েছে এবং খুব বুড়ো বোধ করছেন
ব্লু

আমি উত্তরটি গ্রহণ করব না।
হাইকমাম

0

পার্ল 5, 35 বাইট

একটি সম্পূর্ণ প্রোগ্রাম, এটি বিপরীত ক্রমে কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয়। এটি প্রয়োজন -M5.01, যা বিনামূল্যে।

say pop.', '.pop.' bytes

    '.pop

0

ইমাস লিস্প, 97 বাইট

(lambda(l c)(format"## %s, %s bytes\n\n%s"l(string-bytes c)(replace-regexp-in-string"^""    "c)))

এছাড়াও, যেহেতু মাঝে মাঝে উদ্ধৃতিগুলি রক্ষা করা এবং কী না তা শক্ত হয়ে যেতে পারে, একটি ব্যবহারের উদাহরণ যা ক্লিপবোর্ডে স্ট্রিংটি অনুলিপি করে। (অঞ্চল এবং ব্যবহার চিহ্নিত করুনM-: )

ইমাস লিস্প, 184 বাইট

(kill-new ((lambda(l c)(format"## %s, %s bytes\n\n%s"l(string-bytes c)(replace-regexp-in-string"^""    "c)))"Emacs Lisp"(buffer-substring-no-properties(region-beginning)(region-end))))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.