"বিয়ারের 99 টি বোতল"


71

এমন একটি প্রোগ্রাম লিখুন যা গানের কথাগুলিকে বিয়ারের 99 বোতলগুলিতে আউটপুট করে, যতটা সম্ভব কম বাইটে

গান:

99 bottles of beer on the wall, 99 bottles of beer.
Take one down and pass it around, 98 bottles of beer on the wall.

98 bottles of beer on the wall, 98 bottles of beer.
Take one down and pass it around, 97 bottles of beer on the wall.

97 bottles of beer on the wall, 97 bottles of beer.
Take one down and pass it around, 96 bottles of beer on the wall.

96 bottles of beer on the wall, 96 bottles of beer.
Take one down and pass it around, 95 bottles of beer on the wall.

95 bottles of beer on the wall, 95 bottles of beer.
Take one down and pass it around, 94 bottles of beer on the wall.

....

3 bottles of beer on the wall, 3 bottles of beer.
Take one down and pass it around, 2 bottles of beer on the wall.

2 bottles of beer on the wall, 2 bottles of beer.
Take one down and pass it around, 1 bottle of beer on the wall.

1 bottle of beer on the wall, 1 bottle of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.

নিয়মাবলী:

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

    নোট করুন যে সেখানে একজন দোভাষী থাকতে হবে যাতে জমা দেওয়ার পরীক্ষা করা যায়। পূর্ববর্তী অপ্রয়োজনীয় ভাষার জন্য নিজেকে এই অনুবাদক লিখতে (এবং এমনকি উত্সাহিত) অনুমতি দেওয়া হয়েছে।

  • এটি এইচকিউ 9 + বা 99 দ্বারা আউটপুট থেকে আলাদা these এই ভাষাগুলিতে লিখিত কোনও উত্তর মুছে ফেলা হবে।

যেহেতু এটি একটি ক্যাটালগ চ্যালেঞ্জ, এটি এর জন্য সংক্ষিপ্ত সমাধানের সাথে ভাষাটি সন্ধান করা নয় (এমন কিছু জায়গা রয়েছে যেখানে খালি প্রোগ্রামটি কৌশলটি ব্যবহার করে) - এটি প্রতিটি ভাষায় সংক্ষিপ্ততম সমাধানটি সন্ধান করার বিষয়ে। সুতরাং, কোন উত্তর গৃহীত হিসাবে চিহ্নিত করা হবে না।

তালিকা

এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে ক্যাটালগ তৈরি করে a) ভাষার প্রতি সংক্ষিপ্ত সমাধানের তালিকা হিসাবে এবং খ) সামগ্রিক লিডারবোর্ড হিসাবে।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

## Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও তৈরি করতে পারেন যা স্নিপেটে প্রদর্শিত হবে:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


13
যে কেউ এটাকে ঘনিষ্ঠ করেছে, অন্যটি জনপ্রিয়তার প্রতিযোগিতা ...
থিওডাক্টর


4
@ CᴏɴᴏʀO'Bʀɪᴇɴ আমি এখনও এটি ভিটিসিডি করি নি, এখনও সিদ্ধান্ত নিচ্ছি যে এটি সম্পর্কে আমি কী অনুভব করছি। যে কোনও উপায়ে, আমি মনে করি অন্যের কিছু উত্তর (বা সেগুলির কাছ থেকে স্নিপেট) সরাসরি প্রতিযোগিতামূলক থাকার সময় অনুলিপি / আটকানো যেতে পারে , যা ডুপ-নেসের জন্য একটি সাধারণ পরীক্ষা।
জিওবিটস

13
নোট করুন যে কোয়ার্টাটা বেশ কয়েক সপ্তাহ আগে ইতিমধ্যে একটি 99BB ক্যাটালগ স্যান্ডবক্স করেছে এবং এটি পোস্ট করার পরিকল্পনা করেছিল।
অ্যালেক্স এ

13
@ গ্যামার কর্পস দয়া করে চ্যালেঞ্জ শুরু হওয়ার পরে অযথা নিয়ম পরিবর্তন করবেন না। আউটপুটে অক্ষরের কোনওটিই alচ্ছিক হওয়া উচিত নয়।
feersum

উত্তর:


43

সি #, 285 298 289 বাইট

(কোড গল্ফিং এ আমার প্রথম প্রচেষ্টা ...)

class d{static void Main(){for(int b=99;b>0;)System.Console.Write("{0}{6}{1}{2}, {0}{6}{1} of beer. {3}, {4}{6}{5}{2}.{7}",b,b==1?"":"s"," of beer on the wall",b==1?"Go to the store and buy some more":"Take one down and pass it around",b==1?99:b-1,b==2?"":"s"," bottle",b--<2?"":"\n\n");}}

সামান্য বিড়ম্বনা:

class d{
    static void Main(){
        for(int b = 99; b > 0;){
            System.Console.Write("{0}{6}{1}{2}, {0}{6}{1} of beer.\n{3}, {4}{6}{5}{2}.{7}", b, b==1 ? "" : "s", " of beer on the wall", b == 1 ? "Go to the store and buy some more" : "Take one down and pass it around", b == 1 ? 99 : b-1, b== 2 ? "" : "s", " bottle", b--<2 ? "" : "\n\n");
        }
    }
}

10
টিপ - স্ট্রিংয়ের পরিবর্তে
ভেরি

2
" bottle"ফর্ম্যাট আর্গুমেন্টের সাথে প্রতিস্থাপন করা থেকে 2 বাইট যদিও আমি নিশ্চিত যে আরও ভাল উপায় আছে, বোতলটির 3 টি ঘটনা আমার চোখে আঘাত করে ...
সোভেন লিখেছেন কোড

4
b==1সঙ্গে প্রতিস্থাপন করা যেতে পারে b<2
LegionMammal978

2
আপনার for(int b = 100; b--> 1;)
লুপটির

2
তারপরে সম্ভবত আমাদের চ্যালেঞ্জ লেখকের জন্য অপেক্ষা করা উচিত যে পিছনে থাকা নতুন লাইনের অনুমতি আছে কি না।
ফ্লোরিয়ান বাখ

31

মটোরোলা এমসি 14500 বি মেশিন কোড , 46612 বাইট

দৈর্ঘ্যের কারণে, আমি প্রোগ্রামটি এখানে পোস্ট করতে পারি না। তবে এটি হেক্সাডেসিমাল , এবং এখানে বাইনারি ( 0গুলি সহ প্যাডেড ) পাওয়া যাবে।


এটি মোটোরোলা এমসি 14500 বি মেশিন কোডের সবচেয়ে সংক্ষিপ্ততম প্রোগ্রাম। এটি কেবল 1000এবং 1001( 8এবং 9যথাক্রমে) নিয়ে গঠিত ; আউটপুট প্রতিটি বিট জন্য একটি অপকোড।

এটি 93,224 হাফ-বাইট অপকড ব্যবহার করে এবং গানের লিরিক্সগুলিকে একবারে আউটপুট করে। এটিই সম্ভব সম্ভাব্য আউটপুট পদ্ধতি।

আগ্রহীদের জন্য, আউটপুটটি # 3 (16 এর), পিনে যাবে I / O পিন।


ব্যাখ্যা

8    Store the register's value
9    Store the logical complement of the register's value

নিবন্ধটি শুরু হয় 0


কোড ট্রিভিয়া

  • হেক্সাডেসিমেল 93.224 হয় 8s এবং 9দীর্ঘ s।

  • বাইনারি 745.792 হয় 1s এবং 0দীর্ঘ s।

  • কোডটি উত্পন্ন করতে আমি নীচের পাইথন 2 কোডটি ব্যবহার করেছি। 0বাইনারি এবং 1হেক্সাডেসিমালের জন্য ইনপুট ।

    a,b=["8","9"]if input()else["00001000","00001001"]
    f="""99 Bottles of Beer lyrics"""
    print''.join(b if int(i)else a for i in''.join((8-len(bin(i)[2:]))*'0'+bin(i)[2:]for i in bytearray(f)))

4
দয়া করে আমাকে বলুন যে আপনি কোনও স্ট্রিং জেনারেটর ছাড়াই এই সব লিখেছেন না ...: সি
অ্যাডিসন ক্রম্প

1
নতুন "কোড ট্রিভিয়া" বিভাগটি দেখুন: পি @ ভোটটোক্লস
জ্যাচ গেটস

লিঙ্কগুলি নষ্ট হয়েছে :(
ETH প্রোডাকশনগুলি

আমি বাড়ি ফিরে এলে তা ঠিক করে দেব। এর জন্য দুঃখিত): @ETH প্রোডাকশনস
জ্যাচ গেটস

28

ভিটসি, 0 বাইট



সিরিয়াসলি আমার উপর কিছুই পাওয়া যায়নি। (@ মেগো আমি দুঃখিত তাই।;))

এটি অনলাইন চেষ্টা করুন! (সবেমাত্র "রান" টিপুন)


7
o_o সিম্প্লেক্সের শূন্য বাইটে করার জন্য আমার আকর্ষণীয় কিছু দরকার: পি
কনর ও'ব্রায়েন

4
@ সিও'বঃ আমার ধারণা আপনার অর্থ, " সিম্প্লেক্সের শূন্য বাইটে করার জন্য আমার কিছু দরকারী দরকার " "
মার্টিন ইন্ডার

3
@ ভোটটোক্লস - এটি কীভাবে কাজ করে? আমি সত্যই জানি না, আমি কোনও কোড গল্ফার নই, তবে আমি এখানে এসে মানুষ এবং ভাষা এটি দেখে আনন্দিত enjoy তবে আমি এটি বুঝতে পারি না। +1 কারণ এটি চিত্তাকর্ষক দেখাচ্ছে!
জনি

