বিয়ারের 99 টি বোতল [বন্ধ]


65

'দেওয়ালে বিয়ারের 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.

আপনি কীভাবে আপনার পছন্দসই প্রোগ্রামিং ভাষার সাথে এটি সমাধান করবেন তা আমাকে দেখান। কোনও ভাষার সৃজনশীল ব্যবহার জিততে পারে।


30
আমার মনে হয় "সর্বাধিক সৃজনশীল ব্যবহার" কোনও এসই সাইটের পক্ষে খুব সাবজেক্টিভ। "সংক্ষিপ্ততম কোড" এর মতো উদ্দেশ্যমূলক মানদণ্ড ব্যবহার করা আমাদের লক্ষ্য করা উচিত।
ক্রিস জেস্টার-ইয়ং

5
তবুও একটি ভাল প্রশ্ন
ক্রিস ল্যাপ্লেন্ট

3
এটা কি অসীমভাবে চালানোর কথা? আমি ধরে নিয়েছি। এছাড়াও কোডগল্ফের 99 বোতল বিয়ারের মালিকানা নেই তাই এটি নিয়ে আলোচনা করারও কারণ নেই।

1
@ ক্রিস - এটি এই এসই সাইটের সবচেয়ে শক্ত অংশ হতে চলেছে, কারণ পুরো জিনিসটি সৃজনশীলতার উপর ভিত্তি করে, কারণ এটি প্রোগ্রামিং ধাঁধাগুলির অর্ধেক মজা। সর্বাধিক সৃজনশীল সমাধান সর্বদা সবচেয়ে কার্যকর বা সংক্ষিপ্ততম হয় না।
নিক বেরার্ডি

2
@ নিক: আমি তোমাকে শুনছি। আমি কেবল জানতে চাই যে কীভাবে কোনও সিদ্ধান্তটি সৃজনশীল কীভাবে নির্ধারণ করতে পারে --- আপনার নিজের বিচারের ভিত্তিতে? ভোটারদের ভিত্তিতে? উভয়ই বিশেষভাবে নির্ভরযোগ্য (কোনও অপরাধ নয়)। ব্রিভিটির মতো কিছু অনস্বীকার্য --- উদাহরণস্বরূপ, 1-বাইট স্ট্যাক ওভারফ্লো কোড গল্ফ সমাধানের "মঙ্গলভাব" কে কেউ বিতর্ক করতে পারে না।
ক্রিস জেস্টার-ইয়ং

উত্তর:


70

পার্ল (410 টি অক্ষর)

আছে ইতিমধ্যে নিবেদিত একটি ওয়েবসাইট এই প্রতিযোগিতার জন্য:

পার্ল সমাধানগুলির মধ্যে একটি সৃজনশীলতার দিক থেকে মারতে খুব শক্ত হবে, এটিতে লেখা আছে:

[Bottles.pl]

         $ একটি =
        "cpuu
       m বিএমফুট পি
       \ বিজি সিএফএফ
       \ BS "; $ খ
       = "পো ইউআই
       f বিএফ এক্সবিএম
      \ বিএম "; $ গ ="
      Ypv ublf p
     of বফ এপেক্সো কিউবি
   \ বিটিটি জু বিএসপিওয়ে ";
  $ a = ~ s / \ n //; $ a = ~ ~
  এস / \ এস + / / জি; $ খ = ~
  এস / \ এন //; $ খ = ~
  এস / \ এস + / / জি; $ সি = ~ ~
  এস / \ এন //; $ সি = ~
  এস / \ এস + / / জি; $ এ = ~ ~
  y / bz / az /; $ b = ~ ~
  ট্র / বিজেড / এজে /; $ সি = ~
  ট্র / বিজেড / এজে / জন্য (
  $ D টি = 100; $ d টি> 0; $ d টি -) {
  "$ d $ a $ b $ d" মুদ্রণ করুন
  ; "$ এ, \ n $ সি," মুদ্রণ করুন
  ; মুদ্রণ ($ D-1); মুদ্রণ
  "$ a $ বি। \ n";} $ x =
  "Cjc"; $ Y = "dobbz";
  $ Z- র = "কম"; মুদ্রণ "\ N"
  ; মুদ্রণ "- $ x \ @ $ y"।
   ; "$ z \ n \ n" মুদ্রণ করুন;

মূল ফাইলটির লিঙ্কটি এখানে ।


1
দুর্দান্ত উপস্থাপনা, তবে এটি অনুরোধের সাথে মেলে না !!
এফ। হাউরি

একটি 'রোট 1' সাইফার, আমি যে অবহেলা করেছি তার মধ্যে সেরা চেষ্টা নয়। \bঅযাচিত অক্ষরগুলিকে 'অপসারণ' করতে ব্যবহারটিও কিছুটা হতাশার।
primo

100

ব্রেইনফ *** (1,509)

আমি অনুভব করেছি যে আমি 1 টির পরিবর্তে 9 টি বিয়ারের বোতল তৈরি না করে কেবল কোডটিতে 7 টি আলাদা অক্ষর ব্যবহার করে এই উত্তরটি ট্রাম্প করতে পারি ।

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

যদিও আমাকে স্বীকার করতে হবে, কোডটিতে একটি ত্রুটি রয়েছে (সম্ভবত আপনি কীভাবে আমার জন্য এটি ঠিক করতে পারেন তা নির্ধারণ করতে পারেন?) এবং এটি চূড়ান্ত বাক্যটি প্রিন্ট করে না, Go to the store and buy some more, 99 bottles of beer on the wall.তবে এটি ব্যতীত, এটি ঠিক তেমন কোনওটিরও কাজ করে এই ছদ্মবেশী প্রোগ্রামিং ভাষাগুলিতে তৈরি প্রোগ্রামগুলি প্রত্যেকে ব্যবহার করতে পছন্দ করে।


9
আপনার কাছে কেবল 9 টি বোতল রয়েছে। আপনার আরও 90 প্রয়োজন!
জো জে।

পিটিশন: এই ভাষার নামকরণ করবেন braindrunk?
সাইয়েস

99

Funciton

