কচ্ছপ সমস্ত উপায় ডাউন


74

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

বিশেষত, যদি ইনপুট হয় 1তবে আউটপুটটি হওয়া উচিত:

 __
/,,\o

যদি ইনপুটটি হয় 2:

  __
o/,,\
 ____
/,__,\o

যদি ইনপুটটি হয় 3:

   __
  /,,\o
  ____
o/,__,\
 ______
/,____,\o

যদি ইনপুটটি হয় 4:

    __
  o/,,\
   ____
  /,__,\o
  ______
o/,____,\
 ________
/,______,\o

যদি ইনপুটটি হয় 5:

     __
    /,,\o
    ____
  o/,__,\
   ______
  /,____,\o
  ________
o/,______,\
 __________
/,________,\o

এবং বৃহত্তর ইনপুট জন্য একই প্যাটার্নে।

মনে রাখবেন যে:

  • মাথা (দ oনীচের কচ্ছপের ) সর্বদা ডানদিকে থাকে। উপরের কচ্ছপের মাথাগুলি পরে পিছনে বিকল্প বিকল্প হয়।
  • কোনও লাইনের পিছনে স্থান থাকতে পারে না।
  • অতিমাত্রায় নেতৃত্বাধীন স্থানগুলির অনুমতি নেই not (অর্থাৎ নীচের কচ্ছপের পিছনের অংশটি লাইনের শুরুতে হওয়া উচিত))
  • একটি একক alচ্ছিক ট্রেলিং নতুনলাইন অনুমোদিত।

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


11
ট্রাইকোপ্লাক্স, আমি পুনরাবৃত্তি ব্যবহার করে এমন একটি উত্তর আশা করছি।
এল'ইনিয়া স্টারম্যান

15
,________,যখন কেউ এমন কিছু বলে যা যার অর্থ নেই।
আর কাপ,

8
উপরের দিকে তাকানো প্রতিটি কচ্ছপ একটি গাধা দেখছে তা নিশ্চিত করার জন্য পক্ষগুলি উল্টিয়ে দেওয়া ?
বেসিক

15
আপনি ASCII কচ্ছপ নির্দিষ্ট করে দিয়ে আমি আনন্দিত। অন্যথায়, আমি অবশেষে একটি লোগো উত্তর জমা দিতে যাচ্ছি যেখানে কচ্ছপটি লুকানোর জন্য আমাকে 3 বাইট নষ্ট করতে হয়নি।
গিটারপিকারটি

4
আমি কচ্ছপ পছন্দ করি!
স্কটি ডট নেট

উত্তর:


31

ব্যাচ, 256 বাইট

@set i=echo 
@%i%off
set u=
for /l %%j in (2,2,%1)do call set i=%%i%%  
set/af=%1^&1
if %f%==1 %i% __&%i%/,,\o&set u=__
for /l %%j in (2,2,%1)do call:l
exit/b
:l
set i=%i:~0,-2%
%i%  _%u%_
%i%o/,%u%,\
%i% __%u%__
%i%/,_%u%_,\o
set u=__%u%__

নোট করুন যে লাইন 1 এর একটি চলার স্থান রয়েছে এবং 4 টি লাইনে দুটি ট্রেলিং স্পেস রয়েছে। iসুতরাং echoপ্রতিটি কচ্ছপের উপযুক্ত পরিমাণে ইনডেন্টেশন সহ একটি কমান্ড রয়েছে । এদিকে uবিকল্প কচ্ছপগুলিতে আন্ডারস্কোর সংখ্যা রয়েছে। একটি শীর্ষস্থানীয় বিজোড় কচ্ছপ বিশেষ-ক্ষেত্রেযুক্ত এবং তারপরে বাকি কচ্ছপগুলি জোড়া হয়ে আউটপুট হয়।


25
ঠিক 256 বাইট হওয়ার জন্য +1। আপনি তার দৈর্ঘ্যের অর্ধেক অবধি না পারলে গল্ফ করবেন না!
রোহান ঝুনঝুনওয়ালা

মূলত আমি পিছনের জায়গাগুলি সম্পর্কে নোটটি মিস করেছি, আমার বেশিরভাগ সম্পাদকগুলি সেগুলি কেটে ফেলার জন্য প্রস্তুত এবং এটি কেন কাজ করছে না তা বুঝতে পারি না! পিপিসিজিতে ব্যাচ দেখে সর্বদা খুশি। :)
ক্যাপ্টেন ম্যান