1
দোভাষী এর ফাইল হ্যান্ডলারটি দেখতে জনি এখানে ক্লিক করুন। ফাইল হ্যান্ডলারটি দেখতে পাবে যে কোনও ফাইলটিতে শূন্য বাইট রয়েছে এবং যদি তা থাকে তবে লিরিকগুলি মুদ্রণ করুন। সি:
অ্যাডিসন ক্রম্প

1
@ জনি হ্যাঁ - এটি কাজ চলছে, একদিন, সিরিয়াসলি থেকে এটি আরও ভাল হবে। তবে আপাতত ... আমরা অপেক্ষা করি যদি আপনি একটি ভাল গল্ফিং ভাষা চান, তবে সিরিয়াসির উত্তরটি দেখুন, এতে কিছু ক্রেজি জিনিস পেয়েছে।
অ্যাডিসন ক্রম্প

27

সিরিয়াসলি , 1 বাইট

N

যদি স্ট্যাকটি খালি থাকে (যা এটি শুরুতে রয়েছে), Nতবে গানের কথাটি পুশ করে। তারপরে সেগুলি স্পষ্টভাবে EOF এ মুদ্রিত হবে।

সিরিয়াসলি দোভাষীকে ঠিক করার জন্য @ মেগোকে ধন্যবাদ Thanks


22
মার্টিন হ্যালো ওয়ার্ল্ড চ্যালেঞ্জে বলেছিলেন, "> গল্ফ করার মতো বেশি কিছু নেই এমন ভাষাগুলিতে বোরিং (তবে বৈধ) উত্তরগুলি কমে যান না - এটি এখনও এই প্রশ্নের পক্ষে দরকারী কারণ এটি যতটা সম্ভব একটি ক্যাটালগ সংকলনের চেষ্টা করে। তবে, প্রাথমিকভাবে সেই ভাষাগুলিতে উত্তরগুলিকে উজ্জীবিত করুন যেখানে লেখকদের কোডটি গল্ফ করার জন্য আসলে চেষ্টা করতে হয়েছিল। " এই উত্তরটি উদ্বেগজনক নয়, তবে এটি একটি বৈধ এবং সংক্ষিপ্ততম সমাধান।
lirtosiast

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

8
Seriusly ????????
ভজুরা

1
আমি N:) এর ব্যবহার ছাড়াই আপনার সমাধানটি দেখার অপেক্ষায়
রয়েছি

1
হ্যাঁ - আমার চারটি ডাউন ভোট রয়েছে এবং আমার উত্তরটি বৈধ। আমি এখানে শীর্ষ মন্তব্যে যা বলেছি তাতে সম্মতি জানাই।
অ্যাডিসন ক্রম্প

19

জাভাস্ক্রিপ্ট ES6, 230 218 198 196 192 188 185 বাইট

for(x=99,z=(a=' on the wall')=>`${x||99} bottle${1-x?'s':''} of beer`+a;x;)alert(z()+', '+z`.
`+(--x?'Take one down and pass it around, ':'Go to the store and buy some more, ')+z()+'.')

এটি পরিষ্কার এবং বোধগম্য দেখায় রেখে কেবল মাত্র কয়েক বাইট ছাঁটাই।

3 অতি সাম্প্রতিক সংশোধনী:

for(x=99,z=a=>`${x||99} bottle${1-x?'s':''} of beer${a||' on the wall'}`;x;)alert(z()+', '+z(`.
`)+(--x?'Take one down and pass it around, ':'Go to the store and buy some more, ')+z()+'.')

for(x=99,z=a=>(x||99)+' bottle'+(1-x?'s':'')+' of beer',w=' on the wall';x;)alert(z()+w+', '+z()+(--x?`.
Take one down and pass it around, `:`.
Go to the store and buy some more, `)+z()+w+'.')

for(x=99,o=' bottle',q=b=o+'s',e=' of beer',w=e+" on the wall";x;)alert(x+b+w+', '+x+b+e+(--x?`.
Take one down and pass it around, `+x:`.
Go to the store and buy some more, 99`)+(b=1-x?q:o)+w+'.')

1
লুপ নিয়ন্ত্রণের বাইরে ভেরিয়েবলগুলি রেখে 2 বাইট সংরক্ষণ করা:x=99;w=" on the wall";e=" of beer";o=" bottle";b=o+"s";for(z="Go to the store and buy some more, "+x+b;0<x;)console.log(x+(2>x?o:b)+e+w+", "+x+(2>x?o:b)+e+".\n"+(1>--x?z:"Take one down and pass it around, "+x+(2>x?o:b))+e+w+".")
জেনেরিক ব্যবহারকারী

আপনার কোডে এই 2 বাইট সংরক্ষণ করা যা নয়। এটি আসলে (--x <1) চারপাশে প্রথম বন্ধনীর অপসারণ। আপাতত আমি পড়ার যোগ্যতার উদ্দেশ্যে সমস্তটি এক সাথে রাখার জন্য স্টেটমেন্টের ভিতরে ভেরিয়েবলগুলি রেখে দেব।
অ্যাডাম ডালি

1
@ স্টেফনচ আপনি যদি ভাবছেন, আমি আমার ফাংশন কলগুলি পরীক্ষা করে এই সম্পাদনাটি পেয়েছি ... তবে আমি মনে করি না এটি আপনার উদ্দেশ্য ছিল। যদিও আপনার পরামর্শটি এখনও একটি শেষ অবলম্বন হিসাবে প্রাসঙ্গিক।
আদম ডালি

1
@ পাওলো ইবারম্যান এটি প্রতিটি শ্লোকের জন্য সতর্কতা প্রয়োগ করে তবে কনসোলে সম্পাদন করতে আপনি এটি কনসোল.লগে পরিবর্তন করতে পারবেন, যা এটি 194 বাইট তৈরি করবে। একসাথে পুরো গানের কথা সতর্ক করা ফায়ারফক্সে কাজ করে না, কমপক্ষে ... এটি একটি ভাল 5-10 আয়াত ছাঁটাই করে দেয়।
অ্যাডাম ডালি

1
@Stefnotch। ঠিক আছে যে 1-এক্স এই মুহুর্তে কার্যকর প্রমাণিত হচ্ছে।
অ্যাডাম ডালি

18

জাভাস্ক্রিপ্ট ES6, 328 318 307 305 বাইট

একটি বেনামী ফাংশন। যোগ f=শুরুতে ফাংশন করতে এবং f()চালানো।

x=>eval('s=o=>v=(o?o:" no more")+" bottle"+(1==o?"":"s");for(o="",i=99;i>0;)o+=`${s(i)}@ on the wall, ${v}@.\nTake one down, pass it around, ${s(--i)}@ on the wall.\n`;o+`No more bottles@ on the wall, no more bottles@.\nGo to the store and buy some more, 99 bottles@ on the wall.`'.replace(/@/g," of beer"))

2
প্রেটি অনেক বেশি আকর্ষণীয় হবে যদি এটি কেবল একটি দীর্ঘ স্ট্রিং
কনটেনটেশনের

9
কেন এলোমেলো ASCII আর্ট অন্য সাইট থেকে অনুলিপি করা হয়েছে?
feersum

7
বিশেষত যেহেতু এটি কাজ করে না, তাই এটি সতর্ক করে:,+No, on the wall,,. Go to the store and buy some more, 99 bottles of beer on the wall.
জেনেরিক ব্যবহারকারী

14

সি, 197 196 বাইট

main(i){for(i=299;i--/3;printf("%d bottle%s of beer%s%s",i/3?:99,"s"+5/i%2,i%3?" on the wall":i^3?".\nTake one down and pass it around":".\nGo to the store and buy some more",~i%3?", ":".\n\n"));}

আমি মনে করি আমি এই পদ্ধতির সীমাতে পৌঁছেছি।


1
"%d bottles of beer on the wallTake one down and pass it aroundGo to the store and buy some more,.\n"main(){for(;;)printf();}একা হ'ল 126 বাইট, সুতরাং এটি যদি কোনও হার্ড ওভারহেড ব্যতীত স্ট্রিংগুলির অংশগুলি সঙ্কুচিত করতে বা পুনরায় ব্যবহার করার উপায় খুঁজে না পায় তবে এটি একটি নিম্ন নিম্ন সীমাবদ্ধ প্রতিনিধিত্ব করে। আমার সন্দেহ হয় আপনি সাধারণভাবে পয়েন্ট বা বাইনাস কয়েক বাইটে পৌঁছতে পারেন।
রায়

12

জাভা 304 301 300 295 বাইট

প্রথমবার একটি উত্তর পোস্ট। শুনেছি আমরা এনাম ব্যবহার করতে পারি কিন্তু কীভাবে তা খুঁজে পেলাম না।

interface A{static void main(String[]a){String b=" of beer",c=" on the wall",n=".\n",s;for(int i=100;i-->1;s=" bottle"+(i>1?"s":""),System.out.println(i+s+b+c+", "+i+s+b+n+(i<2?"Go to the store and buy some more, 99":"Take one down and pass it around, "+(i-1))+" bottle"+(i!=2?"s":"")+b+c+n));}}

Ungolfed

interface A {
    static void main(String[] a) {
        String b = " of beer", c = " on the wall", n = ".\n", s;
        for (int i = 100; i-- > 1; s = " bottle" + (i > 1 ? "s" : ""), System.out.println(i + s + b + c + ", " + i + s + b + n + (i < 2 ? "Go to the store and buy some more, 99" : "Take one down and pass it around, " + (i - 1)) + " bottle" + (i != 2 ? "s" : "") + b + c + n));
    }
}