আমি অন্য দিন এটি লিখেছিলাম। :) (স্ক্রিনশট: শুরু এবং সমাপ্ত )

অতিরিক্ত লাইন ব্যবধানের কারণে এটি স্ট্যাকএক্সচেঞ্জে অদ্ভুত দেখায় তাই আপনার ব্রাউজারের জাভাস্ক্রিপ্ট কনসোলে নিম্নলিখিত কোডটি চালানোর বিষয়টি বিবেচনা করুন: $('pre').css('line-height',1)

                                            ╓┬────╖
     ╔════╗  ┌───╖                          ╟┘99b ║
     ║ −1 ╟──┤ + ╟──┐                       ╙──┬──╜
     ╚════╝  ╘═╤═╝  ├──────────────────────────┴─────────────────────────────┐
     ╔════╗  ┌─┴─╖  │  ╔════════════════════════════════════════════════════╗│
     ║ 99 ╟──┤ ? ╟──┘  ║ 93438979891487426396059469986395555362079573844971 ║│
     ╚════╝  ╘═╤═╝     ║ 71377306928718494179034460561943201885027745835961 ║│
            ┌──┴───╖   ║ 98129935108241412387473531261660077880505710501626 ║│
    ╔════╗  │ 99bp ║   ║ 32694396343717333192558234646820019070451056711    ║│
    ║ 99 ║  ╘══╤═══╝   ╚══════════════════════════╤═════════════════════════╝│
    ╚═╤══╝   ┌─┴─╖                       ┌───╖  ┌─┴─╖  ╔═════════════════╗   │
   ┌──┴──╖   │ ‼ ╟───────────────────────┤ ‼ ╟──┤ ? ╟──╢ 445551776368547 ║   │
   │ 99b ║   ╘═╤═╝┌─────────────────────┐╘═╤═╝  ╘═╤═╝  ║ 925186328623383 ║   │
   ╘══╤══╝     │  │╔═══════════════════╗│  │      │    ║ 851314944882510 ║   │
      │        │  │║ 15177132563375318 ║│  │      │    ║ 812246570019017 ║   │
 ╔════════╗    │  │║ 07655616350359109 ║│  │      │    ║ 240477365113929 ║   │
 ║ 318287 ║    │  │║ 82597577171382437 ║│  │      │    ║ 659548419629671 ║   │
 ║ 023073 ║    │  │║ 18150105146396039 ║│  │      │    ║ 952755268258505 ║   │
 ║ 603558 ║    │  │║ 2022986808360992  ║│  │      │    ║ 759402210908648 ║   │
 ║ 743780 ║    │  │╚══════════╤════════╝│  │      │    ║ 737406010882693 ║   │
 ║ 068900 ║    │  │         ┌─┴─╖ ┌───╖ │  │      │    ║ 018745757193818 ║   │
 ║ 028319 ║    │  │         │ ‼ ╟─┤ ‼ ╟─┘  │      │    ║ 597439618635403 ║   │
 ║ 948400 ║    │  │         ╘═╤═╝ ╘═╤═╝    │      │    ║ 821854707881243 ║   │
 ║ 620075 ║    │  │         ┌─┴─╖   │    ┌─┴─╖    │    ║ 92049082452     ║   │
 ║ 955580 ║    │  └─────┬───┤ ‼ ╟────────┤ ‼ ║    │    ╚═════════════════╝   │
 ║ 347161 ║    │        │   ╘═══╝┌──────┐╘═╤═╝    └─────────────┐            │
 ║ 651333 ║    │   ╔═══╗│┌──────╖│╔════╗│ ╔╧═════════╗          │            │
 ║ 590970 ║    │   ║ 0 ║└┤ 99bp ╟┘║ −1 ║└┐║ 20971566 ║          ├────────────┘
 ║ 678045 ║    │   ╚══╤╝ ╘══════╝ ╚══╤═╝ │╚══════════╝          │
 ║ 336290 ║  ┌─┴─╖  ┌─┴─╖  ┌─────╖  ┌┴──╖├──────────────────────┘
 ║ 721824 ╟──┤ ‼ ╟──┤ ? ╟──┤ 99b ╟──┤ + ║│
 ╚════════╝  ╘═══╝  ╘═╤═╝  ╘═════╝  ╘═╤═╝│    ╓┬──────╖
                      └───────┬───────┘  │    ╟┘ 99bp ║
                              └──────────┘    ╙───┬───╜
 ┌────────────────────────────────────────────────┴──────────────┐
 │╔══════════════════════════════════════════╗╔═══════════╗      │
 │║ 8592134145756414358602136806465202028576 ║║ 232783950 ║      │
 │╚══════════════════════════════╤═══════════╝╚╤══════════╝      │
 │               ┌───╖  ╔═══╗  ┌─┴─╖  ┌───╖  ┌─┴─╖  ┌─────────╖  │
 └───────────────┤ = ╟──╢ 1 ║  │ ‼ ╟──┤ ‼ ╟──┤ ? ╟──┤ int→str ╟──┴┐
                 ╘═╤═╝  ╚═══╝  ╘═╤═╝  ╘═╤═╝  ╘═╤═╝  ╘═════════╝   │
          ╔═══╗  ┌─┴─╖         ┌─┴─╖    │      └──────────────────┘
          ║ 0 ╟──┤ ? ╟─────────┤ ‼ ╟──┐
          ╚═══╝  ╘═╤═╝         ╘═══╝  │
              ╔════╧╗╔════════════════╧════════════════════════════════╗
              ║ 115 ║║ 20338288213193790107412311132593873016630280224 ║
              ╚═════╝╚═════════════════════════════════════════════════╝

1
প্লাস ওয়ান, এটি দুর্দান্ত
gyurisc

1
এই ভাষা দুর্দান্ত, দুর্দান্ত কাজ!
পাল্টা ঘড়ির

1
আমি এটি ESlang.org এ দেখেছি এবং এর চেহারা পছন্দ করেছি।
এমএল

56

jQuery + ফায়ারব্যাগ কনসোল

$('code:first').text()

;)


2
কি ভালো কিছু সম্পর্কে eval($($('code')[8]).text().replace(/print/g,'console.log'))করে <del> (ওরফে চুরি।) </ দেল>? এটি গানের পুরো লিরিক্স মুদ্রণ করে। : পি
জিমিনপি

