কিংবদন্তি Yggdrasil আউটপুট


39

আপনার কাজ হ'ল জীবনের কিংবদন্তি গাছ, ইয়েজিড্রেসিলের উপস্থাপনা

আপনাকে অবশ্যই এমন একটি প্রোগ্রাম লিখতে হবে যার আউটপুট হ'ল:

                                       /\
                                      /**\
                                     /****\
                                    /******\
                                    /******\
                                   /********\
                                  /**********\
                                 /************\
                                /**************\
                                 /************\
                                /**************\
                               /****************\
                              /******************\
                             /********************\
                            /**********************\
                              /******************\
                             /********************\
                            /**********************\
                           /************************\
                          /**************************\
                         /****************************\
                        /******************************\
                           /************************\
                          /**************************\
                         /****************************\
                        /******************************\
                       /********************************\
                      /**********************************\
                     /************************************\
                    /**************************************\
                        /******************************\
                       /********************************\
                      /**********************************\
                     /************************************\
                    /**************************************\
                   /****************************************\
                  /******************************************\
                 /********************************************\
                /**********************************************\
                     /************************************\
                    /**************************************\
                   /****************************************\
                  /******************************************\
                 /********************************************\
                /**********************************************\
               /************************************************\
              /**************************************************\
             /****************************************************\
            /******************************************************\
                  /******************************************\
                 /********************************************\
                /**********************************************\
               /************************************************\
              /**************************************************\
             /****************************************************\
            /******************************************************\
           /********************************************************\
          /**********************************************************\
         /************************************************************\
        /**************************************************************\
               /************************************************\
              /**************************************************\
             /****************************************************\
            /******************************************************\
           /********************************************************\
          /**********************************************************\
         /************************************************************\
        /**************************************************************\
       /****************************************************************\
      /******************************************************************\
     /********************************************************************\
    /**********************************************************************\
            /******************************************************\
           /********************************************************\
          /**********************************************************\
         /************************************************************\
        /**************************************************************\
       /****************************************************************\
      /******************************************************************\
     /********************************************************************\
    /**********************************************************************\
   /************************************************************************\
  /**************************************************************************\
 /****************************************************************************\
/******************************************************************************\
                                   |--------|
                                   |--------|
                                   |--------|
                                   |--------|
                                   |--------|
                                   |--------|
                                   |--------|
                                   |--------|
                                   |--------|
                                   |--------|
                                   |--------|
                                   |________|

কোনও পেছনের সাদা স্থান নেই। চূড়ান্ত নিউলাইন বাদ দেওয়া যেতে পারে।

চেকিংকে আরও সহজ করার জন্য, এখানে প্রত্যাশিত আউটপুটটির এমডি 5 যোগফল রয়েছে:

  • 374899e56bc854d04639c43120642e37 - শেষ পর্যন্ত কোন নিউলাইন নেই।
  • 03afb81d960b8e130fe2f9e0906f0482 - শেষে নিউলাইন

স্ট্যান্ডার্ড লুফোলস প্রযোজ্য। এটি কোড-গল্ফ, তাই বাইটের মধ্যে সবচেয়ে ছোট এন্ট্রি জয়!


10
সম্পর্কিত: কোডগল্ফ.স্ট্যাকেক্সেঞ্জাও.ইউ / 15860/15599 । নাক্স, আপনার বিপণনে কাজ করা উচিত। প্রতিটি পরিবার এই ক্রিসমাসে একটি ইজিডগ্রাসিল চায়। আমি দেখছি আপনি গ্রাহামের নম্বর প্রশ্নেরও উত্তর দিয়েছেন। আপনার অবশ্যই গুরুত্বপূর্ণ বিষয় পছন্দ করা উচিত আসুন "রকেট" এবং "আইসক্রিম শঙ্কু" এর কিছু নতুন নাম আসুন।
স্তরের নদী সেন্ট


4
@ নাক্স: যেহেতু বিশ্ব গাছের ফল রয়েছে, এবং এঞ্জিওস্পার্মগুলি নেই এবং এটি স্পষ্টভাবে কিছু বিবরণের একটি অন্তর্ভুক্তকারী, দুর্ভাগ্যবশত দেখে মনে হচ্ছে আপনি ভুল গাছের ছবি
তুলেছেন

@ নাক্স হুঁ। আপনি সঠিক. প্যাড্যান্ট (আমি) তার নিজের পেটার্ডে উত্তোলন করছে। Md5sums পরিবর্তন হয়েছে।
স্কট লিডলি

1
ত্রুটি, বিন্দু বিন্দু, Yggdrasil অবশ্যই এডদাসে একটি ছাই গাছ, একটি ফার নেই। কিন্ডা এই মত
অ্যালেক্স

উত্তর:


22

গল্ফস্ক্রিপ্ট, 84 77 76 75 72 টি অক্ষর

হাওয়ার্ডের থেকে আলাদা পন্থা । এটি চেষ্টা করতে অক্ষর গণনা ক্লিক করুন।

10,{.)4*,\3*>{.39\-' '*'/'@2*'*'*'\
'}/}/12,{' '35*'|'@11<'_-'1/=8*1$n}/

হাওয়ার্ড 3 টি অক্ষর সংরক্ষণ করার জন্য ধন্যবাদ!

ব্যাখ্যা :

এটি আমার পাইথন সমাধানের কম-বেশি একটি সোজা বন্দর । কিছু অভিব্যক্তিমূলক স্বাধীনতা গ্রহণ (স্ট্যাকের অবস্থানগুলি ট্র্যাক রাখার পরিবর্তে নামকরণের ভেরিয়েবলগুলি ব্যবহার করা, এবং printসত্যই স্ট্যাকের উপরে জিনিস রাখছে, প্রিন্টিং নয়):

10,{...}/            # for i in range(10):
   .                 #    x = i
   )4*,              #    Y = range((i+1)*4)
   \3*               #    x *= 3
   >                 #    Y = Y[x:]  # y is now range(3*i, (i+1)*4)
   {...}/            #    for j in Y:
      .39\-          #        q = 39 - j
      ' '*           #        print ' '*q  # print right number of spaces
      '/'            #        print '/'
      @2*            #        j *= 2
      '*'*           #        print '*'*j
      '\<NEWLINE>'   #        print "\\\n"
12,{...}/            # for i in range(12):
    ' '35*           #    print ' '*35
    '|'              #    print '|'
    @11<             #    i = i < 11
    '_-'1/=          #    z = "_-"[i] # pick "-" if i < 11, else pick "_"
    8*               #    print z*8
    1$               #    print '|' # (copy from earlier in the stack)
    n                #    print "\n"

1
আপনি আমার সমাধান হিসাবে একই লাইন ব্রেক ব্রেক ব্যবহার করতে পারেন। '\\'nস্ট্রিং (+/- 0 টি অক্ষর) এর মধ্যে নতুন লাইনটি টানানোর পরিবর্তে এখন ব্যাকস্ল্যাশকে আর এড়িয়ে যাওয়ার দরকার নেই (-1 অক্ষর)।
হাওয়ার্ড

1
আরও দুটি: 4*4+সমান )4*এবং '_-'[=]এটি লেখা যেতে পারে '_-'1/=যা +শেষকে অচল করে দেয়।
হাওয়ার্ড

3
একটি ব্যাখ্যা দরকারী হতে পারে ...? এটা কি খুব জিজ্ঞাসা?

@ প্রফেসরফিশ: ঠিক এখন আসছেন!
ক্লাদিউ

আপনার পিছনের দরকার নেই ';' এখানে? নাহলে গল্ফস্ক্রিপ্ট ডিফল্টরূপে একটি যুক্ত হওয়ায় দুটি ট্রেলিং নিউলাইন থাকবে।
নবেব

21

হামলস্যাস

37 + 277 = 314

Haml:

%link(rel="stylesheet" href="s")
%pre

sass:

pre:after{$l:"";@for$k from0 to10{@for$i from0 to4+$k{@for$j from0 to40-($k*6+$i*2)/2{$l:$l+' ';}$l:$l+'/';@for$j from0 to$k*6+$i*2{$l:$l+'*';}$l:$l+"\\\a ";}}@for$i from0 to12{@for$j from0 to35{$l:$l+" ";}@if$i<11{$l:$l+"|--------|\a ";}@else{$l:$l+"|________|";}}content:$l;}

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


এতে উত্পন্ন হয়:

এইচটিএমএল:

<link rel="stylesheet" href="s" /><pre></pre>

সিএসএস:

pre:after {
  content: "                                        /\\\a                                        /**\\\a                                       /****\\\a                                      /******\\\a                                      /******\\\a                                     /********\\\a                                    /**********\\\a                                   /************\\\a                                  /**************\\\a                                   /************\\\a                                  /**************\\\a                                 /****************\\\a                                /******************\\\a                               /********************\\\a                              /**********************\\\a                                /******************\\\a                               /********************\\\a                              /**********************\\\a                             /************************\\\a               
             /**************************\\\a                           /****************************\\\a                          /******************************\\\a                             /************************\\\a                            /**************************\\\a                           /****************************\\\a                          /******************************\\\a                         /********************************\\\a                        /**********************************\\\a                       /************************************\\\a                      /**************************************\\\a                          /******************************\\\a                         /********************************\\\a                        /**********************************\\\a                       /************************************\\\a                      /**************************************\\\a                     /******************************
**********\\\a                    /******************************************\\\a                   /********************************************\\\a                  /**********************************************\\\a                       /************************************\\\a                      /**************************************\\\a                     /****************************************\\\a                    /******************************************\\\a                   /********************************************\\\a                  /**********************************************\\\a                 /************************************************\\\a                /**************************************************\\\a               /****************************************************\\\a              /******************************************************\\\a                    /******************************************\\\a                   /**********************************
**********\\\a                  /**********************************************\\\a                 /************************************************\\\a                /**************************************************\\\a               /****************************************************\\\a              /******************************************************\\\a             /********************************************************\\\a            /**********************************************************\\\a           /************************************************************\\\a          /**************************************************************\\\a                 /************************************************\\\a                /**************************************************\\\a               /****************************************************\\\a              /******************************************************\\\a             /*****************************************************
***\\\a            /**********************************************************\\\a           /************************************************************\\\a          /**************************************************************\\\a         /****************************************************************\\\a        /******************************************************************\\\a       /********************************************************************\\\a      /**********************************************************************\\\a              /******************************************************\\\a             /********************************************************\\\a            /**********************************************************\\\a           /************************************************************\\\a          /**************************************************************\\\a         /****************************************************************\\\a        /*********
*********************************************************\\\a       /********************************************************************\\\a      /**********************************************************************\\\a     /************************************************************************\\\a    /**************************************************************************\\\a   /****************************************************************************\\\a  /******************************************************************************\\\a                                    |--------|\a                                    |--------|\a                                    |--------|\a                                    |--------|\a                                    |--------|\a                                    |--------|\a                                    |--------|\a                                    |--------|\a                                    |--------|\a                                    
|--------|\a                                    |--------|\a                                    |________|"; }

ফলাফল পৃষ্ঠা


1
আপনি কোডগল্ফটিতে এক টন এইচটিএমএল / সিএসএস সমাধান দেখতে পাচ্ছেন না। সুন্দর কাজ.
Mordred

16

সিজেম , 62 বাইট

A,{I4+,{I3*J+_39\-S*'/@2*'**'\N}fJ}fI{35S*'|'-8*'|N++}C*'-/'_*

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

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

A,           " Push [ 0  …  9 ].                                                   ";
{            " For each I in that array:                                           ";
  I4+,       " Push [ 0  …  I + 3 ].                                               ";
  {          " For each J in that array:                                           ";
    I3*J+_   " Push K := 3 * I + J twice.                                          ";
    39\-S*   " Push a string consisting of 39 - K spaces.                          ";
    '/       " Push a slash.                                                       ";
    @2*'**   " Push a string consisting of 2 * K asterisks.                        ";
    '\N      " Push a backslash and a linefeed.                                    ";
  }fJ        "                                                                     ";
}fI          "                                                                     ";
{            " Do the following 12 times:                                          ";
  35S*       " Push a string consisting of 35 spaces.                              ";
  '|         " Push a vertical bar.                                                ";
  '-8*'|++   " Push the string '--------|\n'.                                      ";
}C*          "                                                                     ";
'-/'_*       " Replace the hyphen-minus signs of the last string with underscores. ";

2
আমি GolfScript পরিবর্তে CJam ব্যবহার শুরু পেয়েছেন ...
Claudiu

কি সিজেএম কোড এত কমপ্যাক্ট করে তোলে? এটি কি কেবল সাধারণ বৈশিষ্ট্যগুলি একসাথে ভাল মেলে বা কোনও সুপার-ট্রিক আছে? বা এটি আসলে সিজেম নয়, তবে সিজেএম প্রোগ্রামার তাই?
vi।

2
@ ভিআই: এটি উভয়ের মিশ্রণ। 1. সিজেএম স্ট্যাক ভিত্তিক, সুতরাং আপনি সাধারণত কোনও ভেরিয়েবল ব্যবহার না করেই পালিয়ে যান। ২. সমস্ত বিল্ট-ইনগুলির নাম সর্বাধিক দুটি অক্ষর দীর্ঘ। এ কারণে, কিছু বিশেষ ক্ষেত্রে বাদে আপনার শ্বেত স্পেসের প্রয়োজন নেই। ৩. এমনকি গল্ফিং ভাষাগুলিতে জমা দেওয়াও গল্ফ করে না। আমার গল্ফস্ক্রিপ্ট / সিজে্যাম প্রোগ্রামগুলি এখন আগের তুলনায় অনেক কম ছিল।
ডেনিস

সিজেমের পরামর্শ হ'ল বিল্ট-ইনগুলির পুরো নটর সেটটির জন্য এএসসিআইআই কোড 128-256 ব্যবহার করা হবে। কিছু বিশেষ সম্পাদক আছে যে
ক্লাদিউ

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

15

গল্ফস্ক্রিপ্ট, characters৯ টি অক্ষর

10,{:^4+,{2*^6*+'*'*.,2/~40+' '*'/'@'\
'}/}/[' '35*]12*'|--------|
'*'||''_'8**

এখানে কোড চেষ্টা করুন । নোট করুন যে লাইন ব্রেকগুলি এই কোডটিতে n'tচ্ছিক নয়


24
একটি বহু-লাইন গল্ফস্ক্রিপ্ট সমাধান? আমি ভাবিনি যে আমি দিনটি দেখতে পাবো!
ইনগো বার্ক

12

পাইথন, 148 129 126 121 টি অক্ষর

R=range
for i in R(10):
 for j in R(i*3,4+i*4):print' '*(39-j)+'/'+'**'*j+'\\'
for c in'-'*11+'_':print' '*35+'|'+c*8+'|'

ধন্যবাদ Falko 3 টি অক্ষর সংরক্ষণের জন্য এবং flornquake বুদ্ধিদীপ্তভাবে অন্য 5 সংরক্ষণের জন্য!


1
পাইথনের চরিত্রের গুণনটি এই চ্যালেঞ্জের জন্য কিছুটা নিখুঁত ...
শান ল্যাথাম

আপনি আমার গল্ফস্ক্রিপ্ট সমাধান না পাওয়া পর্যন্ত অপেক্ষা করুন ... = পি
ক্লাদিউ

2
'**'*j3 টি অক্ষর সংরক্ষণ করতে ব্যবহার করুন । এগুলি ছাড়াও আমার সমাধানটি একই একই কোডে রূপান্তর করে। :)
ফালকো

1
আপনি লিখে শেষ পংক্তিটি ছোট করতে পারেন for c in'-'*11+'_':print' '*35+'|'+c*8+'|'
ফ্লর্নকোয়ে

টুইটারে খুব চতুর
ক্লডিউ

11

ব্যাশ, 236 197 193

10 বাইট কোডের +1-বাইট ফাইলের নাম + 182-বাইট ডেটা ফাইল = 193 বাইট মোট

zcat y 2>j

ব্যাখ্যা

yজোপফ্লি অ্যালগরিদম (হিসাবে আহ্বান করা হয়েছে zopfli --i64) এবং তারপরে শেষ 8 বাইট অপসারণের সাথে সংকুচিত একটি নতুন লাইন ছাড়াই Yggdrasil সমন্বিত একটি ফাইল । zopfli gzip এর সাথে সামঞ্জস্যপূর্ণ, তাই আমি gzip এর জন্য ডিজাইন করা স্ট্যান্ডার্ড বাশ ইউটিলিটিগুলির সাথে ফাইলটি সংক্ষেপিত করতে পারি। ডেটা ফাইলের আকার 182 বাইট (222 বাইট যখন নরমাল জিজিপ ব্যবহৃত হয়)। মূল Yggdrasil এর আকারটি, নতুন নতুন লাইন ছাড়াই 5883 বাইট।

শেষ 8 বাইট অপসারণ ত্রুটির বার্তা সৃষ্টি করে, যা ডাকা একটি ফাইলের স্ট্যান্ডার্ড ত্রুটি প্রেরণ করে j। যদি jবিদ্যমান থাকে তবে এটি ওভাররাইট করা হবে।

এর বেস 64 y( base64 -dমূল ফাইলটি ব্যবহার করতে ব্যবহার করুন):

H4sIAAAAAAACA+3SMQoCURDA0N5TWC+IFxK8yD/8Nul9hfDRnamT6J+du83zdUPwOACNNDb0+3Bs
tMPhSscDvusHgM9wIcUNclL+5r/luJXkmlh5rM3r8txkMdVNcEn1Nc2a1AU72XWz3Xd91r5z7eZD
AQKQgAI0PDFf8xJfExpQgQhkpAIdz8ytzK3AQMg6UMIQpLQELU/NQc5B/thBegtqHpOc16jHOX/v
x1mPZg19MfrdrBM=

এবং এমডি 5সামটি হ'ল:

4a049a80241160cdde0a3cbca323b7f2

2
আমি কোডটি দেখলে আমার আঙুলটি "মুছুন" বোতামটি চাপতে চুলকানি করছিল, যতক্ষণ না আমি চরিত্রের সংখ্যা এবং ব্যাখ্যাটি না পড়ি। : পি
ডুরকনবব

2
সংক্ষিপ্ত ফাইলটি তৈরি করতে আপনি জোপফ্লি ব্যবহার করে প্রায় 30 বাইট সংরক্ষণ করতে পারেন। "zopfli --i100 y" একটি 190-বাইট ফাইল দেয় যা zcat পচন করতে পারে।
গ্লেন রেন্ডার্স-পেহারসন

1
এবং যদি আপনি শেষ 10 বাইট মুছে ফেলেন এবং এসটিডিআরআর বন্ধ করেন তবে আরও কয়েকটি।
ডেনিস

@ গ্লেনরান্ডার্স-পেহারসন এটিকে নির্দেশ করার জন্য ধন্যবাদ, আমি ' জাউন্ডের মোলার ম্যাসেজ ' কোডগলফ.স্ট্যাকেক্সেঞ্জঞ্জ. com/a/35613/16402 এ জপফ্লি ব্যবহার করতে 37 বাইট সংরক্ষণ করে ব্যবহারকারীর 16402-এ আমার উত্তর সম্পাদনা করেছি

@ ডেনিস এটি 8 টি বাইট হিসাবে প্রমাণিত হয়েছে (আরও কিছু এবং

7

সি, 169

i;j;p(a,b){while(b--)putchar(a);}main(){for(;i++<10;)for(j=i*3-4;++j<i*4;p(32,39-j),p(47,1),p(42,j*2),puts("\\"));for(++i;i--;p(32,35),p(124,1),p(i?45:95,8),puts("|"));}

অবরুদ্ধ (এবং কিছুটা বিচ্ছিন্ন):

int i;
int j;
void p(a,b) {
  while (b--) putchar(a);
}
void main() {
  for (;i++<10;) {
    for (j=i*3-4;++j<i*4;) {
      p(32,39-j);
      p(47,1);
      p(42,j*2);
      puts("\\");
    }
  }
  for (++i;i--;) {
    p(32,35);
    p(124,1);
    p(i?45:95,8);
    puts("|");
  }
}

7

রুবি - 100

puts (0..21).map{|i|i>9??\ *35+?|+(i>20??_:?-)*8+?|:(0..i+3).map{|y|?\ *(39-z=y+3*i)+?/+?**z*2+?\\}}

স্বতঃ-সমতলতা রাখে, তাই আমরা নেস্টেড অ্যারেগুলিতে সমস্ত লাইন সংগ্রহ করতে পারি। রুবি প্রয়োজন 1.9

আদর্শে চেষ্টা করুন


আমি মনে করি এটির জন্য কিছু শীর্ষস্থানীয় স্থান দরকার। এছাড়াও, রুবি 1.9 এর সাথে কাজ করে তবে 1.8 তে নয়।
স্কট লিডলি

7

পাওয়ারশেল 104 101

0..9|%{(3*$_)..(3+$_*4)|%{" "*(39-$_)+"/"+"*"*2*$_+"\"}};0..11|%{" "*35+"|"+("-","_")[$_-eq11]*8+"|"}

6

সি # 258 234 বাইটস

স্ট্রিং.প্যাডলফ্ট পদ্ধতিটির ভাল ব্যবহারের প্রস্তাবিত সম্পাদনাগুলির জন্য কিছু বিরক্তিকর ব্যবহারকারীর ধন্যবাদ!

using System;class G{static void Main(){Action<string>p=Console.WriteLine;int i=0,j;for(;i++<10;)for(j=i*3-3;j++<i*4;)p("/".PadLeft(41-j)+"\\".PadLeft(2*j-1,'*'));while(i-->0)p("|--------|".PadLeft(45));p("|________|".PadLeft(45));}}

কোডটি বেশ সহজ, গল্ফের খুব বেশি বাকি নেই।

ফর্ম্যাট কোড:

using System;
class G
{
    static void Main()
    {
        Action<string> p = Console.WriteLine;
        int i = 0, j;
        for(; i++ < 10 ;)
            for(j = i*3 - 3; j++ < i*4;)
                p("/".PadLeft(41 - j) + "\\".PadLeft(2*j - 1,'*'));
        while(i-- > 0)
            p("|--------|".PadLeft(45));
        p("|________|".PadLeft(45));
    }
}

ব্যবহার \rএখানে অর্থহীন। এটি কোড গল্ফ।
nyuszika7h

3
@ nyuszika7h প্রকৃতপক্ষে, তবে এটি ভাল পরিমাপের জন্য ফর্ম্যাটযুক্ত অনুলিপিটিতে অন্তর্ভুক্ত রয়েছে যাতে নোটপ্যাড ব্যবহার করা লোকেরা আরও সহজেই
ইগগ্রাস্রিলের

আচ্ছা বুঝলাম. উইন্ডোজ ... তখন আমার সম্পাদনা ঠিক করতে নির্দ্বিধায়
nyuszika7h

সিন্ট্যাক্স হাইলাইটিংটি সঠিকভাবে দেখানোর জন্য @ nyuszika7h ধন্যবাদ সঠিক নয়
ভিজুয়ালমেলন


4

পার্ল, 127

for$i(0..9){for$j($i*3..3+$i*4){print" "x(39-$j),"/","*"x($j*2),"\\\n";}}for$i(0..11){print" "x35,"|",($i>10?"_":"-")x8,"|\n";}

Ungolfed:

for $i (0..9) {
  for $j ($i*3..3+$i*4) {
    print " "x(39-$j) , "/" , "*"x($j*2) , "\\\n";
  }
}
for $i (0..11) {
  print " "x35 , "|" , ($i>10?"_":"-")x8 , "|\n";
}

$ I $ _ এর সাথে প্রতিস্থাপন করুন এবং 4 টি অক্ষর সংরক্ষণ করুন।
চোরোবা

4

রুবি - 139 129 126 123 121

অ্যারে তৈরির বাইরে হিট করা "পুটস" (বিটপউনার থেকে পরামর্শ)।

puts (0..9).map{|i|(i*3...(i+1)*4).map{|j|"/#{'**'*j}\\".rjust(41+j,' ')}}+["%45s"%'|--------|']*11<<'%45s'%'|________|'


অবহেলিত ("রাখে" অপ্রস্তুত):


# print fill patterns from the intervals
# [0..3, 3..7, 6..11, 9..15, 12..19, 15..23, 18..27, 21..31, 24..35, 27..39]
# centered on columns 81-82
(0..9).each { |i|
  (i*3...(i+1)*4).each { |j|    # x...y vs x..y-1 saves a char
    puts "/#{'**'*j}\\".rjust(41+j,' ')
  }
}
# print the stump
puts ("%45s\n" % '|--------|') * 11
puts '%45s' % '|________|'

@ বিটপউনার আমার মনে হয় এটি এর নিজস্ব উত্তরের দাবিদার। এটার জন্য যাও.
স্কট লিডলি

4

পিএইচপি 223 202 181 160 156

সম্পাদনা করুন আমি কীভাবে কোনও ভেরিয়েবলের সাথে কোনও ক্রিয়াকলাপের উরফ করতে পারি তা বুঝতে পেরেছিলাম এবং আরও কিছু অক্ষর কেটে ফেলতে সক্ষম হয়েছি। এই str_repeatফাংশনটি সত্যই ভার্জোজ ছিল

সম্পাদনা 2: পরামর্শের জন্য সবাইকে ধন্যবাদ!

Golfed:

<?$s=str_repeat;for($i=-1;$i++<9;)for($j=$i*3;$j<4+$i*4;)echo$s(' ',39-$j).'/'.$s('**',$j++)."\\
";for($i=12;$i--;)echo$s(' ',35),'|'.$s($i?'-':'_',8)."|
";

রিডেবল:

    <?

$s=str_repeat;

for($i=-1;$i++<9;)
{
    for($j=$i*3;$j<4+$i*4;)
    {
        echo$s(' ',39-$j).'/'.$s('**',$j++)."\\
        ";
    }
}

for($i=12;$i--;)
{
    echo$s(' ',35),'|'.$s($i?'-':'_',8)."|
    ";
}

আউটপুট: http://brobin.me/yggdrasil.php


চারপাশে প্রথম বন্ধনী সরিয়ে আপনি 6 টি অক্ষর সংরক্ষণ করতে পারেন (39-$j), ($j*2)এবং ($i==11)। -2 \nআসল নতুন লাইন অক্ষরের সাথে প্রতিস্থাপন করে (পিএইচপি এটি লিটারেলগুলিতে অনুমতি দেয়)। -5 অক্ষর (উভয়) এর for($i=0;$i<12;$i++)সাথে for($i=12;$i-->0;)এবং $i==11সাথে প্রতিস্থাপন করে $i==0
sebcap26

এর পরে আপনি এর $s(($i==0?'_':'-'),8)সাথে প্রতিস্থাপনও করতে পারেন $s($i?'-':'_',8)। (==> -5 অক্ষর)
sebcap26

-1 $s('*',$j*2)সাথে প্রতিস্থাপন করে অক্ষর $s('**',$j)। আমি মনে করি এটিই শেষ উন্নতি।
sebcap26

-2 পরিবর্তন ($j*2)করার জন্য ভেতরের মধ্যে ($j++*2)এবং সরিয়েছে $j++থেকে for()আর্গুমেন্ট
avall

@ sebcap26 এ for($i=12;$i-->0;)সংক্ষিপ্ত করা যেতে পারে for($i=12;$i--;)- আরও 2 টি অক্ষর।
এএম

3

ডেলফি 429

পরে উন্নতি করার চেষ্টা করবে।
Golfed

uses strutils,SysUtils,Classes;const a='|----';b='|____';c:array [0..9,0..1]of int32=((0,3),(3,7),(6,11),(9,15),(12,19),(15,23),(18,27),(21,31),(24,35),(27,39));var t:TStrings;i,j:integer;begin t:=tstringlist.Create;for I:=0to 9do for J:=c[i,0]to c[i,1]do t.Add('/'+StringOfChar('*',j));for I:=0to 10do t.Add(a);t.Add(b);for I:=0to t.Count-1do t[i]:=t[i].PadLeft(40)+ReverseString(t[i]).Replace('/','\');write(T.TEXT);readln;end.

ungolfed

uses
  strutils,SysUtils,Classes;
const
  a='|----';
  b='|____';
  c:array [0..9,0..1]of int32=((0,3),(3,7),(6,11),(9,15),(12,19),(15,23),(18,27),(21,31),(24,35),(27,39));
var
  t:TStrings;
  i,j:integer;
begin
  t:=tstringlist.Create;
  for I:=0to 9do
    for J:=c[i,0]to c[i,1]do
      t.Add('/'+StringOfChar('*',j));
  for I:=0to 10do
    t.Add(a);
  t.Add(b);
  for I:=0to t.Count-1do
    t[i]:=t[i].PadLeft(40)+ReverseString(t[i]).Replace('/','\');
  write(T.TEXT);
  readln;
end.

3

জাভাস্ক্রিপ্ট, 288 281

ক্রোম ডুপ্লিকেট console.logগুলি গোপন করে , তার পরিবর্তে আইই ব্যবহার করুন।

function t(w){s="";for(i=0;i++<39-w;)s+=" ";s+="/";for(i=0;i++<w*2;)s+="*";return s+"\\"}function r(l){s="";for(i=0;i++<36;)s+=" ";s+="|";for(i=0;i++<8;)s+=l;return s+"|"}w=0;c=console;for(h=0;h++<10;){for(j=0;j++<3+h;)c.log(t(w++));w-=h}for(j=0;j++<11;)c.log(r('-'));c.log(r('_'))

Ungolfed:

function t(w)
{
    s="";
    for(i=0;i++<39-w;)
        s+=" ";
    s+="/";
    for(i=0;i++<w*2;)
        s+="*";
    return s+"\\"
}
function r(l)
{
    s="";
    for(i=0;i++<36;)
        s+=" ";
    s+="|";
    for(i=0;i++<8;)
        s+=l;
    return s+"|"
}

w=0;
c=console;
for(h=0;h++<10;)
{
    for(j=0;j++<3+h;)
        c.log(t(w++));
    w-=h;
}
for(j=0;j++<11;)
    c.log(r('-'));
c.log(r('_'))

এর for(i=0;i++<39-w;)পরিবর্তে এবং ব্যবহার for(i=0;i<39-w;++i)করুন। এছাড়াও, এর p=console.logপরিবর্তে c=consoleএবং pপরিবর্তে c.log(যদিও আমি কেবল নোড.জেএস-তে কেবল পরেরটি পরীক্ষা করেছি, এটি ফায়ারফক্সে কাজ করে না)। এটি 12 বাইট সংরক্ষণ করে।
nyuszika7h

c=console.logChrome এও কাজ করেনি, তাই আমি এটি ব্যবহার করিনি। লুপ ট্রিকস জন্য 7 বাইট যদিও সংরক্ষণ করুন।
শান ল্যাথাম

আমি সাধারণত আমাকে

"সম্ভবত এর পরিবর্তে আইই ব্যবহার করুন" এই উক্তিটি আমি প্রথমবার সম্ভবত দেখেছি। ও_ও যাইহোক, আপনি ওয়েব পৃষ্ঠার পরিবর্তে কনসোলে এই কোডটি চালিয়ে Chrome এর আচরণ দমন করতে পারেন।
ডুরকনবব

এটি একটি পৃষ্ঠায় এবং কনসোলে চালানো ফায়ারফক্স এবং ক্রোম উভয় ক্ষেত্রেই আমার জন্য একই ফলাফল তৈরি করে।
শান ল্যাথাম

3

জাভাস্ক্রিপ্ট (কনসোল.লগ), 168 166

(কেবল পঠনযোগ্যতার জন্য সাদা স্থান)

for(i=c=0;i<11;i++)
  for(j=0;j<4+i&!c;j++)
    l=i*13+j,
    a=Array(n=i-10?3*i+j+1:5).join("*-_"[k=(l>129)+(c=l==141)]),
    console.log(Array(41-n).join(" ")+'/||'[k]+a+a+'\\||'[k])

3

সি (219)

গল্ফিং টিপসের জন্য প্রত্যেককে ধন্যবাদ - এটিকে 219-এ নামিয়ে আনতে পরিচালিত it মনে হয় না যে এটি আরও কমবে।

w,W,s,S,i,r;main(){char T[78];memset(T,42,78);for(r=4,s=39;r<14;++r,s-=3,w+=6)for(i=0,S=s,W=w;i<r;++i,W+=2,--S)printf("%*s/%.*s\\\n",S,"",W,T);for(i=0;i<11;i++)printf("%35s|--------|\n","");printf("%35s|________|","");}

প্রয়োজনীয় অন্তর্ভুক্ত:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

যদি তিনি সি 98 ব্যবহার করতে ইচ্ছুক হন তবে তিনি সমস্তগুলিও বাদ দিতে পারেন। এই কোডটিতে এমন কোনও মামলা নেই যেখানে কল স্ক্রুগুলিতে অন্তর্ভুক্ত ঘোষণা।
জোশুয়া

@Nax; এটি আমাকে ২3৩ এ পৌঁছে দেয় - এবং আমি টানতে পেরেছি includes ধন্যবাদ।
ড্রিমওয়ারিয়ার

@ জোশুয়া - bit৪ বিট সিস্টেম এবং মেমসেট সমস্যাযুক্ত হতে পারে, তবে ... অন্যথায়, সম্ভবত না। যে কোনও উপায়ে, বেশিরভাগ লোকেরা অন্তর্ভুক্তগুলি সরিয়ে দেয়, তাই আমিও করেছি।
ড্রিমওয়ারিয়ার

এটি আসলে ২2২ টি অক্ষর, আপনার পেছনের নতুন লাইনের দরকার নেই।
nyuszika7h

আপনি এর 32পরিবর্তে ' 'এবং এর 42পরিবর্তে '*':) ব্যবহার করতে পারেন :)
কোয়ান্টিন

3

হাস্কেল, 153 148

সোজা-এগিয়ে, কোনও কৌশল নয়, কেবল সরল গল্ফিং:

(a:b:c)%n=(39-n)&' '++a:(2*n)&b++c
n#m=[n..m]++(n+3)#(m+4)
(&)=replicate
main=putStr$unlines$map("/*\\"%)(take 85$0#3)++map("|-|"%)(11&4)++["|_|"%4]

%অপারেটর একটি একক লাইন স্বপক্ষে, তার প্রথম যুক্তি হচ্ছে Stringদৈর্ঘ্য 3 যে লাইন সীমানা এবং ভরাট অক্ষর ধারণকারী (বর্তমানে অভিমানী ঠিক 3 Charগুলি, 5 বাইট সঞ্চয় নয়), দ্বিতীয়, একটি Int, নির্দিষ্ট করে অর্ধেক ভরাট অক্ষরের সংখ্যা। প্যাটার্ন ম্যাচিং, কনস-ing এবং সংযোজন অর্ডার মধ্যে "আঠা" তদারক দ্বারা বাইট সংরক্ষণ করার জন্য একযোগে ব্যবহার করা হয় Charএবং String। এই দ্বিতীয় সংস্করণে, আমি অসীমও তৈরি করেছিলাম এবং এটিকে আবার সীমাবদ্ধ করার জন্য #একটি চালু take 85করেছি (দুর্ভাগ্যক্রমে কোনও বাইট সংরক্ষণ করা হয়নি)।

#অপারেটর জন্য ক্রম তৈরি করে nআর্গুমেন্ট প্রাপ্ত করতে %গাছ জন্য আবশ্যক: [0..3], [3..7], ...ঘনিভূত।

&এটি কেবল একটি ইনফিক্স শর্টহ্যান্ড replicate, যা তিনবার ঘটে।

গাছটি শেষ লাইনে একসাথে রাখা হয়, নতুন লাইনে যোগ করা হয় unlines



2

লুয়া - 164

a=' 'for i=0,9 do for j=i*3,3+i*4 do print(a:rep(39-j)..'/'..(('*'):rep(j*2))..'\\')end end for i=0,11 do print(a:rep(35)..'|'..((i>10 and'_'or'-'):rep(8))..'|')end

2

গণিত 191 178

নিশ্চিতরূপে সেরা সমাধান নয়:

n=Nest;
t=Table;
""<>
    t[
        {n[#<>" "&,"",39-i],"/",n[#<>"*"&,"",2i],"\\\n"}
    ,
        {i,Flatten@t[Range[j+4]-1+3j,{j,0,9}]}
    ]
<>
    t[
        n[#<>" "&,"",35]<>If[i==12,"|________|\n","|--------|\n"]
    ,
        {i,12}
    ]

নিউলাইনগুলি গণনা করা হচ্ছে না। ম্যাথমেটিকা ​​আউটপুটটিকে স্কিউ করে, কারণ এটি "*" এবং "/" হিসাবে সাদা জায়গার জন্য একই প্রস্থ নেয় না। তবে ফলাফলটি সঠিক।


(এটা আমার প্রথম গলফ থাকবে)
freddieknets

2

জাভা - 286

আমার প্রথম গল্ফ

Golfed:

class M{public static void main(String[]args){int i=0,a,f=0;String s="";for(;i++<11;){for(a=i*3-4;++a<i*4;){if(i>10){a=4;if(++f>12)break;}s+=s.format("%"+(40-a)+"s"+(a>0?"%0"+a+"d":"")+"%3$s",f>0?"|":"/",0,f>0?"|":"\\").replace("0",f<1?"**":f>11?"__":"--")+"\n";}}System.out.println(s);}}

Ungolfed:

class M {
    public static void main(String[] args) {
        int i=0,a,f=0;
        String s = "";
        for(;i++<11;){
            for(a=i*3-4;++a<i*4;a++){
                if(i>10){
                    a=4;
                    if(++f>12)break;
                }
                s+=s.format("%"+(40-a)+"s"+(a>0?"%0"+a+"d":"")+"%3$s",f>0?"|":"/", 0,f>0?"|":"\\").replace("0", f<1?"**":f>11?"__":"--")+"\n";
            }
        }
        System.out.println(s);
    }
}

পরীক্ষা এখানে


2

পাইথন 2, 117

j=0
while j<40:j-=j/4;exec(j/3+4)*r"print' '*(39-j)+'/'+'**'*j+'\\';j+=1;"
for c in'-'*11+'_':print' '*35+'|'+c*8+'|'

অন্যান্য সংস্করণগুলির আমি চেষ্টা করেছিলাম এর মধ্যে রয়েছে:

# 118
for i in range(10):j=i*3;exec(i+4)*r"print' '*(39-j)+'/'+'**'*j+'\\';j+=1;"
for c in'-'*11+'_':print' '*35+'|'+c*8+'|'

# 118
i=j=4
while j:j=52-3*i;exec"j-=1;print' '*j+'/'+'**'*(39-j)+'\\\\';"*i;i+=1
for c in'-'*11+'_':print' '*35+'|'+c*8+'|'

# 118
j=0
for b in'\\'*10:j-=j/4;exec(j/3+4)*"print' '*(39-j)+'/'+'**'*j+b;j+=1;"
for c in'-'*11+'_':print' '*35+'|'+c*8+'|'

# 119
s=40
while s:s+=10-s/4;exec(52-s)/3*r"s-=1;print' '*s+'/'+'**'*(39-s)+'\\';"
for c in'-'*11+'_':print' '*35+'|'+c*8+'|'

2

পাইথ, 101 100 99 90 81 বাইট

J0Km/*+d7d2S9V85FTKI!-TN=hZ=+JZ))+*d-39-NJ++\/*"**"-NJ\\)Va*]\-11\_+++*d35\|*N8\|

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

পাইথন 3 অনুবাদ:
Z=0
d=" "
J=0
K=list(map(lambda d:((d+7)*d)//2,range(1,10)))
for N in range(85):
    for T in K:
        if not T-N:
            Z+=1
            J+=Z
    print(d*(39-(N-J))+"/"+"**"*(N-J)+"\\")
for N in ["-"]*11+["_"]:
    print(d*35+"|"+N*8+"|")

aআপনার পাইথনে ফাংশনটি কি +তালিকার সমতুল্য নয় ?
এশোলং ফলগুলি

@ এসোলাংফ্রুট এটি নিকটবর্তী, তবে ঠিক নয়: <list>+<str>একটি বৈধ অপারেশন নয়, তবে আমি ঠিক সহজেই ব্যবহার করতে পারি ["-"]*11+["_"]। পাইথ আসলে কী করছে তা আরও নির্ভুলভাবে অনুবাদ করতে আমি আমার নিজের ক্রিয়াকে সংজ্ঞায়িত করার সিদ্ধান্ত নিয়েছি।
hakr14

ঠিক আছে, এটা বোঝা যায়।
এফসোলিং ফল

2

পাওয়ারশেল, 88 বাইট

0..9|%{(3*$_)..(3+$_*4)|%{' '*(39-$_)+"/$('**'*$_)\"}}
,'-'*10+'_'|%{' '*35+"|$($_*8)|"}

1

গ্রোভি 118

10.times{(it*3).upto 3+it*4,{println' '*(39-it)+'/'+'*'*it*2+'\\'}};12.times{println' '*35+'|'+(it>10?'_':'-')*8+'|'}

1
আমি কেন একটি সুন্দর সংক্ষিপ্ত গ্রোভির সমাধান দেখে অবাক হই না। গ্রোভির সম্পর্কে আমার ধারণাটি ছিল যে এটি কোনও জাভা প্রোগ্রামার দ্বারা করা হয়েছিল যিনি টাইপিংয়ের ঘৃণা করেছিলেন।
অলমো

1

সি, 194

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

i,j=5,k=5,n;
main(){
  char d[]={[0 ...77]=42,0};
  for(;i<85;i++)k--,j+=!k,k+=(j-1)*!k,n=39-i+(j-5)*(j-4)/2,printf("%*s/%s\\\n",n,"",d+n*2);
  for(;i<97;i++)printf("%*s|\n",44,i-96?"|--------":"|________");
}

1

র‌্যাকেট 223 220 211 204 198

Golfed:

(for-each display(flatten(let([m make-list])`(,(for*/list([i 10][j(range(* i 3)(* 4(+ 1 i)))])`(,(m(- 39 j)" ")"/",(m j"**")"\\\n")),(for/list([c`(,@(m 11"-")"_")])`(,(m 35" ")"|",(m 8 c)"|\n"))))))

Ungolfed:

(for-each display
     (flatten
      (let([m make-list])
        `(,(for*/list([i 10][j(range(* i 3)(* 4(+ 1 i)))])
             `(,(m(- 39 j)" ")"/",(m j"**")"\\\n"))
          ,(for/list([c`(,@(m 11"-")"_")])
             `(,(m 35" ")"|",(m 8 c)"|\n"))))))

1

সমাবেশ (এমআইপিএস, এসপিআইএম) , 768 671 659 655 654 বাইট

.text
.globl main
main:
li $8 32
li $9 47
li $t2 42
li $t3 92
li $t4 10
li $t5 42
addi $sp -4
move $4 $sp
la $s6 q
la $s5 w
li $t8 0
li $s0 10
li $t9 0
li $s3 40
li $s2 39
q:
sub $s3 $s3 $t8
add $s2 $s2 $t8
addi $t7 $t8 3
addi $t8 1
blt $s0 $t8 e
r:
sw $0 ($4)
blt $t9 $s2 t
beq $t9 $s2 y
beq $t9 $s3 u
beqz $t7 i
sb $t2 ($4)
p:
li $2 4
syscall
addi $t9 1
ble $t9 $s3 r
move $t9 $0
j $s5
o:
addi $t7 -1
bgez $t7 r
jr $s6
w:
addi $s2 -1
addi $s3 1
j o
t:
sb $8 ($4)
j p
y:
sb $9 ($4)
j p
u:
sb $t4 1($4)
sb $t3 ($4)
j p
i:
sb $t5 ($4)
j p
e:
li $t1 124
li $t3 124
li $t2 45
li $t5 95
li $t7 11
la $s6 a
la $s5 o
li $s2 35
li $s3 44
j r
a:
li $2 10
syscall

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

সম্পাদনা করুন: একটি রেজিস্টারে প্রতিটি অক্ষরকে হার্ড কোডিং করে এবং স্ট্যাকটিতে লিখে কেবল ~ 100 বাইট সংরক্ষণ করা হয়েছে, তারপরে এমআইপিএসের এএসআই স্ট্রিংয়ের মতো প্রচ্ছন্ন শব্দটির অনুমতি নেই বলে এই অপব্যবহার করে।
সম্পাদনা 2: মুছে ফেলা সদৃশ স্ট্যাক বরাদ্দ। ( addi $sp -4) উফ!
সম্পাদনা 3: পুনর্লিখনে, দুর্ঘটনাক্রমে গাছের স্টাম্প 1 অক্ষরটিকে খুব ছোট করে তুলেছে। (35 এর স্থানে 36)। সংশোধন করা হয়েছে। -1 টি 8 থেকে 0 সেট করে এবং সমানের পরিবর্তে কমতে শাখা করে বাইট করুন। দুর্ভাগ্যক্রমে মৃত্যুদন্ড কার্যকর করার সময় পুরোপুরি 3 টি অপকোড বেশি সময় লাগিয়ে দেয় এমন অ্যাড অপসকে পুনঃক্রম করতে আমারও দরকার ছিল।
4 সম্পাদনা করুন: 8 -4 বাইটগুলি $ t0 এবং $ t1 এর পরিবর্তে $ 8 এবং $ 9 ব্যবহার করে। তারা একই জিনিস বোঝায় তবে $ t0 পড়া সহজ easier দুর্ভাগ্যক্রমে, সুন্দরভাবে লেখার সময় অন্য সমস্ত টি রেজিস্টারগুলি একই দৈর্ঘ্য ($ t2 == $ 10, তবে উভয়ই 3 টি অক্ষর), তাই বাকী সমস্ত ধোয়া। আমি (তত্ত্বের ভিত্তিতে) বাকী 'এ' রেজিস্টারগুলি ব্যবহার করতে পারি (5-7। প্রিন্ট সিস্কেল 4 ব্যবহার করে), তবে আফিক সাইকেল ব্যবহার করার সময় আচরণটি সংজ্ঞায়িত হয় না।

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

দুর্ভাগ্যবশত, আমি এই নতুন সমাধান জন্য একটি মন্তব্য সংস্করণ তৈরি করেন নি, কিন্তু আপনি সম্পূর্ণ ডকুমেন্টেশন সঙ্গে পুরোনো সংস্করণ দেখতে পারেন, এখানে

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


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

এছাড়াও, আমি নিশ্চিত নই যে শর্টহ্যান্ডটি addi $sp -4আসলে addi $sp $sp -4স্পিম বা এমআইপিএস থেকে এসেছে, তাই অন্য কেউ যদি করেন তবে দয়া করে আমাকে জানান।
অ্যান্ড্রু বাউমারের

0

কোবরা - 166 228 260

class P
    def main
        for x in 10,for n in 4+x,print' '.repeat(39-x*3-n)+'/['**'.repeat(x*3+n)]\\'
        w=' '.repeat(35)
        print'[w]|--------|\n'.repeat(11)+w+'|________|'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.