ধন্যবাদ quartata, J AtkinএবংBenjamin Urquhart


ব্যবহার করে আপনি 2 বাইট সংরক্ষণ করতে পারবেন i<2স্থানে i==1এবং i>2এখানে: i!=2
জে আতকিন

@ জ্যাটিন আপনাকে ধন্যবাদ প্রথমটির জন্য এটি ঠিক আছে, আউটপুট একই থাকে। তবে দ্বিতীয়টির জন্য, আমি যদি পরিবর্তনটি করি তবে শেষ লাইনটি মুদ্রণ করবে 99 bottleএবং না99 bottles
ইয়াসিন হাজাজ

1
দেখা যাচ্ছে যে এটি জাভাটির পক্ষে ভাল তবে এটি গ্রোভির পক্ষে (213 বনাম 245 বাইট) ভাল কাজ করে না।
জে আতকিন

1
সত্যই নয়, গ্রোভি হ'ল জেভিএম ভাষাগুলির মধ্যে একটি। বেশিরভাগ অ্যাপ্লিকেশন গ্রোভি কোড একই জিনিসটি করে জাভা কোডের চেয়ে কম। goovy-lang.org
জে

1
পুনঃটুইট এটি পরিবর্তন!
ইয়াসিন হাজাজ

11

টেমপ্লেটগুলি ক্ষতিকারক , 667 বাইট হিসাবে বিবেচিত

Ap<Fun<Ap<Fun<Cat<Cat<Cat<Cat<Ap<A<1,1>,A<1>>,A<2,1>>,St<44,32>>,Ap<A<1,1>,A<1>>>,If<A<1>,Cat<Cat<Cat<Cat<St<46,10,84,97,107,101,32,111,110,101,32,100,111,119,110,32,97,110,100,32,112,97,115,115,32,105,116,32,97,114,111,117,110,100,44,32>,Ap<A<1,1>,Sub<A<1>,T>>>,A<2,1>>,St<46,10,10>>,Ap<A<0>,Sub<A<1>,T>>>,Cat<Cat<Cat<St<46,10,71,111,32,116,111,32,116,104,101,32,115,116,111,114,101,32,97,110,100,32,98,117,121,32,115,111,109,101,32,109,111,114,101,44,32>,Ap<A<1,1>,I<98>>>,A<2,1>>,St<46>>>>>,I<98>>>,Fun<Cat<Cat<Cat<Add<A<1>,T>,St<32,98,111,116,116,108,101>>,If<A<1>,St<'s'>,St<>>>,St<32,111,102,32,98,101,101,114>>>,St<32,111,110,32,116,104,101,32,119,97,108,108>>

প্রসারিত বাছাই করুন:

Ap<
    Fun<
        Ap<
            Fun<
                Cat<
                    Cat<Cat<Cat< Ap<A<1,1>,A<1>> , A<2,1> >, St<44,32> >, Ap<A<1,1>,A<1>> >,
                    If<A<1>,
                        Cat<Cat<Cat<Cat< St<46,10,84,97,107,101,32,111,110,101,32,100,111,119,110,32,97,110,100,32,112,97,115,115,32,105,116,32,97,114,111,117,110,100,44,32> , Ap<A<1,1>,Sub<A<1>,T>> >, A<2,1> >, St<46,10,10> >, Ap<A<0>,Sub<A<1>,T>> >,
                        Cat<Cat<Cat< St<46,10,71,111,32,116,111,32,116,104,101,32,115,116,111,114,101,32,97,110,100,32,98,117,121,32,115,111,109,101,32,109,111,114,101,44,32> , Ap<A<1,1>,I<98>> >, A<2,1> >, St<46> >
                    >
                >
            >,
            I<98>
        >
    >,
    Fun< Cat<Cat<Cat< Add<A<1>,T> , St<32,98,111,116,116,108,101> >, If<A<1>,St<'s'>,St<>>  >, St<32,111,102,32,98,101,101,114> > >,
    St<32,111,110,32,116,104,101,32,119,97,108,108>
>

11

হাস্কেল, 228 223 বাইট

o=" of beer on the wall"
a n=shows n" bottle"++['s'|n>1]
b 1="Go to the store and buy some more, "++a 99
b n="Take one down and pass it around, "++a(n-1)
f=[99,98..1]>>= \n->[a n,o,", ",a n," of beer.\n",b n,o,".\n\n"]>>=id

ফাংশন fগানের সাথে একটি স্ট্রিং প্রদান করে।


10

/// , 341 বাইট