2
এছাড়াও ক্রোমের জাভাস্ক্রিপ্ট কনসোলটিতে কাজ করে।
স্পোইক

শয়তান চালাক।
ম্যাক্সপাম

1
@ জিমিনপি দুর্ভাগ্যক্রমে, এটি উত্তর স্থিতিশীল সময়ের সাথে কীভাবে পরিবর্তিত হতে পারে তা স্থিতিশীল নির্বাচক নয় (বাস্তবে, এটি আর কাজ করে না)।
মুহাদ

2
@ মুহ্দ এখনও ততক্ষণ কাজ করেন যতক্ষণ না প্রশ্নটি পরিবর্তিত হয় - প্রথম কোড ব্লকটি সেই প্রশ্নের মধ্যে রয়েছে।
বব

24

এইচকিউ 9 + (1 টি চরিত্র)

9

স্বীকারযোগ্য এটি একটি টিউরিং সম্পূর্ণ ভাষা নয়, তবে এটি এখনও গণনা করে


13
আপনি এইচকিউ 9 বি ব্যবহার করবেন না কেন ? এটি টুরিং সম্পূর্ণ।
মতিন উলহাক

1
@ মন্টু আমি নিশ্চিত নই যে এইচকিউ 9 + বি সম্পূর্ণরূপে টিউর করছে .. কমান্ড বি কীবোর্ডের ইনপুটটি পোল করে এবং মূল্যায়ন করে যে এটি ব্রেনফাক হিসাবে এটি এইচকিউ 9 + একটি অপ্টোনাল ব্রেইনফাক ইন্টারপ্রেটার দিয়ে। অর্থাত্ এইচকিউ 9 + বিতে "বি" প্রোগ্রামটি স্টেডিনটি না পাওয়া পর্যন্ত পোলিং করবে! (বা ইওএফ) এবং ব্রেইনফাক হিসাবে এটি ব্যাখ্যা করুন ..
সিলেস্টার

20

কে বলেছে সি # এর খুব বেশি অনুষ্ঠান হয়েছে? যে ছিল সে, তারা কখনও ঠিক ছিল না।

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _99Bottles
{
    class Program
    {
        static void Main(string[] args)
        {
            PrintSong(99);
        }

        static void PrintSong(int bottleCount)
        {
            Func<int, string> sOrBlank = howMany => howMany > 1 ? "s" : "";

            PrintBottles(howManyBottles =>
            {
                Console.WriteLine("{0} bottle{1} of beer on the wall, {0} bottle{1} of beer.", howManyBottles, sOrBlank(howManyBottles));
                if (howManyBottles > 1)
                {
                    Console.WriteLine("Take one down and pass it around, {0} bottle{1} of beer on the wall.", --howManyBottles, sOrBlank(howManyBottles));
                }
                else
                {
                    Console.WriteLine("Go to the store and buy some more, 99 bottles of beer on the wall.", --howManyBottles);
                }
            },
            bottleCount);
        }

        static void PrintBottles(Action<int> printBottles, int count)
        {
            printBottles(count);

            if (count > 1)
            {
                PrintBottles(printBottles, --count);
            }
         }
    }
}

11
+1 পার্লের সমুদ্রের মধ্যে অন্য সি-স্টাইলের বলির ভেড়া mb
গ্লেন নেলসন

এটি যথেষ্ট পরিমাণে হ্রাস করা যায়।
নেলিয়াস

2
@ নেলিয়াস আপনি কি তার কোডের আগে যা বলেছিলেন তা কি পড়েছেনilivewithian ?
ড্যানিয়েল স্ট্যান্ডেজ

1
@ ড্যানিয়েল হ্যাঁ, এবং এর দ্বারা বোঝা যায় যে তিনি তার কোডের সমস্ত কিছু প্রয়োজনীয় বলে মনে করেন। যদি রসিকতা হিসাবে বোঝানো হয় তবে এটিকে খুব বেশি ভোট দেওয়া উচিত নয়। এটি সংক্ষিপ্ত, সৃজনশীল, দক্ষ বা কিছুটা চালাক নয়।
নেলিয়াস

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

18

সি

এই প্রোগ্রামটি প্রিপ্রসেসর ব্যবহার করে একক স্ট্রিং হিসাবে সম্পূর্ণ গানের পাঠ্য উত্পন্ন করছে। আসল সি কোডটি এভাবেই নির্মিত স্ট্রিংয়ের আউটপুট দেয়। stringsউত্পাদিত এক্সিকিউটেবলকে কল করলে এক্সিকিউটেবলের সম্পূর্ণ গানের পাঠ্য প্রকাশিত হয়।

#define BOTTLES(n) n " bottles of beer"
#define BOTTLE "1 bottle of beer"
#define OTW " on the wall, "
#define TAKE "Take one down, pass it around, "
#define BUY "Go to the store and buy some more, "
#define STOP "."
#define NL "\n"

#define LINE1(n) BOTTLES(n) OTW BOTTLES(n) STOP NL
#define LINE1A BOTTLE OTW BOTTLE STOP NL
#define LINE2(n) TAKE BOTTLES(n) STOP NL
#define LINE2A TAKE BOTTLE STOP NL
#define LINEX BUY BOTTLES("99") NL

#define MIDDLEPART(n) LINE2(n) NL LINE1(n)
#define MIDDLELAST LINE2A NL LINE1A

#define EIGHT_TO_TWO(S, M) M(S "8") M(S "7") M(S "6") M(S "5") M(S "4") M(S "3") M(S "2")
#define EIGHT_TO_ONE(S, M) EIGHT_TO_TWO(S, M) M(S "1")
#define EIGHT_TO_TWO_AGAIN(S, M) M(S "8") M(S "7") M(S "6") M(S "5") M(S "4") M(S "3") M(S "2")
#define EIGHT_TO_ONE_AGAIN(S, M) EIGHT_TO_TWO_AGAIN(S, M) M(S "1")
#define NINE_TO_TWO(S, M) M(S "9") EIGHT_TO_TWO(S, M)
#define EIGHT_TO_ZERO(S, M) EIGHT_TO_ONE(S, M) M(S "0")
#define NINE_TO_ZERO(S, M) M(S "9") EIGHT_TO_ZERO(S, M)