24

সি, 131 বাইট

i,j;f(n){char _[3*n];memset(_,95,3*n);for(i=n;i--;printf("%*.*s\n%*s/,%.*s,\\%s\n",j+n+1,j+j,_,i,"o"+1-i%2,j+j-2,_,"o"+i%2))j=n-i;}

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

একটি ফাংশন সংজ্ঞা দেয় যা কচ্ছপগুলি মুদ্রণ করে।

স্পেসিং এবং আন্ডারস্কোরগুলি পুনরাবৃত্তি করতে মুদ্রণের প্রস্থ এবং যথার্থ স্পেসিফায়ারদেরকে প্রচন্ডভাবে আপত্তিজনকভাবে ব্যবহার করে। প্রতিটি কচ্ছপ একটি একক printfকল ব্যবহার করে মুদ্রিত হয় :

printf("%*.*s\n%*s/,%.*s,\\%s\n",j+n+1,j+j,_,i,"o"+1-i%2,j+j-2,_,"o"+i%2)

আমার আরও একটি আলাদা সংস্করণ রয়েছে যা 144 বাইটের সাদা স্থান সহ সরানো হয়েছে:

c,i;f(n){for(i=n;i--;){
    char*p=" _\n o/,_,\\o\n";
    int C[]={i+1,c=n+n-i-i,1,i&~1,i%2,1,1,c-2,1,1,1-i%2,1};
    for(c=0;p[c];)C[c]--?putchar(p[c]):++c;
}}

অভিশাপ, আমি একটি সি ++ যুক্ত করতে

4
,_,আপনার কোড থাকার জন্য +1 ।
আর কাপ,


12

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

Lvð¹y-©>ׄ__y×UXJ,„/,X¨¨„,\J'o®ÉiìëJ}ð®®É-×ì,

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


3
এত সংক্ষিপ্ত হওয়ার জন্য আমার ভোট পান।
jseals

G-লুপটি আগস্ট 2016 এর সংস্করণে ইতিমধ্যে ছিল কিনা তা নিশ্চিত নয় তবে এটি যদি হয় তবে Lvহতে পারে Gএবং উভয়ই -1 বাইটের জন্য yহতে পারে N
কেভিন ক্রুইজসেন

12

ভি , 57, 53 49 বাইট

i ³_
/,_,\oÀñHyjí_/___
ëPhjI ñdjí___
òkk$x^PXkk

যেহেতু এটিতে অক্ষম অক্ষর রয়েছে তাই এখানে একটি হ্যাক্সডাম্প রয়েছে:

00000000: 6920 b35f 0a2f 2c5f 2c5c 6f1b c0f1 4879  i ._./,_,\o...Hy
00000010: 6aed 5f2f 5f5f 5f0a eb50 1668 6a49 20f1  j._/___..P.hjI .
00000020: 646a ed5f 5f5f 0af2 6b6b 2478 5e50 586b  dj.___..kk$x^PXk
00000030: 6b                                       k

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

ব্যাখ্যা:

i ³_\n/,_,\o<esc>       "Insert the original turtle with one extra underscore

Àñ                      "Arg1 times:
  Hyj                   "  Go the the beginning of the file, and yank a turtle
     í_/___             "  Extend the lenght of every turtle by two
ëP                      "  Move to the beginning of the file again, and paste the turtle we yanked
  <C-v>hjI              "  Move this turtle one to the right
           ñ            "Stop looping.

dj                      "Delete a turtle (since we have one too many)
  í___                  "Make every turtle shorter (since they are all too long)

ò                       "Recursively:
 kk                     "  Move up two lines
   $x                   "  Delete the last character on this line (an 'o')
     ^P                 "  And paste this 'o' at the beginning of the line
       X                "  Remove one space
        kk              "  Move up two lines again

ইনপুট 0এবং নীচের জন্য আকর্ষণীয় আউটপুট ।
আর কাপ,

এই কোডটিও কাজ করে না input > 10। পার্শ্ব নোটে, আমি দুর্ঘটনাক্রমে ইনপুট দিয়ে একে একে সম্পূর্ণ ভেঙে ফেলেছি 0 41c14। আমি কোডটি, বা রানারটি ভঙ্গ করেছি কিনা তা নিশ্চিত নই।
ব্র্যান্ডন আনজলদী