/-/\/\///+/ bottle-)/\/&\/<\/
-(/\/\/?\/ ->/+s of beer-^/> on the wall-!/^,-$/>.
-@/$Take one down and pass it around,-#/^.
-*/?1@?0#<0!?0@-%/99!?9@?8#<8!?8@?7#<7!?7@?6#<6!?6@?5#<5!?5@?4#<4!?4@?3#<3!?3@?2#<2!?2@?1#<1!-&/?9#
%*-</
9(9/%*/</
8(8)7(7)6(6)5(5)4(4)3(3)2(2)1(1)0(0-
0/
- 0/ /#/1+s/1+/
% 01$Go to the store and buy some more, 099^.

এই কোডটির যথাযথ ব্যাখ্যা লিখতে এটি 99 বছর প্রয়োজন।

আমি সম্ভবত প্রতিটি পর্যায়ের ফলাফল অন্তর্ভুক্ত করব ...

মূলত, এটি বার বার সংকেতকে সংকুচিত করে (যেমন প্রতিটি উত্তর /// তে থাকে )।

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

পচনশীল প্রতিটি পদক্ষেপ

যেহেতু প্রতিস্থাপনগুলির পরে প্রতিস্থাপনগুলির স্ট্রিং থাকবে তাই //এটি প্রায়শই প্রদর্শিত হবে।

এটা প্রায়ই যথেষ্ট যে আমি কম্প্রেস করার সিদ্ধান্ত নিয়েছে মনে হচ্ছে, //মধ্যে -

যখন এটি সঙ্কুচিত হয়, ফলাফলটি নিম্নলিখিত:

/+/ bottle//)/\/&\/<\/
//(/\/\/?\/ //>/+s of beer//^/> on the wall//!/^,//$/>.
//@/$Take one down and pass it around,//#/^.
//*/?1@?0#<0!?0@//%/99!?9@?8#<8!?8@?7#<7!?7@?6#<6!?6@?5#<5!?5@?4#<4!?4@?3#<3!?3@?2#<2!?2@?1#<1!//&/?9#
%*//</
9(9/%*/</
8(8)7(7)6(6)5(5)4(4)3(3)2(2)1(1)0(0//
0/
// 0/ /#/1+s/1+/
% 01$Go to the store and buy some more, 099^.

স্ট্রিংটি bottleকেবল তিনবার উপস্থিত হয়েছিল, তবে আমি এটিকে +যাইহোক সংকোচিত করেছি :

/)/\/&\/<\/
//(/\/\/?\/ //>/ bottles of beer//^/> on the wall//!/^,//$/>.
//@/$Take one down and pass it around,//#/^.
//*/?1@?0#<0!?0@//%/99!?9@?8#<8!?8@?7#<7!?7@?6#<6!?6@?5#<5!?5@?4#<4!?4@?3#<3!?3@?2#<2!?2@?1#<1!//&/?9#
%*//</
9(9/%*/</
8(8)7(7)6(6)5(5)4(4)3(3)2(2)1(1)0(0//
0/
// 0/ /#/1 bottles/1 bottle/
% 01$Go to the store and buy some more, 099^.

তারপর, )অনুরূপ /&/</একটি newline দ্বারা অনুসরণ, এবং (অনুরূপ //?/ , যা প্যাটার্ন থাকতে পারে প্রায়ই পরে ব্যবহার করা হবে আছেন:

/>/ bottles of beer//^/> on the wall//!/^,//$/>.
//@/$Take one down and pass it around,//#/^.
//*/?1@?0#<0!?0@//%/99!?9@?8#<8!?8@?7#<7!?7@?6#<6!?6@?5#<5!?5@?4#<4!?4@?3#<3!?3@?2#<2!?2@?1#<1!//&/?9#
%*//</
9//?/ 9/%*/</
8//?/ 8/&/</
7//?/ 7/&/</
6//?/ 6/&/</
5//?/ 5/&/</
4//?/ 4/&/</
3//?/ 3/&/</
2//?/ 2/&/</
1//?/ 1/&/</
0//?/ 0//
0/
// 0/ /#/1 bottles/1 bottle/
% 01$Go to the store and buy some more, 099^.

এখন, আমরা কিছু দরকারী স্ট্রিংটি সঙ্কুচিত করব:

  • > ডিকম্প্রেস করতে bottles of beer
  • ^ ডিকম্প্রেস করতে bottles of beer on the wall
  • !উপরের এক ^,যেখানে decompresses ,^
  • $decompresses করতে >.\n, যেখানে >প্রথম নিয়ম নেই এবং \nএকটি newline হয়।
  • @উপরের নিয়মটি যেখানে $অনুসরণ করে তা সংক্ষেপণ করে ressesTake one down and pass it around,$

ডিকম্প্রেসড কোডটি এখন হয়ে যায়:

/*/?1 bottles of beer.
Take one down and pass it around,?0 bottles of beer on the wall.
<0 bottles of beer on the wall,?0 bottles of beer.
Take one down and pass it around,//%/99 bottles of beer on the wall,?9 bottles of beer.
Take one down and pass it around,?8 bottles of beer on the wall.
<8 bottles of beer on the wall,?8 bottles of beer.
Take one down and pass it around,?7 bottles of beer on the wall.
<7 bottles of beer on the wall,?7 bottles of beer.
Take one down and pass it around,?6 bottles of beer on the wall.
<6 bottles of beer on the wall,?6 bottles of beer.
Take one down and pass it around,?5 bottles of beer on the wall.
<5 bottles of beer on the wall,?5 bottles of beer.
Take one down and pass it around,?4 bottles of beer on the wall.
<4 bottles of beer on the wall,?4 bottles of beer.
Take one down and pass it around,?3 bottles of beer on the wall.
<3 bottles of beer on the wall,?3 bottles of beer.
Take one down and pass it around,?2 bottles of beer on the wall.
<2 bottles of beer on the wall,?2 bottles of beer.
Take one down and pass it around,?1 bottles of beer on the wall.
<1 bottles of beer on the wall,//&/?9 bottles of beer on the wall.

%*//</
9//?/ 9/%*/</
8//?/ 8/&/</
7//?/ 7/&/</
6//?/ 6/&/</
5//?/ 5/&/</
4//?/ 4/&/</
3//?/ 3/&/</
2//?/ 2/&/</
1//?/ 1/&/</
0//?/ 0//
0/
// 0/ / bottles of beer on the wall.
/1 bottles/1 bottle/
% 01 bottles of beer.
Go to the store and buy some more, 099 bottles of beer on the wall.

9

Vim, 139 বাইট

এক্সসটের কারণে 6 বাইট সংরক্ষণ করা হয়েছে

i, 99 bottles of beer on the wall.<ESC>YIGo to t<SO> store and buy some more<ESC>qa
3P2xgJX$12.+<CAN>YITake one down a<SO> pass it around<ESC>o<ESC>q98@adk?s
xn.n.ZZ

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

পার্শ্ব নোট: মিশন সম্পন্ন


ব্যাখ্যা

Command                                    Effect
-------------------------------------------------------------------------------------------
i, 99 bottles of beer on the wall.<ESC>    insert text at cursor
Y                                          copy this line into buffer
IGo to t<SO> store and buy some more<ESC>  insert text at beginning of line
                                           auto-complete "the" (<Ctrl-N>, searches forward)
qa                                         begin recording macro into "a"
<LF>                                       move down one line (if present)
3P                                         paste 3 times before cursor
2x                                         delete 2 characters at cursor
gJ                                         join this line with next (without space between)
X                                          delete character before cursor
$                                          move to last non-whitespace character of line
12.                                        repeat the last edit command (X) 12 times
+                                          move to column 0 of next line
<CAN>                                      numeric decrement (<Ctrl-X>)
Y                                          copy this line into buffer
ITake one down a<SO> pass it around<ESC>   insert text at beginning of line
                                           auto-complete "and" (<Ctrl-N>, searches forward)
o<ESC>                                     insert text on new line
q                                          stop recording macro
98@a                                       repeat macro "a" 98 times
dk                                         delete upwards (this line and the one above it)
?s<LF>                                     move to previous /s/
x                                          delete character at cursor
n.n.                                       repeat last match and delete 2 times
ZZ                                         write to file and exit

1
সামান্য উন্নতি:i99 bottles of beer on the wall.<ESC>Yqa3P$r,J5wDr.+<CAN>YITake one down and pass it around, <ESC>o<ESCjq98@aiGo to the store and buy some more, <ESC>kdk?s<LF>xnxnxZZ
এক্সসট

@ এক্সসট এর জন্য ধন্যবাদ। আমি একরকম সম্পূর্ণ উপেক্ষা করেছি /এবং ?
প্রিমো

বিটিডব্লিউ এই উন্নতিতে আনাগল থেকে 153 পৌঁছানো সম্ভব
xsot

@ এক্সসট এটি পেয়েছে;)
প্রিমো

8

জাভাস্ক্রিপ্ট ES6, 237 217 208 203 195 193 189 186 বাইট

এটি গল্ফ করা বেশ কঠিন হয়ে উঠছে ...
সম্পাদনা 1: কেউ আমাকে পুরোপুরি ছাড়িয়ে গেছে, দেখে মনে হচ্ছে আমাকে সেরা জাভাস্ক্রিপ্টের উত্তর পেতে চাইলে আরও কঠোর চেষ্টা করতে হবে।
সম্পাদনা 2: আমি সত্যই বিশ্বাস করতে পারি না যে আমি এটি এতটা গল্ফ করেছিলাম!

for(i=99,Y=" on the wall",o=k=>k+(i||99)+` bottle${i==1?'':'s'} of beer`;i;)alert(o``+Y+o`, `+o(--i?`.
Take one down and pass it around, `:`.
Go to the store and buy some more, `)+Y+`.`)

আমি কোথাও গণ্ডগোল করেছি? ব্যবহারের জন্য আমিও ক্ষমা চাইছি alert, আপনি যদি আমার কোডটি পরীক্ষা করতে চান তবে এটি দিয়ে প্রতিস্থাপন করুন console.log

বর্তমানে জাভাস্ক্রিপ্টের আরও একটি উল্লেখযোগ্য উত্তর রয়েছে: "বিয়ারের 99 বোতল" । এটা দেখ! : ডি


আমি আপনার শর্তগুলি পুনরায় পরীক্ষা করব এবং আপনি একটি দম্পতি বাইট ছাঁটাই করতে সক্ষম হওয়া উচিত। ভাল চেষ্টা চালিয়ে যাওয়া, যদিও!
আদম ডালি

@ অ্যাডডলি ঠিক আছে !! : ডি তবে আমি অন্য লোকের জিনিসপত্র অনুলিপি করতে পছন্দ করি না ... (আমি যদি আপনার কোডটি কেবল অনুলিপি করি তবে আমি নিজেকে দোষী মনে করব ... যদিও এটি "গ্রহণযোগ্য" হবে, যদি আমি কিছু উন্নতি পাই তবে): ডি
স্টেফনচ

@ অ্যাডাম্ডলি ইয়ে, আমি আমার ফাংশনগুলি নিয়ে চারপাশে গোলমাল করেছি এবং আমি বেশ কিছুটা বাইট সংরক্ষণ করেছি! (ক্রস আউট লাইনটি দীর্ঘ এবং দীর্ঘতর হচ্ছে ..)
স্টেফনচ

অসাধারণ! কিছু বিকল্প পথ না থাকলে আমি সম্পূর্ণরূপে উপেক্ষা করেছি আমি মনে করি আমরা উভয়ই শেষের কাছাকাছি এসেছি।
অ্যাডাম ডালি

7

জাভাস্ক্রিপ্ট ইএস 6, 210 209 205 199 198 196 বাইট

s=""
for(i=299;--i>1;s+=`${i/3|0||99} bottle${5/i^1?"s":""} of beer`+(i%3?" on the wall":i^3?`.
Take one down and pass it around`:`.
Go to the store and buy some more`)+(~i%3?", ":`.

`));alert(s)

এটি আমার সি জমা দেওয়ার অপরিশোধিত অনুবাদ। আমি আসলে জাভাস্ক্রিপ্ট জানি না তাই অবশ্যই উন্নতির জন্য জায়গা আছে।

সম্পাদনা: ঝরঝরে, আমি ব্যাকটিকগুলি আবিষ্কার করেছি


আপনি এর console.logসাথে প্রতিস্থাপন alertকরতে পারেন এবং আপনি "এর পরিবর্তে use ব্যবহার করতে পারেন Then" তবে আপনি নতুন লাইনের সাথে replace n প্রতিস্থাপন করতে পারেন (
স্টেফনচ

1
আমি মনে করি console.logপরীক্ষার পক্ষে আরও সহজ হিসাবে কেউ আমাকে মারধর না করে আমি আউটপুটটি একা রেখে দেব । যাইহোক, ব্যাকটিক্সে আমাকে প্রকাশ করার জন্য ধন্যবাদ!
xsot

ওহো, তোমার চেয়ে অনেক বেশি! এছাড়াও, ব্যবহার করার জন্য ধন্যবাদ আপনার কোডে, এটি অবশ্যই কার্যকর হয়েছিল ... (মেহ, আপনি পরিবর্তন করতে পারেন console.log, এবং আমার বিজয় কিছুতেই কমিয়ে দেওয়া হবে ... এক্সডি)
স্টেফনটচ

1
আপনি চালিয়ে যাওয়া চ্যালেঞ্জ প্রমাণ করছেন! হায় আফসোস, আপনার কোডটির একটি ভাঙ্গন দেখতে আকর্ষণীয় হবে।
অ্যাডাম ডালি

1
@AdamDally মূলত, প্রতিটি আয়াত নিম্নলিখিত গঠন 3 ভাগে বিভক্ত করা হয়: %d bottle%s of beer%s%s। প্রতিটি শব্দের সূচি (বোতল সংখ্যা) হিসাবে গণনা করা হয় i/3|0যখন প্রতিটি সাবস্ট্রিংয়ের সূচক সহজভাবে হয় i%3
xsot

7

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

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

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

উপরের নির্দেশাবলী সংরক্ষণের জন্য কয়েকটি জায়গায় মোড়ক সেল ব্যবহার করে। আমি 755 নির্দেশাবলীতে একটি মোড়কবিহীন সংস্করণও তৈরি করেছি ।


uncompressed

নিচে ব্রেইনফাক এ্যানোটেশন ল্যাঙ্গুয়েজে একটি বহুবিদ রয়েছে

; byte sequence
; \n _ _ _ _ c \n comma space d t o l T G
++++++++++>>
--->++++>------>-->>++>+>>+>->++
[[>+++++++[>++>+>+<<<-]<-]+<+++]
>>>>>-->>-->>++>->+++[<]

c = 0
n = 100

>
while(n)
[
  n = n minus 1
  -<<
  N = str(n)
  ; first time \n _ becomes 9 9
  +[<->-----]<---[<[<]>[->]<]
  +<[>-]>[-<++++++++++<->>>]
  -[<->-----]<+++[<[<]>[+>]<]

  <->>>
  if(c)
  [
    >
    if(n)
    [
      'Take one down and'
      [>]<<<<.<<<<---.>>>-.<<<++++.<.>>>.-.<<.<.>-.>>+.<+++.>-.<<<.>---.>>.<<+++.
      ' pass it around' comma space
      <.>>>++.<<---.>----..<<.>>>>--.+++<<+.<<.>.>--.>-.<+++.->-.+<<+++.<<.>.<<<<-<
    ]>
    else
    [
      'Go to the store and'
      [>]<<<-.<<<.<<<.>>.>.<<<.>>.<++++.---.<.>>-.+.>.<--.<.<.>----.>>-.<<+++.
      ' buy some more' comma space
      <.>--.>+++.++++.<<.>>------.>+.--.<<+++.<.>>>.++.<-.++<.-<<.>.<<<<-
      N = '9'
      N
      <<<+++++++++.>>>
    ]
    <+>
  ]

  c = c plus 2
  <++

  while(c)
  [
    N
    <<[<]>[.>]>>>
    ' bottle'
    >>>.>--.>>.<..->>.<<<+++.<<<<
    if(n minus 1) 's'
    -[>>>>>.[<]]<[>]>+
    ' of beer'
    >>>.>>>.<<+.<.>----.+++..->-.++

    [<<]<-
    if(c minus 1)
    [
      ' on the wall'
      >>>>>.>>>.-.+<<<.>>.<++++.---.<.>>+++.---<----.+++>>>..[<<]
    ]

    <<[>]>-
    if(c minus 2)
    [
      period newline
      >>>>++.--<.<<<+
      if(c minus 1) newline
      [>>>.<<<<]>[>]<-<
    ]>>
    else
    [
      comma space
      >>.>.<<<<
    ]

    if(not n) c = c minus 2
    >[<<++>]

    c = c minus 1
    <[>]<-
  ]

  c = 1
  >+>
]

6

পাইথন 2, 204 বাইট

n=198
while n:s="bottle%s of beer"%"s"[:n^2>1];print n%2*"GToa kteo  otnhee  dsotwonr ea nadn dp absusy  isto maer omuonrde,,  "[n>1::2]+`n/2or 99`,s,"on the wall"+[", %d %s."%(n/2,s),".\n"[:n]][n%2];n-=1

স্পেসটি স্পেস স্পেসের ক্ষেত্রে যথেষ্ট অপ্রকাশিত, সুতরাং এখানে আমি ধরে নিচ্ছি যে শেষ লাইনে একটি একক ট্রেলিং নিউলাইন থাকা দরকার। যদি স্পষ্টটি স্পষ্ট করে অন্যথায় আমি এই উত্তরটি আপডেট করব।

এতে আমি বেশ খুশি, তবে নৈরাজ্যবাদী গল্ফের দিকে তাকিয়ে আমার মনে হয় এটি সম্ভবত অন্যরকম পদ্ধতির মাধ্যমে গল্ফ করা যেতে পারে।


6

ল্যাবরেথ , 1195 1190 932 বাইট

"{"9"
^ }
 ""
 <
 713.101.801..:611.111.89.23}!:({.23.44.001.011.711.111.411.79.23.611.501.23..:511.79.211.23.001.011.79.23.011.911.111.001.23.101.(.:111.23.101.701.79.48\.411..:101.89.23.201.111.23.511.101.801..:611.111.89.23}!:{.23.44..:801.79.911.23.101.401.611.23.(.:111.23.411..:101.89.23.201.111.23.511.101.801..:611.111.89.23}!:{
 _
 3`<
 _ ( 
""""
"
{(32.111.102.32.98.101:..114.32.111:.(.32.116.104.101.32.119.97.108:..46.\\49.32.98.111.116:..108.101.32.111.102.32.98.101:..114.32.111:.(.32.116.104.101.32.119.97.108:..44.32.49.32.98.111.116:..108.101.32.111.102.32.98.101:..114.46.\71.111.32.116.111.32.116.104.101.32.115:.).111.114.101.32.97.110.100.32.98.117.121.32.115.111.109.101.32.109.111.114.101.44.32.9!9!32.98.111.116:..108.101.115.32.111.102.32.98.101:..114.32.111:.(.32.116.104.101.32.119.97.108:..46.@
 )
 }
 <
 87\\.64..:801.79.911.23.101.401.611.23.(.:111.23.411..:101.89.23.201.111.23.511
 _
 3`<
 _ ( 
v"""

এটি কিছুটা অতিরিক্ত ...

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

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


6

পাইথন 2, 195

i=198
while i:s=`i/2or 99`+' bottle%s of beer'%'s'[1<i<4:];print['%s, '+s+'.','Take one down and pass it around, %s.\n',"Go to the store and buy some more, %s."][i%2+1/i]%(s+' on the wall');i-=1

টুক i/2থেকে ধারণা Sp3000 এর উত্তর


6

উইন্ডোজ ব্যাচ, 376 বাইট

খুব দীর্ঘ এবং কুরুচিপূর্ণ:

@echo off
setlocal enabledelayedexpansion
set B=bottles
set C=on the wall
set D=of beer
for /l %%* in (99,-1,1) do (
set A=%%*
if !A! EQU 1 set B=bottle
echo !A! !B! !D! !C!, !A! !B! !D!.
set /a A=!A!-1
if !A! EQU 1 set B=bottle
if !A! EQU 0 (
echo Go to the store and buy some more, 99 bottles !D! !C!.
) else (
echo Take one down and pass it around, !A! !B! !D! !C!.
echo.
))

5

পাইথন, 254 বাইট

b,o,s,t="bottles of beer","on the wall","bottle of beer",".\nTake one down and pass it around,"
i=99;exec'print i,b,o+",",i,b+t,i-1,b,o+".\\n";i-=1;'*97
print"2",b,o+", 2",b+t+" 1",s,o+".\n\n1",s,o+", 1",s+".\nGo to the store, buy some more, 99",b,o+"."

খুব সোজা, কিছু সাধারণ বাক্যাংশ নির্ধারণ করুন, প্রতিটি বিটটি 99 থেকে 3 পর্যন্ত মুদ্রণ করুন, তারপরে ভেরিয়েবল এবং কিছু স্ট্রিং যুক্ত করে শেষ রেখাগুলি মুদ্রণ করুন।


5

জুলিয়া, 227 215 213 বাইট

w=" on the wall"
b=" bottles"
o=" of beer"
k=b*o
for n=99:-1:1
println("$n$k$w, $n$k.
$(n>1?"Take one down and pass it around":"Go to the store and buy some more"), $(n>1?"$(n-1)$(k=b*"\b"^(n<3)*o)":"99$b"o)$w.
")end

এটি "$variable"আউটপুটটি নির্মাণের জন্য স্ট্রিং ইন্টারপোলেশন ( ) এবং টের্নারিগুলি ব্যবহার করে এটি STDOUT এ মুদ্রণ করে।

গ্লেন ওকে 14 বাইট সংরক্ষণ করা হয়েছে!


1
পরিবর্তে (n>1?" bottles":" bottle")" of beer", ব্যবহার করুন " bottle""s"^(n>1)*" of beer"- নোট করুন যে *পরে প্রয়োজনীয় (n<1)কারণ অন্যথায় এটি (n>1)" of beer"শক্তি হিসাবে প্রয়োগ করার চেষ্টা করে । এছাড়াও, while n>0ওভার ব্যবহারের কোনও সুবিধা আছে for n=99:-1:1(যা শেষে শর্তটি সহজ হতে দেয় এবং এর জন্য পৃথক প্রয়োজন এড়ানো যায় n=99)?
গ্লেন ও

এছাড়াও যথাযথ নিউলাইনগুলি স্থলে ব্যবহার করুন এবং একটি অক্ষর সংরক্ষণ \nকরতে মাঝের অংশটিকে প্রবিধানে বদলে (পরিবর্তে ",n>1?...","ব্যবহার করুন $(n>1?...")) স্যুইচ করুন এবং , শর্তসাপেক্ষে ভিতরের অংশটি পরবর্তী অংশের আগে সরিয়ে নিন, সুতরাং এটি কেবল একবার লেখার প্রয়োজন।
গ্লেন ও

প্রকৃতপক্ষে, কিছুক্ষণ শেষ হওয়ার পরামর্শটি বন্ধ করুন - আমি কেবল বুঝতে পেরেছি যে প্রতিটি শ্লোকের শেষ সংখ্যাটি করার সময় আপনাকে একটিকে বিয়োগ করতে হবে, সুতরাং কোনও নেট লাভ নেই।
গ্লেন ও

@ গ্লেএনও সর্বদা দুর্দান্ত পরামর্শগুলির জন্য ধন্যবাদ!
অ্যালেক্স এ

1
আমি কেবল একটি পরিবর্তনের পরামর্শ দিতে সক্ষম হব বলে আশাবাদী - এটি কিছুটা মূর্খ যে আপনি যদি উত্তর উত্তরদাতার গ্রহণযোগ্যতা ছাড়াই সম্পাদনা করার জন্য যথেষ্ট পরিমাণে প্রতিনিধি পেয়ে থাকেন তবে এটি সেই বিকল্পটির অনুমতি দেয় না। আমি ক্ষমা চাইছি যদি আমি কোনওভাবেই এটি করার জন্য পায়ের আঙ্গুলের পদক্ষেপ নিয়ে থাকি। আমি সবেমাত্র "বোতল <বি> বিয়ারের" অংশটির মূল্যায়নটি শেষ পর্যন্ত সরিয়ে নিয়েছি, সুতরাং এটি কেবল একবার করা এবং এটি আরম্ভ করা দরকার। আমি কিছুটা সাশ্রয় করার জন্য শর্তসাপেক্ষ "s" এর পরিবর্তে একটি ব্যাকস্পেসও ব্যবহার করেছি।
গ্লেন ও

5

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

সম্পাদনা: পূর্ববর্তী সমস্ত কোড মুছে ফেলা হয়েছে, পুরানো কোডটি দেখতে চাইলে সম্পাদনাগুলি দেখুন।

সীমিত পপআপস:

p='.';o=" of beer";e=o+" on the wall";i=99;u=m=>i+" bottle"+(i==1?'':'s');while(i>0){alert(u()+e+", "+u()+o+p+(--i>0?"Take one down and pass it around, "+u()+e:"Go to the store and buy some more, 99 bottles"+e)+p)}

সম্প্রসারিত:

p='.';
o=" of beer";
e=o+" on the wall";
i=99;
u=m=>i+" bottle"+(i==1?'':'s');
while(i>0){
    alert(u()+e+", "+u()+o+p+(--i>0?"Take one down and pass it around, "+u()+e:"Go to the store and buy some more, 99 bottles"+e)+p)
}

@ কমেন্টারস: তীর ফাংশন, 15 বাইট সংরক্ষণের ধারণার জন্য ধন্যবাদ

অসীম বিয়ারের জন্য এই কোডটি এখানে 212 বাইট ব্যবহার করুন

p='.';o=" of beer";e=o+" on the wall";i=99;u=m=>i+" bottle"+(i==1?'':'s');while(i>0){alert(u()+e+", "+u()+o+p+(--i>0?"Take one down and pass it around, "+u()+e:"Go to the store and buy some more, "+u(i=99)+e)+p)}

1
কোডটি চালানোর জন্য পাচ্ছি না, আপনি কোন ব্রাউজার / পরিবেশটি ব্যবহার করছেন? "সিনট্যাক্সেরর: নিখোঁজ; বিবৃতি দেওয়ার আগে" এছাড়াও, তীর ফাংশনগুলি একবার দেখুন!
স্টেফনচ

সিনট্যাক্স ত্রুটিটি +o'এটিতে পরিবর্তিত হওয়ার সাথে সাথে খুঁজে পেতে আমাকে এক মুহূর্ত নিয়েছিল +o+'। লুপ এবং উত্তর পরিবর্তন করার সুযোগও দেখেছিল। এখনই তীরের ফাংশনগুলি পরীক্ষা করা হবে :)
Mআম্যান

1
শেষ সমাধানের জন্য 232 বাইট:b=a=>a+" bottle"+(1<a?"s":"");for(i=100;100>--i;)l="\n",p="."+l,o=" of beer",e=o+" on the wall",alert(l+b(i)+e+", "+b(i)+o+p+(1<i?"Take one down and pass it around, "+b(i-1)+e:"Go to the store and buy some more, "+b((i=100)-1)+e)+p)
জেনেরিক ব্যবহারকারী

কিছুটা খেলার পরে, আমি আমার whileলুপের সাথে লেগে আছি এবং শীঘ্রই আমি ফলাফল কোড পোস্ট করব। কোড পর্যালোচনার জন্য আপনাকে ধন্যবাদ! :)
আমন

5

সিজেম, 149 148 146 144 138 137 134 বাইট

00000000: 39 39 7b 5b 22 2c 2e 22 22 01 bd 8f 2d b4 49 b5 f5  99{[",.""...-.I..
00000011: 9d bd 21 e8 f2 72 27 df 4d 4f 22 7b 32 36 39 62 32  ..!..r'.MO"{269b2
00000022: 35 62 27 61 66 2b 27 6a 53 65 72 28 65 75 5c 2b 2a  5b'af+'jSer(eu\+*
00000033: 7d 3a 44 7e 4e 4e 32 24 32 3e 29 34 24 4a 3c 5c 4e  }:D~NN2$2>)4$J<\N
00000044: 5d 73 27 78 2f 39 39 40 2d 73 2a 7d 2f 27 73 2d 5d  ]s'x/99@-s*}/'s-]
00000055: 22 07 9c 4b a2 4e 15 d7 df d5 82 88 c9 d9 a7 ad 37  "..K.N..........7
00000066: 16 7e 76 22 44 33 35 2f 28 5d 22 41 90 1d b1 f3 69  .~v"D35/(]"A....i
00000077: ba 3d 05 45 81 50 af 07 e4 1b 38 f7 19 22 44        .=.E.P....8.."D

উপরের হেক্সডাম্পের সাথে বিপরীত হতে পারে xxd -rসিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

মোট অতিরিক্ত মোট 143 বাইটের জন্য 9 টি অতিরিক্ত বাইটের দামে , আমরা ছাপানো অক্ষরগুলি এড়াতে পারি:

99{[", X bottles of beer on the wall."NN2$2>)4$J<\N]s'X/99@-s*}/'s-]"Take one down and pass it around"*35/("Go to the store and buy some more"\

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

99{         e# For each I in [0 ... 98]:
  [         e# 
    ",."    e#     Push that string.
    "…"     e#     Push a string.
    {       e#     Define a decoder function:
      269b  e#       Convert the string from base 269 to integer.
      25b   e#       Convert from integer to base 25.
      'af+  e#       Add 'a' to each base-25 digit.
      'jSer e#       Replace j's with spaces.
      (     e#       Shift the first character from the resulting string.
      eu    e#       Convert it to uppercase.
      \+    e#       Prepend it to the remaining string.
      *     e#       Join the string/array on the stack, using the 
            e#       generated string as delimiter.
    }:D~    e#     Name the function D and execute it.
            e#     This pushes ", x bottles of beer on the wall.".
    NN      e#     Push two linefeeds.
    2$      e#     Push a copy of the generated string.
    2>)     e#     Discard the first two characters and pop the dot.
    4$      e#     Push another copy of the generated string.
    J<      e#     Discard all but the first 19 characters.
            e#     This pushes ", x bottles of beer on the wall".
    \N      e#     Swap the string with the dot and push a linefeed.
  ]s        e#   Collect in an array and cast to string.
  'x/       e#   Split at occurrences of 'x'.
  99@-      e#   Rotate I on top of 99 and compute their difference.
  s*        e#   Cast to string and and join.
            e#   This replaces x's with 99-I.
}/          e#
's-         e# Remove all occurrences of 's' for the last generated string.
]           e# Wrap the entire stack in an array.
"…"D        e# Join the array with separator "Take one down and pass it around".
35/(        e# Split into chunks of length 35 and shift out the first.
            e# This shifts out ", 99 bottles of beer on the wall.\n\n".
]           e# Wrap the modified array and shifted out chunk in an array.
"…"D        e# Join the array with separator "Go to the store and buy some more".

বেস 259 ? মজাদার.
lirtosiast

বেস 256 এর গাড়ীর রিটার্ন ছিল, যা অনলাইন দোভাষীর সাথে কাজ করে না। ভাগ্যক্রমে, বেস 259 ISO 8559-1 ব্যাপ্তির বাইরে কোনও অক্ষর তৈরি করে না।
ডেনিস

আমি ধরে নিয়েছিলাম সিজেএম গল্ফস্ক্রিপ্টের চেয়ে কমপক্ষে 2 বাইট কম হবে - প্রায় তুচ্ছ। 137 যদিও আশা ছিল না!
প্রিমো

1
@ প্রিমো ন্যায্য বলতে, বেশিরভাগ সঞ্চয়গুলি বেস রূপান্তর থেকে। দুঃখের বিষয়, baseদু'বার ব্যবহার করে ইতিমধ্যে গল্ফস্ক্রিপ্টে 8 বাইট যুক্ত করা হয়েছে ...
ডেনিস

5

সি, 303 299 297 বাইট

#define B"%d bottle%s of beer"    
#define O" on the wall"
#define P printf(
#define V(n,m,S)q(n);P O);P", ");q(n);P S);q(m);P".\n");
*s[]={"","s"};q(n){P B,n,s[n>1]);}main(){for(int i=99;--i;){V(i+1,i,".\nTake one down and pass it around, ")P"\n");}V(1,99,".\nGo to the store and buy some more, ");}

সঙ্গে সংকলন gcc -std=c99 -w


1
গল্ফ ডাউন ডাউন 300 বাইট: ... (ইনট্রি আই = 99; - আই;) {ভি (আই + 1, আই, "....
গ্লেন র্যান্ডার্স-পেহারসন

@ গ্লেনর্যান্ডার্স-পেহারসন ধন্যবাদ। আমি মেইন () এর আগে লাইনব্রেকটিও সরিয়েছি।
ফায়ারফ্রেফিডিল

5

গল্ফস্ক্রিপ্ট, 143 বাইট

[99.{[', '\.' bottle''s of beer'@(:i!>' on the wall''.
'n].1>~;5$4<\'Take one down and pass it around'i}**'Go to the store and buy some more'](

এখনও উন্নতির জন্য জায়গা থাকতে পারে। চূড়ান্ত সংশোধন কাছাকাছি পেয়ে, আমি মনে করি।


3
সবেমাত্র 12 বাইট দ্বারা অ্যানাগল গল্ফস্ক্রিপ্ট রেকর্ডটি উন্নত করা হয়েছে
primo

5

গণিত, 238 226 222 224 বাইট

মার্টিন বাটনারকে ধন্যবাদ দিয়ে কয়েকটি বাইট সংরক্ষণ করা হয়েছে।

a={ToString@#," bottle",If[#<2,"","s"]," of beer"}&;b=a@#<>" on the wall"&;Echo[{b@n,", ",a@n,".
"}<>If[n<2,"Go to the store and buy some more, "<>b@99<>".","Take one down and pass it around, "<>b[n-1]<>".
"]]~Do~{n,99,1,-1}

5

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

এটি বেশ জঘন্য। প্রচুর অনুলিপি, এবং খুব অদক্ষ, তাই এটি কোনও পুরস্কার জিততে পারে না। যাইহোক, আমি এটি শুরু করেছি, এবং এটি শেষ করার জন্য দৃ was় প্রতিজ্ঞ ছিল।

আমি এটির চেষ্টা ও উন্নতি করতে পারি, তবে সম্ভবত অভ্যাস হবে না, কারণ সত্যি বলতে গেলে আমার মস্তিষ্ক ফাক হয়ে গেছে।

Golfed

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

Ungolfed

# SETUP COUNTERS
>>+++[-<+++<+++>>]
>>++++++[-<++++++++++<++++++++++>>]<---<--->>

# SETUP CONSTANTS
>+++++[-<++++++>]<++>
>++++++++++[-<++++++++++>]<-->        # B
>++++++++++[-<+++++++++++>]<+>        # O
>++++++++++[-<++++++++++>]<+>         # E
>++++++++++[-<++++++++++>]<++>        # F
>++++++++++[-<+++++++++++>]<++++++>   # T
>++++++++++[-<++++++++++>]<++++>      # H
>++++++++++[-<+++++++++++>]<-->       # L
>++++++++++[-<+++++++++++>]<++++>     # R
>++++++++++[-<+++++++++++>]<+++++>    # S
>++++++++++[-<+++++++++++>]           # N
>++++++++++[-<+++++++++++>]<+++++++++># W
>++++++++++[-<++++++++++>]<--->       # A
>+++++[-<++++++>]<++>                 # SPACE
>++++[-<++++++++++++>]<---->          # Comma
>++++[-<++++++++++++>]<-->            # Stop
++++++++++>                           # Newline
>++++++++++[-<+++++++++++>]<--->      # K
>++++++++++[-<++++++++++>]            # D
>++++++++++[-<+++++++++++>]<++>       # P
>++++++++++[-<++++++++++>]<+++++>     # I
>++++++++++[-<+++++++++++>]<+++++++   # U

# BACK TO START
<<<<<<<<<<<<<<<<<<<<<<<<<
[>
    [
        -> # Dec x0 counter
        .> # Print 0x char
        .> # Print x0 char
        .>
        .>.>>>..>>.<<<<.>>>>>>. # Bottles
        <<<<<<<<<.
        >>.>>.       # Of
        <<<<.
        >.>>..>>>>>. # Beer
        <<<<<<<<.
        >>.>>>>>>>>. # On
        >>>.
        <<<<<<<<.>.<<<. # The
        <<<.
        >>>>>>>>>>>.>.<<<<<.. # Wall
        >>>>>>>.     # Comma
        <.
        <<<<<<<<<<<<<<<.>.- # Counter with decrement
        >.
        >.>.>>>..>>.<<<<.>>>>>>. # Bottles
        <<<<<<<<<.
        >>.>>.       # Of
        <<<<.
        >.>>..>>>>>. # Beer
        >>>>>>>.     # Stop
        >.           # Newline
        <<<<<<<<<<<.>>>>>>>.>>>>>.<<<<<<<<<<<<<<. # Take
        <<<.
        >>.>>>>>>>>.<<<<<<<. # One
        <<<.
        >>>>>>>>>>>>>>>>>>.<<<<<<<<<<<<<<<<.>>>>>>>>>.<. # Down
        >>>. 
        <.<<.>>>>>>>>.  # And
        <<<<<.
        >>>>>>.<<<<<<<.<<<..    # Pass
        >>>>.
        >>>>>>>.<<<<<<<<<<<<<<<. # It
        >>>>>>>>.
        <.<<<<.<<<<<<.>>>>>>>>>>>>>>>>>>>.<<<<<<<<<<<.>>>>>>>>. # Around
        <<<<. # Comma
        <.
        <<<<<<<<<<<<<<<.>. # 0x and x0
        >.
        >.>.>>>..>>.<<<<.>>>>>>. # Bottles
        <<<<<<<<<.
        >>.>>.  # Of
        <<<<.
        >.>>..>>>>>. # Beer
        <<<<<<<<.
        >>.>>>>>>>>. # On
        >>>.
        <<<<<<<<.>.<<<. # The
        <<<.
        >>>>>>>>>>>.>.<<<<<.. # Wall
        >>>>>>>>.    # Stop
        >..   # Newline x2
        <<<<<<<<<<<<<<<<<<<      # Reset loop
    ]
    <-
    >+++++++++
    >.>.
    >.
    >.>.>>>..>>.<<<<.>>>>>>. # Bottles
    <<<<<<<<<.
    >>.>>.       # Of
    <<<<.
    >.>>..>>>>>. # Beer
    <<<<<<<<.
    >>.>>>>>>>>. # On
    >>>.
    <<<<<<<<.>.<<<. # The
    <<<.
    >>>>>>>>>>>.>.<<<<<.. # Wall
    >>>>>>>.     # Comma
    <.
    <<<<<<<<<<<<<<<.- # 0x with decrement
    >.+++++++++ # x0 with increment
    >.
    >.>.>>>..>>.<<<<.>>>>>>. # Bottles
    <<<<<<<<<.
    >>.>>.       # Of
    <<<<.
    >.>>..>>>>>. # Beer
    >>>>>>>.     # Stop
    >.           # Newline
    <<<<<<<<<<<.>>>>>>>.>>>>>.<<<<<<<<<<<<<<. # Take
    <<<.
    >>.>>>>>>>>.<<<<<<<. # One
    <<<.
    >>>>>>>>>>>>>>>>>>.<<<<<<<<<<<<<<<<.>>>>>>>>>.<. # Down
    >>>. 
    <.<<.>>>>>>>>.  # And
    <<<<<.
    >>>>>>.<<<<<<<.<<<..    # Pass
    >>>>.
    >>>>>>>.<<<<<<<<<<<<<<<. # It
    >>>>>>>>.
    <.<<<<.<<<<<<.>>>>>>>>>>>>>>>>>>>.<<<<<<<<<<<.>>>>>>>>. # Around
    <<<<. # Comma
    <.
    <<<<<<<<<<<<<<<.>. # Counter
    >.
    >.>.>>>..>>.<<<<.>>>>>>. # Bottles
    <<<<<<<<<.
    >>.>>.  # Of
    <<<<.
    >.>>..>>>>>. # Beer
    <<<<<<<<.
    >>.>>>>>>>>. # On
    >>>.
    <<<<<<<<.>.<<<. # The
    <<<.
    >>>>>>>>>>>.>.<<<<<.. # Wall
    >>>>>>>>.    # Stop
    >..   # Newline x2
    <<<<<<<<<<<<<<<<<<<<      # Reset outer loop
]
>-- # Decrement counter to only count from 7
# Last 8 loop
[
    -> # Dec counter
    >. # Print x0 char    
    >.
    >.>.>>>..>>.<<<<.>>>>>>. # Bottles
    <<<<<<<<<.
    >>.>>.       # Of
    <<<<.
    >.>>..>>>>>. # Beer
    <<<<<<<<.
    >>.>>>>>>>>. # On
    >>>.
    <<<<<<<<.>.<<<. # The
    <<<.
    >>>>>>>>>>>.>.<<<<<.. # Wall
    >>>>>>>.     # Comma
    <.
    <<<<<<<<<<<<<<.- # x with decrement
    >.
    >.>.>>>..>>.<<<<.>>>>>>. # Bottles
    <<<<<<<<<.
    >>.>>.       # Of
    <<<<.
    >.>>..>>>>>. # Beer
    >>>>>>>.     # Stop
    >.           # Newline
    <<<<<<<<<<<.>>>>>>>.>>>>>.<<<<<<<<<<<<<<. # Take
    <<<.
    >>.>>>>>>>>.<<<<<<<. # One
    <<<.
    >>>>>>>>>>>>>>>>>>.<<<<<<<<<<<<<<<<.>>>>>>>>>.<. # Down
    >>>. 
    <.<<.>>>>>>>>.  # And
    <<<<<.
    >>>>>>.<<<<<<<.<<<..    # Pass
    >>>>.
    >>>>>>>.<<<<<<<<<<<<<<<. # It
    >>>>>>>>.
    <.<<<<.<<<<<<.>>>>>>>>>>>>>>>>>>>.<<<<<<<<<<<.>>>>>>>>. # Around
    <<<<. # Comma
    <.
    <<<<<<<<<<<<<<. # Count
    >.
    >.>.>>>..>>.<<<<.>>>>>>. # Bottles
    <<<<<<<<<.
    >>.>>.  # Of
    <<<<.
    >.>>..>>>>>. # Beer
    <<<<<<<<.
    >>.>>>>>>>>. # On
    >>>.
    <<<<<<<<.>.<<<. # The
    <<<.
    >>>>>>>>>>>.>.<<<<<.. # Wall
    >>>>>>>>.    # Stop
    >..   # Newline x2
    <<<<<<<<<<<<<<<<<<<     # Reset loop
]
# Last but 1 exception
>>. # Counter
>.
>.>.>>>..>>.<<<<.>>>>>>. # Bottles
<<<<<<<<<.
>>.>>.       # Of
<<<<.
>.>>..>>>>>. # Beer
<<<<<<<<.
>>.>>>>>>>>. # On
>>>.
<<<<<<<<.>.<<<. # The
<<<.
>>>>>>>>>>>.>.<<<<<.. # Wall
>>>>>>>.     # Comma
<.
<<<<<<<<<<<<<<.- # x with decrement
>.
>.>.>>>..>>.<<<<.>>>>>>. # Bottles
<<<<<<<<<.
>>.>>.       # Of
<<<<.
>.>>..>>>>>. # Beer
>>>>>>>.     # Stop
>.           # Newline
<<<<<<<<<<<.>>>>>>>.>>>>>.<<<<<<<<<<<<<<. # Take
<<<.
>>.>>>>>>>>.<<<<<<<. # One
<<<.
>>>>>>>>>>>>>>>>>>.<<<<<<<<<<<<<<<<.>>>>>>>>>.<. # Down
>>>. 
<.<<.>>>>>>>>.  # And
<<<<<.
>>>>>>.<<<<<<<.<<<..    # Pass
>>>>.
>>>>>>>.<<<<<<<<<<<<<<<. # It
>>>>>>>>.
<.<<<<.<<<<<<.>>>>>>>>>>>>>>>>>>>.<<<<<<<<<<<.>>>>>>>>. # Around
<<<<. # Comma
<.
<<<<<<<<<<<<<<. # Count
>.
>.>.>>>..>>.<<<<. # Bottle
<<<.
>>.>>.  # Of
<<<<.
>.>>..>>>>>. # Beer
<<<<<<<<.
>>.>>>>>>>>. # On
>>>.
<<<<<<<<.>.<<<. # The
<<<.
>>>>>>>>>>>.>.<<<<<.. # Wall
>>>>>>>>.    # Stop
>..   # Newline x2
# Last 1 exception
<<<<<<<<<<<<<<<<<. # Counter
>.
>.>.>>>..>>.<<<<. # Bottle
<<<.
>>.>>.       # Of
<<<<.
>.>>..>>>>>. # Beer
<<<<<<<<.
>>.>>>>>>>>. # On
>>>.
<<<<<<<<.>.<<<. # The
<<<.
>>>>>>>>>>>.>.<<<<<.. # Wall
>>>>>>>.     # Comma
<.
<<<<<<<<<<<<<<.++++++++ # x with reset to 99
>.
>.>.>>>..>>.<<<<. # Bottle
<<<.
>>.>>.       # Of
<<<<.
>.>>..>>>>>. # Beer
>>>>>>>.     # Stop
>.           # Newline
>----        # Change K to G
>>+++++++++  # Change P to Y
>++++        # Change I to M
<<<.<<<<<<<<<<<<<<<. # Go
<<.
>>>>>.<<<.           # To
<<.
>>>>>.>.<<<.         # The
<<<.
>>>>>>>>>.<<<<.<<<.>>>>>>.<<<<<. # Store
<<<.
>>>>>>>>>>>>.<<.>>>>>>>>.       # And
<<<<<.
<<<<<<<<<<<<.>>>>>>>>>>>>>>>>>>>>.<<. # Buy
<<<<<<.
<<<<.<<<<<<<.>>>>>>>>>>>>>>>>>>.<<<<<<<<<<<<<<<<<. # Some
>>>>>>>>>>.
>>>>>>>.<<<<<<<<<<<<<<<<<<.>>>>>>.<<<<<. # More
>>>>>>>>>>>.
<.
<<<<<<<<<<<<<<..  # 99
>.
>.>.>>>..>>.<<<<.>>>>>>. # Bottles
<<<<<<<<<.
>>.>>.  # Of
<<<<.
>.>>..>>>>>. # Beer
<<<<<<<<.
>>.>>>>>>>>. # On
>>>.
<<<<<<<<.>.<<<. # The
<<<.
>>>>>>>>>>>.>.<<<<<.. # Wall
>>>>>>>>.    # Stop
>.   # Newline x2

আউটপুট:

এখানে নিজে চেষ্টা করুন!
ঠিক আছে, সুতরাং মনে হচ্ছে URL টি এখানে অন্তর্ভুক্ত করার জন্য অনেক দীর্ঘ, সুতরাং এটি নিজে চেষ্টা করার জন্য আপনাকে অনুলিপি / পেস্ট করতে হবে।

আমি এই দোভাষী ব্যবহার করে এটি পরীক্ষা করেছি ।


4

পিএইচপি, 251 বাইট

এটি বহুবচন / একক সমস্যার জন্য অ্যাকাউন্ট করে।

<?php for($i=99;$i>0;$i--){$b=" of beer";$s=" bottles$b";$r=" bottle$b";$w=" on the wall";$h=$i-1;echo$h>=1?"$i$s$w, $i$s.\nTake one down and pass it around, $h".($h<2?$r:$s)."$w.\n\n":"$i$r$w, $i$r. \nGo to the store and buy some more, 99$s$w.\n\n";}

রিডেবল:

for ($i=99; $i > 0; $i--) {
  $b = " of beer";
  $s = " bottles$b";
  $r = " bottle$b";
  $w = " on the wall";
  $h = $i - 1;
  echo $h >= 1 ? "$i$s$w, $i$s.\nTake one down and pass it around, $h" . ($h<2 ? $r : $s) . "$w.\n\n" : "$i$r$w, $i$r. \nGo to the store and buy some more, 99$s$w. \n\n";
}



4

বিম , 1141 1109 বাইট

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

P'P''''>`++++++)++'''P>`+++++++++++++)'''''''''''P+++++++++++++`P```>`++\ v@@++++++++++L(`<@+p'''''''''PL<
v``P''(++++++`<P'''''''''(++++++++`<L```P'+++++P'+++P'++++++P'++++P''''(/> p++@---@``p@'''''p+++@`> `)''' 'p-@''p\
>''p:'p@'p@'\>n'   >`>`)'''p@''''p@\>n'''p@''''p@-@````p@'''''p@`>`)'''''/v  `P+p``@p'''(`<@-p''''''''P'+up(`<`@@/
^/``@@p'@p''/ >'''\ /-p'@p'@p``@p``/`>-'P''''''''p+@>`)''p`n`L++++++++++@S 'p@````p@````p@'''''p@`p@````p@'''''p@```p++@---@``p@'''''p-@+@`p@+++@``p-@``p@'p-@'''p-@```p++@`p@'p@''''p+@++++@`````p@'''''p-@`p@--@``p-@``p@''''p--@p@+++@``p-@''''p-@>`)'''p@'p+:`p@'p@'''p@'p@@``p@`p-@'''p-@`>`)'''p@''''p@``p@``p@'p@'p-@@'''p--@`>`)'''p@''''p@-@````p@'''''p@`>`)'''''p++@---@``p@'''''p+++@`>`)''''p-@''p@@'''p+@H
^\p@`p-@```p`//'''/ \@@'''p--@`>`)'p/``````@pS@++++++++++L`<vP+p`P-p`P-p`@ p'''(`<@-p''''@--p``@-p`@+p'@p`@--p''''@-p'@p`````@p'''@+++p''@p```\
^             \'p-@/v               \ p-@''p-@`p-@``p@''''p@ -@``p-@``p@'p ++@'''p@'p+++@`p-@````p@'p-@'''p-@```p++@`p@''''p+@```p-@''''p-@@``/
^                   <                                       <             <

এখানে স্ট্যাক স্নিপেটে চেষ্টা করে দেখুন


4

পিএইচপি, 250 246 244 233 228 বাইট

আমি বিশ্বাস করি এটি এখন পর্যন্ত সবচেয়ে ছোট। এটি আরও কমানোর জন্য কিছু পরিবর্তন সহ 247 শট ভিত্তিক।

ন্যূনতম

<?php $b=99;function x($n){return"$n bottle".($n-1?'s':'')." of beer";}$y=" on the wall";while($b){$c=x($b);echo"$c$y, $c.\n",--$b?"Take one down and pass it around":"Go to the store and buy some more",", ".x($b?:99)."$y.\n\n";}

সম্প্রসারিত

<?php

$b=99;
function x($n){return"$n bottle".($n-1?'s':'')." of beer";}
$y=" on the wall";
while(b){
    $c=x($b);
    echo"$c$y, $c.\n",--$b?"Take one down and pass it around":"Go to the store and buy some more",", ".x($b?:99)."$y.\n\n";
}

1
আপনি যেমন কমান্ড লাইন থেকে পিএইচপি চালাতে পারেন php -rযার সমতুল্য perl -eএবং অনুরূপ, খোলার ট্যাগটি বাদ দিতে গ্রহণযোগ্য। কোড ট্যাগের পরিবর্তে চলমান পিএইচপিতে-r সম্পর্কিত আলোচনা দেখুন ।
manatwork

আহ, ধন্যবাদ @ মানাটওয়ার্ক, আমার ধারণা আমি তখন আমার আরও কিছুটা নামতে পারব।
ফ্রেগি

while($b)ঠিক পাশাপাশি কাজ করে।
frnhr

যদিও শেষে একটি অতিরিক্ত নিউলাইন রয়েছে।
frnhr

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