#define NINETIES EIGHT_TO_ZERO("9", MIDDLEPART)
#define NTIES(n) NINE_TO_ZERO(n, MIDDLEPART)
#define EIGHTIES_TO_TENS EIGHT_TO_ONE_AGAIN("", NTIES)
#define NAUGHTIES NINE_TO_TWO("", MIDDLEPART)

#define SONG LINE1("99") NINETIES EIGHTIES_TO_TENS NAUGHTIES MIDDLELAST LINEX

#include <stdio.h>

int main()
{
  puts(SONG);
  return 0;
}

1
সম্ভবত এগুলির সবচেয়ে কার্যকর এবং দ্রুত সমাধান।
টম পাউরেক

1
@ টমপ সময়োপযোগী দক্ষ, এক্সিকিউটেবল ফাইলের আকারে খুব অকার্যকর :)
qu ই

14

সি # ( 312 310 304 টি অক্ষর)

class P{static void Main(){string b=" bottle",w=" on the wall",o=" of beer",p=".\n",s="s";for(int i=99;i>0;i--)System.Console.Write(i+b+(i>1?s:"")+o+w+", "+i+b+(i>1?s:"")+o+p+(i>1?"Take one down and pass it around, "+(i-1)+b+(i-1>1?s:"")+o+w+p+"\n":"Go to the store and buy some more, "+99+b+s+o+w+p));}}

1
আমি বিশ্বাস করতে পারি না আপনি এটি আমার চেয়ে কম পেয়েছেন। আমি অভিভূত. আমাকে বিকল্পগুলির আরও ভাল সেটের জন্য অধ্যয়ন করতে হবে
jcolebrand

এবং এখন আমি এর জন্য অধ্যয়ন করেছি, আমি নীচে নেমে যাচ্ছি 300 300)
jcolebrand

12

সি শার্প

সংক্ষিপ্ত হওয়ার উদ্দেশ্যে নয়, তবে সম্ভবত এটি সৃজনশীল হিসাবে গণ্য হয়?

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        Console.WriteLine(string.Join(Environment.NewLine, Enumerable.Range(0, 100).Select(i =>
            string.Format(
                string.Format(
                    "{0} {1} {{3}} {{4}},{{9}}{0} {1} {{3}}.{{9}}{2},{{9}}{3} {4} {{3}} {{4}}.{{9}}",
                    i == 99 ? "{0}" : "{7}",
                    i == 98 ? "{1}" : "{2}",
                    i == 99 ? "{6}" : "{5}",
                    i == 98 ? "{0}" : "{8}",
                    i == 97 ? "{1}" : "{2}"
                ),
                "No",
                "bottle",
                "bottles",
                "of beer",
                "on the wall",
                "Take one down, pass it around",
                "Go to the store, buy some more",
                99 - i,
                (198 - i) % 100,
                Environment.NewLine
        ))));
    }
}

মনে রাখবেন এটি কেবলমাত্র একটি বিবৃতি :)


11

অবশ্যই সৃজনশীল হিসাবে যোগ্যতা অর্জন করে না, তবে এটি একটি একক কমান্ডের সাহায্যে কমান্ড লাইন থেকে সম্পন্ন হবে।

perl -e '$i=99;while($i>1){print("$i bottles of beer on the wall, $i bottles of beer.\nTake one down and pass it around, ".--$i." bottles of beer on the wall\n\n");}print("1 bottle of beer on the wall, 1 bottle of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.\n");'

11

হাস্কেল, 272 , 250 , 243 টি অক্ষর

(&)=(++)
b 1=" bottle"
b _=b 1&"s"
w=" on the wall"
p n=show n&b n&" of beer"
f n=putStrLn$p n&w&","&p n&".\n"&c(n-1)
c 0="Go to the store and buy some more, "&p 99&w&"."
c n="Take one down and pass it around, "&p n&w&"\n"
main=mapM f[99,98..1]

11

উইন্ডোজ পাওয়ারশেল (198)