1
@ আর কেপ হ্যাঁ, আমি মনে করি কেন জানি এটি আমি জানি। ভি সবেমাত্র পূর্ণসংখ্যাগুলি বোঝার জন্য সক্ষম, সুতরাং এটি কেবল -1একটি স্ট্রিং হিসাবে দেখায় যা এটি ভান করতে পারে না এমন একটি সংখ্যা। ধন্যবাদ, আমাকে এগুলি পরিচালনা করতে হবে না।
DJMcMayhem

1
@ ব্র্যান্ডন আঞ্জলদী আহ, আমি দেখছি কেন এটি কার্যকর হয় না। আমি এক মিনিটের মধ্যে এটি ঠিক করব। এছাড়াও, দশমিক সংখ্যা ব্যতীত অন্য কিছু করা কিছু অদ্ভুত সমস্যার কারণ হতে বাধ্য ।
ডিজেএমসিহেম

1
হা! শীতল সমাধান। অঙ্কিত এটি সম্ভবত কিছুটা সহজ হতে চাই। আমি ঠিক খুব, উপরোক্ত দুর্ঘটনা কীবোর্ড ম্যাশের আউটপুট নিয়ে খুব মুগ্ধ হয়েছি। শীর্ষস্থানীয় স্থানগুলি কিছু মজাদার আউটপুট উত্পাদন করে। দেখে মনে হচ্ছে আপনি খুব সুন্দরভাবে ভিটাকে বেঁধেছেন!
ব্র্যান্ডন আনজলদী

11

পার্ল, 92 বাইট

91 বাইট কোড +1 এর জন্য -n

-Eকোনও অতিরিক্ত ব্যয় ছাড়াই প্রয়োজন ।