filter b{"$_ bottle$('s'*!!--$_) of beer"}(99..1|%{($_|b)+($w=' on the wall')+", $($_|b)."
"Take one down and pass it around, $(--$_|b)$w.
"})[0..196]
"Go to the store and buy some more, $(99|b)$w."

মোটামুটি সহজবোধ্য.

আমি বিয়ারের বোতলগুলির জন্য একটি ফিল্টার ব্যবহার করছি, যেহেতু functionদীর্ঘতর এবং প্রার্থনাটির ক্ষেত্রে কোনও ক্ষেত্রে বন্ধনী প্রয়োজন। বহুবচন সনাক্তকরণ ( !!--$_) প্রথমে একের দ্বারা বোতলগুলির সংখ্যা হ্রাস করে (সুতরাং বহুবচন কোনওটি শূন্য নয়) প্রথমটি দিয়ে এটি বুলিয়ে যায় এবং এটিকে !উপেক্ষা করে আবার তা উপেক্ষা করে তাই এখন আমাদের কাছে একটি বুলিয়ান রয়েছে যা সংখ্যার বহুবচন দরকার কিনা তা বর্ণনা করে অথবা না. স্ট্রিংকে গুণিত করার পরে এটি স্পষ্টভাবে একটি পূর্ণসংখ্যার সাথে কাস্ট করা হয়।

ইনলাইন লাইন বিরতি মজাদার।

প্রয়োজনের চেয়ে বেশি লাইন ছড়িয়ে দেওয়া এবং পরেও কেটে ফেলা।


অবশ্যই সংক্ষিপ্ত, এবং এটি চেষ্টা এবং অধীনে যেতে একটি বার সেট করে !!! যদিও আমার দৃষ্টিকোণ থেকে, 196 এর মতো "ম্যাজিক নম্বর" এর উপস্থিতি ছিল এমন বিষয়গুলির শ্রেণিতে আমি আশা করি যে এড়াতে সক্ষম হব কারণ এটি ক্যাপচার করেছে (99 * 2) - ২. যেখানে আপনি বোতলটি পরিবর্তন করতে পারবেন এমন উত্তরের জন্য এক জায়গায় গণনা করুন :) দেখুন কোডগল্ফ.স্ট্যাকেক্সেঞ্জার.কম
সেকশনস /

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

filter b{"$_ bottle$('s'*!!--$_) of beer"}(99..1|%{($_|b)+($w=' on the wall')+", $($_|b).";"Take one down and pass it around, $(--$_|b)$w. "})[0..196];"Go to the store and buy some more, $(99|b) $w."এটি স্থির করে মোট 199 টি অক্ষর। (এর $wআগে একটি লাইন বিরতি যুক্ত করুন ")
ইসজি

ঠিক করার জন্য ধন্যবাদ। সেখানেও একটি অতিরিক্ত অতিরিক্ত স্থান ছিল, সুতরাং তার পরিবর্তে গণনা 198 is
জোয়

10

কার্ল 19 অক্ষর

(ইন্টারনেট সংযোগ প্রয়োজন)

curl -L j.mp/eGv9K5

7
আমি এটি খুব বেশি প্রসারিত বিবেচনা করি।
মার্চগ

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

3
তবুও আমি এটি পছন্দ করি।
pimvdb

1
যদি উদ্দেশ্যটি সবচেয়ে সংক্ষিপ্ত কোড ছিল তবে আমি আপনাকে চতুরতার জন্য একটি বিন্দু দেব।
নিল

9

প্রায় সঠিক-অ্যান্টি-গল্ফ উবার-উত্সাহী নতুন সি প্রোগ্রামার থেকে যারা পার্ল শিখছে?

#!/usr/bin/perl
#      ^
#      |
#      |
# That's the Perl interpreter.
# You might need to change this line based on
# your Linux/Unix distribution.

# Pragmas for debugging!
use strict;
use warnings;

# Library dependencies...none! lolz

# Main implementation
my $number_of_bottles_of_beer_on_the_wall = 99; #start with 99 bottles
LOOP: while( $number_of_bottles_of_beer_on_the_wall > 0 )
{
  printf( "%d bottles of beer on the wall, %d bottles of beer\n",
          $number_of_bottles_of_beer_on_the_wall,
          $number_of_bottles_of_beer_on_the_wall,                  );

  if( $number_of_bottles_of_beer_on_the_wall > 1 )
  {
    $number_of_bottles_of_beer_on_the_wall -= 1;
    printf( "Take one down and pass it around, %d bottles of beer on the wall.\n\n",
            $number_of_bottles_of_beer_on_the_wall,                               );
  }
  else
  {
    printf( "Go to the store and buy some more, %d bottles of beer on the wall\n",
            99                                                                     );
    last LOOP;
  }
}

কেন হবে না /usr/bin/env perl?
nyuszika7h

1
@ nyuszika7h অন্তর্দৃষ্টিপূর্ণ সমালোচনা! ;)
ড্যানিয়েল স্ট্যান্ডেজ

8

জাভাস্ক্রিপ্ট ( 216 228 215)

for(a=99,c=" on the wall";a;)document.write((d=eval(b="(a||99)+' bottle'+(a-1?'s':'')+' of beer'"))+c+", "+d+".<br>"+(--a?"Take one down and pass it around, ":"Go to the store and buy some more, ")+eval(b)+c+".<p>")

সম্পাদনা: প্রারম্ভিক সংস্করণে একটি "1 বোতল বিয়ার" ছিল, তৃতীয় সংস্করণটি পুরোপুরি নতুন করে লেখা হয়েছে, শীতল কৌশলগুলি (a||99)সর্বশেষ লাইনে 99 পেতে পছন্দ করুন , (a-1?'s':'')প্রতিটি ক্ষেত্রে বহুবচন তৈরি করেছেন তবে অপব্যয়ের a==1প্রয়োজন ছাড়াই ==এবং মানটি নির্ধারণ করছেন এর bএক বিবৃতিতে যেখানে এটি ব্যবহার করা হয় ভিতরে।


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

আমি নিশ্চিত না আপনি কী বোঝাতে চাইছেন, আপনি ঠিক কী পরিবর্তন করবেন?
আআআআআআআআআআআআআআআআআআআআআআআআআ

এটি একটি শ্লোকটি খুব তাড়াতাড়ি থামিয়ে দেয়। শেষ আয়াতটি যাওয়া উচিত "no more bottles of beer on the wall, no more bottles..." - দেখুন: 99-bottles-of-beer.net/lyrics.html
মার আর্লিগসন

বিটিডাব্লু, আমি 233 বাইটে একটি সম্পূর্ণ, সঠিক সংস্করণ পরিচালনা করেছি: for(o,e,n=100,t=" on the wall";n-->-1;)o=e+t+", "+e+".<br>"+(n>-1?"Take one down, pass it around, ":"Go to the store and buy some more, ")+(e=(0>n?99:n||"no more")+" bottle"+(1!=n?"s":"")+" of beer")+t+".<p>",99>n&&document.write(o)
মার আর্লিগসন

@ মারিরলিগসন সাইটে আপনাকে স্বাগতম। এই চ্যালেঞ্জের জন্য গানের কথা শুরুর পোস্টে সংজ্ঞায়িত করা হয়েছে।
আআআআআআআআআআআআআআ

7

সি

আমি অবশ্যই এই প্রশ্নটি মিস করেছি, সুতরাং আমি অন্য সংস্করণের উত্তর হিসাবে পোস্ট করেছি here এটি সি কুইন ভিত্তিক সংস্করণ। সংকলন এবং গানের পরবর্তী লাইন পেতে চালান। বিরক্ত হওয়া পর্যন্ত পুনরাবৃত্তি করুন। যদি কোডটি "যাওয়ার সময় ..." বলে থাকে তবে পরের বার আপনি কমান্ড লাইন আর্গুমেন্ট হিসাবে চালানোর সময় বিয়ারের সংখ্যা দিন।

// Time to go to the shop and get some beer
//
//
//
//
// #####.#####.#####.#####.#####.#####.#####
// ##.#####.#####.#####.#####.#####.#####.##
// #####.#####.#####.#####.#####.#####.#####
// ##.#####.#####.#####.#####.#####.#####.##

char *z [] = {
"void l(char *s,int b){int i;printf(\"// \");for(i=0;i<b;++i)printf(s);",
"printf(\"\\n\");}\nint main(int argc, char *argv[]){\nint i,j,k,x=%d;",
"char*p;\nif(!x&&argc==2)x=atoi(argv[1]);\nif(!x){printf(\"// Time to ",
"go to the shop and get some beer\\n//\\n//\\n//\\n//\\n\");k=7;\n",
"}else{printf(\"// %%d bottles of beer on the wall, %%d bottles of beer",
".\\n\",x,x);printf(\"// Take one down and pass it round, \");\n",
"if(x>1)printf(\"%%d bottles of beer on the wall.\\n//\\n\",x-1);\n",
"else printf(\"no more bottles of beer on the wall.\\n//\\n\");\n",
"k=x>2?x:2;l(\"  ^   \",x);l(\" / \\\\  \",x);l(\"/   \\\\ \",x);",
"l(\"|   | \",x);l(\"|Duf| \",x);l(\"|   | \",x);l(\"----- \",x);}\n",
"for(i=0;i<4;++i){\nprintf(\"// %%s\", i&1 ? \"##.\" : \"\");\n",
"for(j=i&1;j<k;++j)\nprintf(\"%%s#####\",j!=(i&1)?\".\":\"\");\n",
"printf(\"%%s\\n\",i&1?\".##\":\"\");}\nprintf(\"\\nchar *z [] = {\\n\");\n",
"for(i=0;i<sizeof z/sizeof z[0];++i){\nprintf(\"\\\"\");\n",
"for(p=z[i];*p;++p)\nswitch (*p){\ncase '\\n':printf(\"\\\\n\");break;\n",
"case '\\\\':printf(\"%%c%%c\",92,92);break;\n",
"case '%%':printf(\"%%c\",37);break;\ncase '\"':printf(\"%%c%%c\",92,'\"');break;\n",
"default:printf(\"%%c\", *p);break;}\nprintf(\"\\\",\\n\");}\n",
"printf(\"};\\n\");\nfor(i=0;i<sizeof z/sizeof z[0];++i)\n",
"printf(z[i],x?x-1:0);}\n",
};
void l(char *s,int b){int i;printf("// ");for(i=0;i<b;++i)printf(s);printf("\n");}
int main(int argc, char *argv[]){
int i,j,k,x=0;char*p;
if(!x&&argc==2)x=atoi(argv[1]);
if(!x){printf("// Time to go to the shop and get some beer\n//\n//\n//\n//\n");k=7;
}else{printf("// %d bottles of beer on the wall, %d bottles of beer.\n",x,x);printf("// Take one down and pass it round, ");
if(x>1)printf("%d bottles of beer on the wall.\n//\n",x-1);
else printf("no more bottles of beer on the wall.\n//\n");
k=x>2?x:2;l("  ^   ",x);l(" / \\  ",x);l("/   \\ ",x);l("|   | ",x);l("|Duf| ",x);l("|   | ",x);l("----- ",x);}
for(i=0;i<4;++i){
printf("// %s", i&1 ? "##." : "");
for(j=i&1;j<k;++j)
printf("%s#####",j!=(i&1)?".":"");
printf("%s\n",i&1?".##":"");}
printf("\nchar *z [] = {\n");
for(i=0;i<sizeof z/sizeof z[0];++i){
printf("\"");
for(p=z[i];*p;++p)
switch (*p){
case '\n':printf("\\n");break;
case '\\':printf("%c%c",92,92);break;
case '%':printf("%c",37);break;
case '"':printf("%c%c",92,'"');break;
default:printf("%c", *p);break;}
printf("\",\n");}
printf("};\n");
for(i=0;i<sizeof z/sizeof z[0];++i)
printf(z[i],x?x-1:0);}

আপনার প্রস্তাবিত সম্পাদনার বিষয়ে @ ড্রিমওয়ারিওর, আপনি কি নিজের কোডটি পেস্টবিনে রাখার বিষয়টি বিবেচনা করেছেন যাতে আপনি এটি একটি মন্তব্য হিসাবে পোস্ট করতে পারেন?
nderscore

6

জাভাস্ক্রিপ্ট (২৮৫)

এটি ধরে নেয় যে কোনও স্ট্রিং আউটপুট করতে মুদ্রণ নামে একটি ফাংশন রয়েছে।

b=' of beer on the wall';n=100;while(--n>1)if(n>1)print(n+" bottles"+b+', '+n+" bottles of beer.\nTake one down and pass it around, "+(n-1)+' bottle'+(n-1>1?'s':'')+b+'.\n\n');print("1 bottle"+b+", 1 bottle of beer.\nGo to the store and buy some more, 99 bottles of beer on the wall.")

8
আমি নিশ্চিত না যে ধরে নেওয়া ফাংশনগুলি ন্যায্য। উদাহরণস্বরূপ, আমার প্রোগ্রাম হতে পারে b();। ধরে নিই এমন একটি ফাংশন রয়েছে b()যা দেয়ালে 99 বোতল বিয়ার মুদ্রণ করে। :)
ক্রিস Laplante

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

2
document.writelnকাজ করে।
ক্রিস ল্যাপ্লেন্ট

4
ব্রাউজারগুলির জন্য

5
জাভাস্ক্রিপ্টের আইও রয়েছে: alertআউটপুট promptহিসাবে, ভেরিয়েবল ইনপুট এবং confirmবুলিয়ান ইনপুট হিসাবে। ইউআই যতদূর যায় তারা স্তন্যপান করে তবে তারা স্ট্যান্ডার্ড ব্লকিং আইও ফাংশন। alertএবং printএকই দৈর্ঘ্য, সুতরাং আপনার কোড প্রায় সমান হতে হবে।
zzzzBov

6

স্কিম (270)

কোন সাদা জায়গা নেই:

(let l((i 99))(let((b" bottle")(c" on the wall")(d"Take one down and pass it around,")(e".\n")(f", ")(g" of beer"))(if(= i 1)(map display`(1,b,g,c,f,1,b,g,e"Go to the store and buy some more, 99",b,c,e))(begin(map display`(,i,b,g,c,f,i,b,e,d,i,b,c,e"\n"))(l(-1+ i))))))

সাদা স্থান সহ:

    (let l ((i 99))
      (let ((b" bottle")
            (c" on the wall")
            (d"Take one down and pass it around, ")
            (e".\n")
            (f", ")
            (g" of beer"))
        (if (= i 1)
            (map display`(1 ,b ,g ,c ,f ,1 ,b ,g ,e
                          "Go to the store and buy some more, 99" ,b ,c ,e))
            (begin (map display `(,i ,b ,g ,c ,f ,i ,b ,e ,d ,i ,b ,c ,e "\n"))
                   (l (-1+ i))))))