for$i(1..$_){say$"x$_._,$v=_ x(--$i*2),_.$/.$"x(--$_-1),$_%2?o:$"x!!$_,"/,$v,\\",$_%2?"":o}

ব্যবহার

perl -nE 'for$i(1..$_){say$"x$_._,$v=_ x(--$i*2),_.$/.$"x(--$_-1),$_%2?o:$"x!!$_,"/,$v,\\",$_%2?"":o}' <<< 3
   __
  /,,\o
  ____
o/,__,\
 ______
/,____,\o

@ দাদাকে তার পুনরায় কাজ করে -9 বাইটের জন্য ধন্যবাদ !


1
সুন্দর. আরেকটি সংস্করণ, একই bytecount: perl -nE 'for$i(1..$_){say$"x$_._.($v=_ x(($i-1)*2))._.$/.$"x(--$_-1).($_%2?o:$_?$":"")."/,$v,\\".($_%2?"":o)}'। আমিও ১০০ এর নিচে নামার চেষ্টা করেছিলাম কিন্তু কডল না ...
দাদা

@ দাদা ধন্যবাদ! আপডেট হয়েছে, অনেক প্রশংসা!
ডম হেস্টিংস

10

চেডার , 105 বাইট

n->(|>n).map(i->(1-i%2)*"o"+"\\,"+(n-i-1)*"__"+",/"+i%2*"o"+i/2*"  "+"\n"+(n-i)*"__"+(i+1)*" ").vfuse.rev

2
পনির ব্যবহারের জন্য +1। আপনি বাইটস সংরক্ষণ করতে আক্ষরিক নিউলাইন ব্যবহার করতে পারেন
ডাউনগোট


6

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

m=input()
for i in range(m):r=m-i;b=r%2;h='o';a='__';u=i*a;s=' '*r;print s+u+a+'\n'+s[:b-2]+h*-~-b+"/,"+u+",\\"+b*h

আমি আপনার গণনাটি 115 বাইটে পেয়েছি এবং আপনি এর lambda m:for i in r...পরিবর্তে একটি বাইট সংরক্ষণ করতে পারেনinput()
wnnmaw

6

আর , 150 বাইট

a=function(x,y=1){d=x-y;t=d%%2;cat(rep(" ",d+1),rep("_",2*y),"\n",rep(" ",d-t),"o"[t],"/,",rep("_",2*y-2),",\\","o"[!t],"\n",sep="");if(y<x)a(x,y+1)}

আরও পরিষ্কারভাবে (একটি বাইট যোগ করুন)

a=function(x,y=1){
     d=x-y
     t=d%%2
     cat(rep(" ",d+1),rep("_",2*y),"\n",rep(" ",d-t),"o"[t],"/,",rep("_",2*y-2),",\\","o"[!t],"\n",sep="")
     if(y<x)a(x,y+1)
}

বেসিক কাঠামো পুনরাবৃত্তভাবে নিজেকে কল করে - কল করার জন্য চূড়ান্ত সংখ্যা এবং বর্তমান স্তর উভয়ই নিজেকে বিক্রি করে। Y = 1 এর জন্য একটি ডিফল্ট দিয়ে শুরু হয়, তাই প্রাথমিক কলের জন্য এটির জন্য কেবল একটি পরিবর্তনশীল প্রয়োজন। প্রায়শই ব্যবহৃত হয় এমন দুটি মান দ্রুততার সাথে সংজ্ঞা দেয়। তারপরে এটি কেবল প্রতিটি প্রয়োজনীয় বারবার পুনরাবৃত্তি করে।

"o"[t],"o"[!t]

এইগুলির প্রত্যেকটিই ডান বা বাম দিকে মাথা যুক্ত করা এবং এটি যথাযথভাবে স্থাপন করা উচিত কিনা তা স্পষ্টভাবে পরীক্ষা করে।


#অন্যান্য উত্তরগুলির মতো এটির বিন্যাস করতে মার্কডাউন সম্পাদকটিতে শিরোনামের আগে ব্যবহার করুন ।
দ্য বাইকিংভিকিং

ক্ষমা প্রার্থনা - তাই সম্পাদনা করা হয়েছে
user5957401

6

টিএসকিউএল, 189 বাইট

এখন ইনপুট গ্রহণযোগ্যতা সহ - @ পেট্রিকরোবার্টসকে ধন্যবাদ

DECLARE @i INT=##i##,@ INT=0a:PRINT SPACE(@i-@)+REPLICATE('__',@+1)+'
'+SPACE((@i-@-1)/2*2)+IIF((@i-@-1)%2=1,'o/,','/,')+REPLICATE('__',@)+IIF((@i-@-1)%2=0,',\o',',\')SET
@+=1IF @i>@ GOTO a

বেহালা



@ পেট্রিকরোবার্টস ধন্যবাদ, জানেন না যে এটি কি, এটি স্কিল সার্ভার 2016?
t-clausen.dk

@ t-clausen.dk এই ইনপুট প্রক্রিয়াটি ডেটা.এসই সাইটের সাথে সুনির্দিষ্ট, এটি এসকিউএলের কোনও সংস্করণের মানক বৈশিষ্ট্য নয়।
ব্র্যাডসি

@ ব্র্যাডিসি আপনি একেবারেই ঠিক বলেছেন, এটি এক প্রকার প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং অবশেষে একটি প্যারামিটার ইনপুট যুক্ত করতে সক্ষম হওয়ায় খুব সুন্দর। আমি এই সমস্ত কিছু ভুলে গিয়েছি এবং ভবিষ্যতে অতিরিক্ত বাইট প্রদানের জন্য এটি ব্যবহার করার বিষয়ে বিবেচনা করব
t-clausen.dk

6

সি, 328 238 234 215 বাইট:

B;M(w,j,R){j=w;if(j<=B){char b[j*2-1],k[j*2+1];b[j*2-2]=k[j*2]=0;memset(b,95,j*2-2);memset(k,95,j*2);R=(B+1-j)%2;printf("%*s\n%*s/,%s,\\%s\n",j*2+B+1-j,k,B-j,R?"":"o",b,R?"o":"");j++;M(j);}}main(){scanf("%d",&B);M(1);}

প্রচুর স্ট্রিং ফর্ম্যাটিং এবং বিল্টিন memsetফাংশন ব্যবহার করে একটি পুনরাবৃত্তিমূলক বাস্তবায়ন । আমি যতটা পারছি সময়ের সাথে সাথে আরও চেষ্টা করব এবং গল্ফ করব।

এটি অনলাইন! (Ideone)


আশ্চর্যজনকভাবে যথেষ্ট, তৃতীয় এবং চতুর্থ কচ্ছপগুলি আইডিয়নে ভাঙ্গা দেখা দেয় ...
কুইন্টিন

@ কুইন্টিন আসলে, এটি আইডিয়ন নয়। এটাই আমার প্রোগ্রামের দোষ। কোনও কারণে, মিনিটের ইনপুটটি 17অতিক্রম করে এবং তার বাইরে, যুক্তি কোনও কারণে ভেঙে যায় এবং অতএব, কচ্ছপগুলিও তাই করে। আমি বর্তমানে কী ভুল তা জানার চেষ্টা করছি।
আর কাপ,

সুন্দর! নোট করুন যে আপনি বেশিরভাগ চরিত্রের আক্ষরিক প্রতিস্থাপন করতে পারেন (প্রতিটি 'c') একটি করে অক্ষর রক্ষার জন্য তাদের ASCI কোড দ্বারা :)
কোয়ান্টিন