6

পাইথন - অনেক

Amidoinitrite?

print"""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.

....

  Ok, this is stupid. First of all, what the brainfuck are the bottles doing on the wall? They're not spiders nor picture frames. And how are they sitting on the wall?

94 bottles of beer on the wall, 9.. oops, they fell down. 94 bottles of beer on the floor, 94 bottles of beer.

  Second.. who the HQ9+ wants to keep track? I think I lost count after drinking the 2nd one...

Take one ... um... up, and pass it around,  .....  er.. a lot of bottles of beer still on the floor.

  Fourthly, what's with this passing around scheme? They're not j..I mean letters, yeah, or boxes of chocolate. We all can just take one and drink it. It's healthier too.

A pile of bottles of beer on the floor, a pile of bottles of beer.
Everyone take one up and drink it, still a whole bunch of bottles of beer on the floor.

  Um.. seventhly, are we really that many in this assembly that we can finish 200 or however many bottles we had in the beginning? Without passing out?

Go to the store and buy some more

  Yeah and who's gonna pay for it? Definitely not me. And how are you going to bring 300 bottles back from the store?
  In your car? Buddy, you're so drunk, you can't even C anything. Go home dude, go home. Take a cab."""

অতিরিক্ত রেফারেন্স (কোড দিয়ে আমাকে অনেক সাহায্য করেছে): http://www.youtube.com/watch?v=Y0Z0raWIHXk


5

পাইথন (318)

পাইথন প্রোগ্রামটি ছোট করার এই পদ্ধতিটি আমি খুঁজে পেয়েছি :)

exec'eJxtjrFqwzAQQHd/xVVgLCVqSbq5RHO2TtlcgyX7Qk3luyAphP59ZA0thGzi9O7es0bUERyn5DE/+AwOMdTxi0TljLeLmyzQB4GlaaCBg/hkWDigqMb/76aZz0CHHaCPCLaWTpLSTWw2kl7MXmkBTJC+EW7Wey3U9hmzzqU42R/MNMLEt6KFi40R5gQ28JUmndO0ODIkLhdjyjWFc9dfiLxg6Vsx1ZExu36Vddn2miVD2w59R4d9/6d+f8h7Wze3Y+GrS5gpwSjbVlV3Y1BZCg=='.decode('base64').decode('zip')

এই .ডিকোড.ডিকোড স্টাফটি প্রথমবার দেখেছি বলে আমার কাছে বোকা মনে হয়েছিল, তবে আমি এখন ব্যবহারিক উদ্দেশ্যে (অযৌক্তিক উপায়ে ফাংশন হিসাবে আমার .বাশার্কে পাইথন কোডটি প্লপ করতে) ব্যবহার করছি, তাই ধন্যবাদ।
ixtmixilix

5
আমি গণনা করি যে সঙ্কুচিত কোডটিতে 300 টি অক্ষর রয়েছে। কেন তখন সংকোচ?
জোহানেস কুহ্ন

5

রেব্মু - 167 টি অক্ষর

M N 99 Bdz[cb[n{ bottle}egN 1{s}{}{ of beer}]]loN[cb[b W{ on the wall}C{, }b P{.}lfEZ--n[Nm{Go to the store and buy some more}]{Take one down and pass it around}cBwPlf]]

সম্ভবত কয়েকটি অক্ষর শেভ করতে পারে, এটি কেবল প্রথম চেষ্টা ছিল। :)

এখানে সংক্ষিপ্ত রেবোল যা সংক্ষিপ্তভাবে ফুটে উঠেছে। তবুও স্পষ্টত বিবেচনা করে বেশ প্রতিযোগিতামূলক:

m: n: 99

b: does [
    combine [n { bottle} either n > 1 {s} {} { of beer}]
]

loop n [
    print combine [
        b w: { on the wall} c: {, } b p: {.} newline

        either 0 == -- n [
            n: m
            {Go to the store and buy some more}
        ] [
            {Take one down, and pass it around}
        ]

        c b w p newline
    ]
]

মন্তব্য করা সোর্স কোড গিটহাবটিতে উপলব্ধ


5

পিএইচপি: 285 240 233 231 টি অক্ষর

$i=99;$b=" bottles of beer";$o=" bottle of beer";$c=" on the wall";while($i>1){echo"$i$b$c, $i$b.\nTake one down and pass it around, ".--$i.(($i>1)?$b:$o).$c.".\n\n";}echo"$i$o$c, $i$o.\nGo to the store and buy some more, 99$b$c.";

আউটপুট এখানে: http://ideone.com/5fQmcd


4

পাইথন, 241 অক্ষর

s=""
i=99
b="%d bottl%s of beer"
w=" on the wall"
t="Take one down and pass it around, "
p=q="es"
while i:s+=b%(i,p)+w+", "+b%(i,p)+".\n";i-=1;p=p[:i];s+=t+b%(i,p)+w+".\n\n"
print s[:-64]+"Go to the store and buy some more, "+b%(99,q)+w+"."

4

রুবি, 274 বাইট

রুবির কাছে এখনও বেশ নতুন, সত্যই কেবল চারদিকে খেলা playing

o =" bottles of beer";w=" on the wall";t="Take one down and pass it around, ";s=" bottle of beer"
99.downto(3){|b|puts"#{b}#{o+w}, #{b}#{o}.\n#{t}#{b-1}#{o+w}.\n\n"}
puts"2 #{o+w}, 2 #{o}.\n#{t}1#{s}#{w}.\n\n1#{s+w}, 1#{s}.\nGo to the store and buy some more, 99#{o+w}."

4

সি # (299 টি অক্ষর)

using System;class D{static void Main(){string a="s",z="",w=" on the wall",q=", ",p=".\n",b=" bottle",c=" of beer";for(int O=99;O>=1;)Console.WriteLine(O+b+(O>1?a:z)+c+w+q+O+b+(O>1?a:z)+c+p+(--O>0?"Take one down and pass it around, "+O:"Go to the store and buy some more, 99")+b+(O==1?z:a)+c+w+p);}}

1
আপনার চূড়ান্ত লাইনটি "99 বোতল" এর পরিবর্তে "99 বোতল" প্রদর্শন করে এবং আপনার লুপটি 99 এর পরিবর্তে 19 থেকে শুরু হবে (যদিও এটি কেবলমাত্র একটি পর্যবেক্ষণ)।
নেলিয়াস

@ নেলিয়াস ~ সংশোধন করেছেন ~ এবং আপনার প্রতিযোগিতামূলক কোডটির জন্য ধন্যবাদ আমি আমার পুনর্বিবেচনা করেছি এবং কিছু একক blocksোকানো ব্লকগুলি সরিয়েছি এবং আমার নিজস্ব কোডে কিছু পূর্ববর্তী অবস্থানকে হ্রাস করেছি। এখন নিচে সাফল্যের সাথে 300 এর নিচে।
jcolebrand

আপনি "সিস্টেম ব্যবহার করে" ফেলে দিয়ে 293 এ নামতে পারেন; এবং "
কনসোল.ওরাইটলাইন

@ টেস্টার 101 ~ শুভ কল। এটা বিবেচনা করা হয়নি!
jcolebrand

4

জাভাস্ক্রিপ্ট (7 ফাংশন)

গল্ফ হয় না এটি গানের একটি (বেশিরভাগ) কার্যকরী বাস্তবায়ন হিসাবে চিহ্নিত।

function firstUpper(s) {
    return s.slice(0, 1).toUpperCase() + s.slice(1);
}

function bottles(x) {
    return (x || "no more") + " " + (x == 1 ? "bottle" : "bottles") + " of beer";
}

function wall(x) {
    return bottles(x) + " on the wall";
}

function line1(x) {
    return wall(x) + ", " + bottles(x) + ".";
}

function line2(x, max) {
     return (x ? "take one down and pass it around, " + wall(x - 1) : "go to the store and buy some more, " + wall(max)) + ".";
}

function verse(x, max) {
    return [line1(x), line2(x, max)].map(firstUpper).join("\n") + "\n\n";
}


function song(max) {
    var text = "";
    for(var x = max; x >= 0; x--) {
        text += verse(x, max);
    }
    return text;
}

print(song(99));

4

যান (263)

package main
import "fmt"
func main(){b,i,e,r:=fmt.Println,99,"bottles","of beer on the wall"
for i>0{b(i,e,r+",",i,e,r[:7]+".")
if i--;i<2{e=e[:6]}
if i>0{b("Take one down and pass it around,",i,e,r+`.
`)}}
b("Go to the store and buy some more,",99,e+"s",r+".")}

3

পিএইচপি - 252 বাইট

$a=" bottles of beer";$b=str_replace("s","",$a);$c=" on the wall";for($i=98;$i;)echo($j=$i+1).$a.$c.", ".$j.$a.".
Take one down and pass it around, ".$i.($i-->1?$a:$b).$c.".

";echo"1".$b.$c.", 1".$b.".
Go to the store and buy some more, 99".$a.$c.".";

আমি আশা করি আগামীকাল আমি আরও কিছু সংকুচিত করব।


3

রুবি 1.9.2p136: 223

আমি কোনও কাপুরুষ নয়, আপনি আমার পড়তে পারেন; পি

b="%d bottle%s of beer"
w=' on the wall'
99.downto(1){|z|s=b%[z,z>1?'s':'']
puts s+w+", "+s+".
"+(z>1?"Take one down and pass it around, "+b%[z-1,z>2?'s':'']+w+".

" :'Go to the store and buy some more, '+b%[99,'s']+w+".")}

3

(ওরাকল) এসকিউএল

কোনও চরিত্রের গণনা নেই, আমি এটি গল্ফ করিনি। এটি করার জন্য এটি একটি মজাদার উপায় খুঁজে পেয়েছে।

WITH
   bottles AS (
      SELECT LEVEL - 1 AS bottle 
      FROM dual
      CONNECT BY LEVEL <= &number_of_bottles + 1
   ),
   fragments AS (
      SELECT
         'no more ' AS none,
         'bottles of beer' AS supply,
         ' on the wall' AS wall,
         'Take one down and pass it around' AS drink,
         'Go to the store and buy some more' AS refill,
         CHR(13) || CHR(10) AS newline
      FROM dual
   ),
   combined AS (
      SELECT
         b.bottle,
         DECODE(
            b.bottle, 
            1, b.bottle || ' ' || REPLACE(f.supply, 's'),
            0, f.none || f.supply,  
            b.bottle || ' ' || f.supply
         ) AS supply
      FROM bottles b
      CROSS JOIN fragments f

   ),
   two_lines AS (
      SELECT LEVEL AS line
      FROM dual
      CONNECT BY LEVEL <= 2
   )
SELECT
   CASE l.line
      WHEN 1 THEN REPLACE(c1.supply, 'n', 'N') || f.wall || ', ' || c1.supply || '.'
      WHEN 2 THEN DECODE(b.bottle, 0, f.refill, f.drink) || ', '  || c2.supply || f.wall || '.' 
   END AS song 
FROM bottles b
LEFT JOIN combined c1 ON (c1.bottle = b.bottle)
LEFT JOIN combined c2 ON (c2.bottle = DECODE(b.bottle - 1, -1, &number_of_bottles, b.bottle - 1))
CROSS JOIN two_lines l
CROSS JOIN fragments f
ORDER BY
   b.bottle DESC,
   l.line;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.