@ কন্টিন নাইস? ... এটি খুব ভাল কাজ করে না। এ কেমন সুন্দর?
আর কাপ,

উহু! আমি আইডিয়নে ফিরে যাচাই করেছিলাম এবং এটি স্থির লাগছিল, তবে এটি কারণ কম কচ্ছপ আছে ... অবিরাম সকাল।
কুইন্টিন

4

জাভা 1.7, 238 বাইট

দুটি ফাংশনের একটি সংকলন: প্রথমে ইনপুট (# কচ্ছপের #) ওপরে পুনরাবৃত্তি হয়, দ্বিতীয়টি পুনরাবৃত্তভাবে পুনরাবৃত্ত অক্ষরগুলির ক্রম (যেমন শীর্ষস্থানগুলি, কচ্ছপের পিছনে এবং পেট) তৈরি করতে সহায়তা করে।

String f(int n){String s="";for(int i=-1,x=-2;++i<n;){int m=(i+n)%2;s+=r(' ',n-i)+r('_',i*2+2)+"\n"+r(' ',n-i-(m==1?1:2))+(m==0?"o":"")+"/,"+r('_',x+=2)+",\\"+(m==1?"o":"")+"\n";}return s;}String r(char c,int n){return n>0?c+r(c,--n):"";}

Ungolfed:

class C {
    public static void main(String[] a) {
        System.out.println(new T().f(1));
        System.out.println(new T().f(2));
        System.out.println(new T().f(3));
        System.out.println(new T().f(4));
        System.out.println(new T().f(5));
    }

    static class T {

        String f(int n) {
            String s = "";
            for (int i = -1, x = 0; ++i < n; x+=2) {
                int m = (i + n) % 2;
                s += r(' ', n - i) + r('_', i * 2 + 2) + "\n" + r(' ', n - i - (m == 1 ? 1 : 2)) + (m == 0 ? "o" : "") + "/," + r('_', x) + ",\\" + (m == 1 ? "o" : "") + "\n";
            }
            return s;
        }

        String r(char c, int n) {
            return n > 0 ? c + r(c, --n) : "";
        }

    }

}

চালাও এটা!(Ideone)

আমি ধরে নিয়েছি বাইট গণনা থেকে শ্রেণি সংজ্ঞাটি বাদ দেওয়া ঠিক আছে।

আমি লুপটির পুনরাবৃত্তির ক্রমটি বিপরীত করে (নীচের কচ্ছপ থেকে তৈরি করা) এবং / অথবা অন্যান্য উত্তরগুলির মতো পুরোপুরি পুনরাবৃত্ত হয়ে কিছুটা গল্ফ করতে সক্ষম হতে পারি।

নিজের কাছে নোট করুন: জাভাতে এন অক্ষরের পুনরাবৃত্তি করতে সত্যিই অন্তর্নির্মিত শর্টহ্যান্ডের অভাব রয়েছে ...


"একটি প্রোগ্রাম বা ফাংশন লিখুন ..." জাভা-এর সর্বজনীন স্ট্যাটিক

4

পাইথন, 137 120 113 110 বাইট

m=input()
for i in range(m):p=m-i;b=p%2;print' '*p+'__'*-~i+'\n'+' '*(p-2+b)+'o'*-~-b+'/,'+'__'*i+',\\'+'o'*b

Ungolfed:

m=input()
for i in range(m):
  p=m-i                              // Abstract m-i for a few bytes
  b=p%2                              // Determines every other turtle from bottom

  print' '*p + '__'*-~i + '\n' +    // The top of the turtle
       ' '*(p-2+b) +                // Leading spaces (-1 for every other turtle)
       '0'*-~-b +                   // Add a leading head to every other turtle
       '/,'+'__'*i +                // Body of the turtle
       ',\\'+'0'*b                  // Add a trailing head to every other turtle

মাথা শক্ত ছিল।


পরিবর্তে ('o','')[b], আপনি করতে পারেন 'o'*(1-b)(এবং 'o'*bজন্য ('o','')[1-b])।
মেগো

ওগো ঠিক আছে, আমি এটিকে পরিবর্তন করে একটি খালি চর, যে কাজ করে। ধন্যবাদ!
গ্রেস্ট শিফট

'0'*-~-1এর চেয়ে সংক্ষিপ্ত'0'*(1-b)
ধ্বংসাত্মক লেবু

এবং - ~ আমি (i + 1) এর চেয়ে ছোট
ধ্বংসাত্মক লেবু

3

এফ #, 218 207 202 196 187 বাইট।

ভেরিয়েবলগুলি ইনলাইন করে এই বাইটগুলির বেশিরভাগ শেভ করে

let R=String.replicate
let t n=let rec L i r k=if i<n then L(i+1)(R(k+i%2+1)" "+R((n-i)*2)"_"+"\n"+R k" "+R(i%2)"o"+"/,"+R(n*2-i*2-2)"_"+",\\"+R(1-i%2)"o"+"\n"+r)(k+i%2*2)else r in L 0""0

যুক্তিটি নির্লজ্জভাবে এই পাইথন উত্তরটি থেকে চুরি করা হয়েছে

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


3

সিজেম , 88 বাইট

ri_[S\_'_*_+N+\O\"/,"\('_*_++','\+'o]\({_[(S+\(2>\(S\+)'O^c+\(-2<\(\('o\{;O}&\;]}*]-1%N*

প্রথমে বৃহত্তম কচ্ছপ তৈরি করে (কারণ অন্যথায় প্রতিটি কচ্ছপ কী দাঁড়ায়?), তারপরে ক্ষুদ্রতমটি তৈরি না হওয়া পর্যন্ত ধীরে ধীরে আকার হ্রাস করে। 0 এর চেয়ে বড় সংখ্যার জন্য কাজ করে।

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


2

পাইথন 2.7, 255 238 236 বাইট

যদিও এটি অন্যান্য পাইথন 2 সমাধানের উভয়টিতেই হেরে গেছে, আমি আমার পুনরাবৃত্ত পদ্ধতির পছন্দ করেছি:

def r(s,p):
 for(a,b)in p:s=a.join(s.split(b))
 return s
def t(w):
 i='_'*2*w;s='\n __%s\n/,%s,\o'%(i,i)
 if w:s=r(t(w-1),[('\n ','\n'),('Z/',' /'),('\\Z\n','\\\n'),(' /','o/'),('\\','\\o'),('o','Z')])+s
 return s
print t(input()-1)[1:]

সম্পাদনা 1: কিছু প্রতিস্থাপন বাদ দিয়ে কয়েকটি বাইট ফেলেছে

এডিট 2: আন্ডারস্কোরগুলিকে ভেরিয়েবল হিসাবে সংরক্ষণ করে শেভ করে 2 বাইট



1

পাইথন 2.7, 139 114 113 130 বাইট

আমি ইগুয়ানডনের পুনরাবৃত্ত পদ্ধতির পছন্দও করেছি তাই এখানে কিছুটা ছোট চেষ্টা করা হয়েছে।

def t(n):
 if n>1:t(n-1)
 a=i-n;b=(a+1)%2;print' '*(a+1)+'__'*n+'\n'+' '*(a-1+b)+'o'*(not b)+'/,'+'__'*(n-1)+',\\'+'o'*b
i=input()
t(i)

সম্পাদনা

একটি শক্তিশালী 25 26 9 বাইটগুলি ধ্বংসাত্মক তরমুজ থেকে কিছু দুর্দান্ত টিপসের কারণে গল্ফ করেছে। অনেক ধন্যবাদ! ভাবুন এটি এখন সবচেয়ে সংক্ষিপ্ত পাইথন উত্তর হতে পারে :-)

def t(n):
 if n>1:t(n-1)
 a=i-n;b=-~a%2;print' '*-~a+'__'*n+'\n'+' '*(a-1+b)+'o'*-~-b+'/,'+'__'*~-n+',\\'+'o'*b
i=input()
t(i)

(a + 1) ছোট করা যেতে পারে - ~ a, এবং n-1 ছোট করে sh -n করা যেতে পারে, এবং খ সর্বদা 0 বা 1 হয়, তাই খ - - b-বি দ্বারা সংক্ষিপ্ত করা যায় না এবং আপনি এটিকে অপসারণ করতে পারেন i=input();t(i)অংশ, কারণ আপনি কেবল একটি ফাংশন রাখতে পারবেন are
ধ্বংসাত্মক লেবু

কিছু দুর্দান্ত ইঙ্গিত @ আবিষ্কারের জন্য ম্যান ধন্যবাদ। এছাড়াও দেখা গেছে যে খ হিসাবে সর্বদা 1 বা 0 হয় তবে 1-বি কাজ করে এবং আরও 1 বাইট হারাবে।
এলপেড্রো

কেবলমাত্র এর জন্য পেরেন্সের প্রয়োজন হবে, কারণ * বাইনারি - তবে অযৌক্তিক - এর চেয়ে উচ্চ অগ্রাধিকার রয়েছে
ধ্বংসাত্মক লেবু

এখন যেহেতু আমি এটি সম্পর্কে চিন্তা করি, যদি n সর্বদা> 0 হয় তবে n> 1 কে ছোট করে ~ -n (n-1) করা যেতে পারে, যা অগ্রণী স্থানটি ছাড়ে। এছাড়াও, আবার, (1-বি) ছোট করা যেতে পারে - no -বি কোনও প্যারেন ছাড়াই
ধ্বংসাত্মক লেবু

এই মাত্র পায় এবং ভাল ভাল! আমি
এটিতে

1

পাওয়ারশেল , 105 100 97 87 85 84 বাইট

-21 বাইটস ম্যাজিকে ধন্যবাদ, পাগল

"$args"..1|%{' '*$_--+($m='__'*$i++)+'__'
' '*($_-$_%2)+("/,$m,\o","o/,$m,\")[$_%2]}

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

বেশ কয়েকটি বাইট সংরক্ষণ করতে $_--বারবার ($_+1)ব্লক ব্যবহার করা এড়ানোর জন্য চতুরতার সাথে ভেরিয়েবলগুলি স্থানান্তরিত করে । এটি একক যুক্তিকে স্ট্রিংতে রূপান্তরিত করে যা কচ্ছপের সংখ্যার মধ্য দিয়ে পুনরাবৃত্তি করার জন্য একটি পরিসীমাতে ব্যবহৃত হওয়ার পরে কোনও int এ ফেলে দেওয়া হয়। সবচেয়ে বড় কৌশলটি এখন কচ্ছপের ব্যবধানের ২ য় স্তরের হ'ল কেবল বিয়োগ করে প্রতিটি অন্যান্য সারিকে বাড়িয়ে তোলে$_%2 বর্তমান সারি_কাউন্ট থেকে (যেমন 0 এমনকি, 1 বিজোড় যদি হয়) ।

অন্যথায়, সঠিকভাবে পিছনে থাকা ল্যাগ কাউন্টার সহ যথাযথ _এবং গণনা করা অনেকগুলি সূচক গণিত $i++, এবং এখন সঠিক দিকের দিকে মাথা রেখে কেবলমাত্র একটি তালিকা সূচক।


@ মমজি পেছনের জায়গা রাখতে পারে না তবে আমি এটি 5 বাইটের জন্য সংশোধন করেছি, ধন্যবাদ
ভেস্কাহ

1
আমি দুঃখিত :) 85 বাইট
mazzy

আরও বেশি কাজ করার জন্য @ ম্যামজি ডাবল ডাং ভাল জিনিস
ভেস্কাহ

1
সবই :) 84 বাইট
মজির

0

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

কোড

T=(i,h=0,p=1,R="repeat")=>(i>1?T(i-1,~h,p+1)+"\n":"")+" "[R](p)+'--'[R](i)+"\n"+" "[R](p-1+h)+(h?"o":"")+"/,"+'__'[R](i-1)+",\\"+(!h?"o":"")

পরীক্ষা

console.log(T(5));

     --
    /,,\o
    ----
  o/,__,\
   ------
  /,____,\o
  --------
o/,______,\
 ----------
/,________,\o

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