আমাকে কম্বল বানিয়ে দাও!


16

আমি এমন কম্বল চাই যা দেখতে দেখতে চাই। প্রতিটি স্ট্রিপ উপরে, অধীনে, ওভার, অধীনে যায়। আপনি কি এটি মুদ্রণ করতে পারেন?

\\\\////\\\\////\\\\////\\\\////\\\\////\\\\////
 \\////  \\////  \\////  \\////  \\////  \\//// 
  ////    ////    ////    ////    ////    ////  
 ////\\  ////\\  ////\\  ////\\  ////\\  ////\\ 
////\\\\////\\\\////\\\\////\\\\////\\\\////\\\\
\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\
\\    \\\\    \\\\    \\\\    \\\\    \\\\    \\
\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\
\\\\////\\\\////\\\\////\\\\////\\\\////\\\\////
 \\////  \\////  \\////  \\////  \\////  \\//// 
  ////    ////    ////    ////    ////    ////  
 ////\\  ////\\  ////\\  ////\\  ////\\  ////\\ 
////\\\\////\\\\////\\\\////\\\\////\\\\////\\\\
\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\
\\    \\\\    \\\\    \\\\    \\\\    \\\\    \\
\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\
\\\\////\\\\////\\\\////\\\\////\\\\////\\\\////
 \\////  \\////  \\////  \\////  \\////  \\//// 
  ////    ////    ////    ////    ////    ////  
 ////\\  ////\\  ////\\  ////\\  ////\\  ////\\ 
////\\\\////\\\\////\\\\////\\\\////\\\\////\\\\
\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\
\\    \\\\    \\\\    \\\\    \\\\    \\\\    \\
\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\

প্রতিটি লাইনের শেষে ফাঁকা স্থানগুলি এবং নতুন লাইনের অনুসরণযোগ্যতা গ্রহণযোগ্য।

মনে রাখবেন, এটি , তাই সবচেয়ে কম বাইট সহ কোডটি জয়ী।

লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।

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

# 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


ডান প্রান্তটি ভুলভ্রান্ত বলে মনে হচ্ছে।
ম্যাজিক অক্টোপাস উরান

বাম প্রান্তটি কি ওভারল্যাপিংয়ের উদ্দেশ্যে নয়?
xnor

@ এক্সনর দুঃখিত, আমার খারাপ।
অলিভার নি

@ কারাসোকম্পুটিং স্থির
অলিভার নি

10
আপনি যদি স্যান্ডবক্সটি ব্যবহার করেন তবে এই বিষয়গুলি মূলত উপরে উঠার আগে এগুলি এড়ানো যেত।
মেগো

উত্তর:


8

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

R=range(24)
for i in R:print''.join(" \// \/\\"[i+~j>>2&1^i+j>>1&2^i&4]for j in R*2)

পাটিগণিত ক্রিয়াকলাপগুলি বিটওয়াইয়াসে রূপান্তরিত করে 6 বাইটের জন্য Sp3000 ধন্যবাদ।


ওহো ... কেমন ????
অলিভার নি

1
i+~j>>2&1^i+j>>1&2^i&4সম্ভবত?
Sp3000

@ Sp3000 এটি কিছু দুর্দান্ত বিটওয়াইস অগ্রাধিকার। আমি এটি মনে রাখতে হবে যখন গাণিতিকভাবে প্রাপ্ত উত্সগুলি বুলিয়ানগুলি একটি সূচীতে মিশ্রিত করার সময়।
xnor

5

পাইথ, 36 বাইট

V24sm@" \// \/\\"im<3%k8++BNdt-NdT48

অনলাইনে চেষ্টা করুন: বিক্ষোভ

ব্যাখ্যা:

আমরা 3 টি শর্ত পরীক্ষা করে প্রতীকটি নির্ধারণ করতে পারি:

A := row % 8 > 3
B := (row + column) % 8 > 3
C := (row - column - 1) % 8 > 3

যদি আমরা [A,B,C]বাইনারি নম্বর হিসাবে ব্যাখ্যা করি তবে আমরা নিম্নলিখিত ম্যাপিংটি পাই:

01234567
 \// \/\

আমরা [A,B,C]দশমিক সংখ্যা হিসাবেও ব্যাখ্যা করতে পারি এবং স্ট্রিংয়ের মধ্যে একটি মডুলার ইনডেক্সড লুক প্রদর্শন করতে পারি। এটি কোনও পার্থক্য করে না কারণ 10 mod 8 = 2

এখন কোডে:

V24পুনরাবৃত্তি N(সারি-আইডিএক্স) শেষ [0, 1, ..., 23]

sm...48সংখ্যার মানচিত্র d(কলাম-আইডিএক্স) অক্ষরে [0, 1, ..., 47]এবং সংযুক্ত স্ট্রিং মুদ্রণ করুন।

++BNdতালিকা তৈরি করে [N, N+d], +...t-Ndসংযোজন N-d-1। সুতরাং আমরা তালিকা পেয়েছি [N, N+d, N-d-1]m<3%k8প্রতিটি গণিত সংখ্যার জন্য পরীক্ষা করে k, যদি 3 < k % 8তাই হয় তবে এটি শর্তগুলির সাথে তালিকা দেয় [A, B, C]

i...Tএটি একটি দশমিক সংখ্যায় আহ্বান @" \// \/\\"করে এবং তারপরে স্ট্রিংয়ের মধ্যে অনুসন্ধান করে।

পাইথন 2: 98 বাইটে কম কোড একই কোড :

R=range(8)
for r in R*3:print''.join(" \// \/\\"[4*(r>3)+2*((r+c)%8>3)+((r-c-1)%8>3)]for c in R*6)

কেবল পাইথের সাথে আঁকড়ে ধরার চেষ্টা করলাম যাতে ভাল ব্যাখ্যা সহ যে কোনও শালীন উত্তর আমার কাছ থেকে আসে। আমার বেস 3 পরীক্ষার পরে
পাইথ

আপনার পাইথন 2 উত্তরটিও পোস্ট করা উচিত ...
জেরি যেরেমিয়া

3

পার্ল, 209 + 17 = 226 বাইট

দিয়ে চালান -mList::Util=max -M5.010(দ্বিতীয় পতাকাটি বিনামূল্যে)। এটি কোনও বাইট গণনা প্রতিযোগিতা জিতছে না, তবে এখানে আমার সমাধান।

for(0..7){@b=(1)x8;@b[$_+3..$_+7]=(3)x4;@b[7-$_..10-$_]=(2)x4;for$c(0..2){$b[$c+8]=max$b[$c+8],$b[$c];$b[5-$c]=max$b[5-$c],$b[13-$c];}push@a,sprintf("%-8s",join("",@b[3..10])=~tr[123][ /\\]r)x6;}say for@a,@a,@a

রিডেবল:

for(0..7){
    @b=(1)x8;
    @b[$_+3..$_+7]=(3)x4;
    @b[7-$_..10-$_]=(2)x4;
    for$c(0..2){
        $b[$c+8]=max$b[$c+8],$b[$c];
        $b[5-$c]=max$b[5-$c],$b[13-$c];
    }
    push@a,sprintf("%-8s",join("",@b[3..10])=~tr[123][ /\\]r)x6
}
say for@a,@a,@a

পদ্ধতিগতভাবে প্রতিটি বিভাগ তৈরি করে, তারপরে প্যাটার্নটি 6 বার পুনরাবৃত্তি করে, তারপরে মোট ফলাফলটি 3 বার আউটপুট করে।


ওহো, যাইহোক পার্লে এটি করার জন্য আমি আর দীর্ঘতম জবাব নয় :) +1।
এলপেড্রো

আমি এটি অন্য সবার মতোই করতে পারতাম (কেবল একগুচ্ছ লাইন মুদ্রণ করছিলাম), তবে আমি সিদ্ধান্ত নিয়েছিলাম পরিবর্তে অ্যালগরিদমিকভাবে কাজগুলি করার সিদ্ধান্ত নিয়েছিলাম কারণ আমি অনুভব করেছি যে এটি শীতল।
গ্যাব্রিয়েল বেনামি

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

3

পাইথন 3, 174 172 138 বাইট

print("\n".join(o*6for o in("bbbb////"," bb//// ","  ////  "," ////bb ","////bbbb","b//  bbb","bb    bb","bbb  //b")*3).replace("b","\\"))

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

অলিভারকে 2 বাইট বন্ধ করে দেওয়ার জন্য ধন্যবাদ!

প্যাটার্নটি পরিবর্তন করে 34 বাইট নিল - কম্বলের পুরো প্যাটার্নটি এখন একক তালিকায় রয়েছে, সুতরাং প্যাটার্নটি মোড়ানোর জন্য লুপের জন্য কেবল একটির প্রয়োজন।


1
পিপিসিজিতে আপনাকে স্বাগতম! প্রথম প্রথম পোস্ট! পাইথন 2 এ আপনি একটি বাইট শেভ করতে পারেন আমার মনে হয়, মুদ্রণের জন্য আপনার প্যারেন্টস লাগবে না।
আর

1
আপনাকে ইস্টারলি ইরককে ধন্যবাদ, আমি খুব দীর্ঘকাল ধরে কোড গল্ফের সাথে ঘুরে বেড়াচ্ছি, তাই আমি অংশগ্রহণের সিদ্ধান্ত নিয়েছি। :)
TheCrazyInventor

1
আপনি পরে জায়গা সরিয়ে দুই বাইট সংরক্ষণ করতে পারবেন 0*6এবংu*6
অলিভার এন

1
ডাবল ব্যাকস্ল্যাশগুলির জন্য "বি" ব্যবহার করে আপনি 4 বাইট সংরক্ষণ করতে পারবেন এবং যে কোনও জায়গায় আপনার একক ব্যাকস্ল্যাশ প্রয়োজন কেবল print((("\n".join(o*6 for o in("bb////"," b//// "," //// "," ////b ",""))+"\n".join(u*6 for u in("////bb","\\// b\\","b b","b\\ //\\","")))*3).replace("b","\\\\"))
এস্কেপিংয়ের

জাজিমা: আপনার কোডটি বৈধ কম্বল তৈরি করেছে বলে মনে হচ্ছে না।
TheCrazyInventor

3

পাইথন 2, 171 170 168 বাইট

a,b,c=r"\\","/"*4," "
f,g=c*2,c+a+b+c
d=(a*2+b)*6,g*6,(f+b+f)*6,g[::-1]*6,(b+a*2)*6,('\\//'+f+a+"\\")*6,(a+f*2+a)*6,(a+"\\"+f+'//\\')*6
for e in 0,1,2:print'\n'.join(d)

সুন্দর নয় এবং চালাকও নয়। স্ট্রিংগুলির সর্বাধিক ব্যবহৃত গ্রুপগুলির জন্য কেবল ভেরিয়েবল সেট করে তারপরে তাদের একত্রিত করে ফলাফলটি 3 বার মুদ্রণ করে। আমি আরও ভাল পদ্ধতির সন্ধান না পেলে আরও পরে চেষ্টা করতে এবং এটি গল্ফ করতে পারে।

অ্যাসাইনমেন্টে কাঁচা ইনপুট ব্যবহার করে 1 বাইট সংরক্ষণ করা হয়েছে। ধন্যবাদ @ নেডলা ২০০৪

-2 বেশ কয়েকটি ভেরিয়েবল বরাদ্দ করে কিন্তু এখনও গুরুতর প্রতিযোগী নয়


1
আপনি একটি "আর"
def

ধন্যবাদ @ নেডলা ২০০৪ শুভ পয়েন্ট। এটি খুব দ্রুত একসাথে ছুঁড়ে ফেলেছে এবং এটি পরে তা দেখতে চলেছে। এটি একটি দুর্দান্ত শুরু :)
এলপেড্রো

*6যদিও প্রতিটি টিউপল উপাদানটিতে রাস্তা খুঁজে পেতে সর্বাধিক আগ্রহী । কোন ধারনা?
এলপেড্রো

1
আপনি কীভাবে এটি করতে পারেন তা আমি জানি না, তবে শেষ পংক্তিটি হতে পারে exec r"print'\n'.join(d);"*3
nedla2004

আমি কেবল আগ্রহের বাইরে একটি বিকল্প পোস্ট করেছি। এটিতে আপনার মন্তব্যেরও মূল্য দিতে হবে।
এলপেড্রো

2

এসওএমএল , 106 বাইট

3{"\\\\////”6*p" \\//// ”6*p"  ////  ”6*p" ////\\ ”6*p"////\\\\”6*p"\//  \\\”6*p"\\    \\”6*p"\\\  //\”6*p

আমি সম্প্রতি সম্প্রতি যুক্ত করেছি এমন একটি ফাংশন ব্যবহার করে একটি অ-প্রতিযোগিতামূলক সংস্করণ: ( 83 67) 66 বাইট)

ব্যাখ্যা:

  →$\\→#////→@”6*p"→~3{"##@~ #@ ~$@$~ @# ~@##~\//$#\~#$$#~#\$//\~”
  →$                                                                in the further code replace "$" with "  "
    \\→#                                                            replace "#" with "\\"
        ////→@                                                      replace "@" with "////"
              ”6*p"→~3{"##@~ #@ ~$@$~ @# ~@##~\//$#\~#$$#~#\$//\~” the code to exchange stuff in

so that results in:
”6*p"→~3{"\\\\////~ \\//// ~  ////  ~ ////\\ ~////\\\\~\//  \\\~\\    \\~\\\  //\~”
”6*p"→~3{"A~B~C~D~E~F~G~H~”  modified version of the program (removing "/","\" and " " and replaced with A,B,C,ect.)
”6*p"→~                      replace in the further program "~" with ”6*p" which is:
”                            end string
 6*                          repeat the last thing in stack 6 times
   p                         output the result
    "                        start a string
resulting program: 
3{"A”6*p"B”6*p"C”6*p"D”6*p"E”6*p"F”6*p"G”6*p"H”6*p"”
shortened example:
3{"A”6*p"B”6*p"H”6*p"”
3{                      repeat 3 times
  "A”                   push "A" (original: "\\\\////")
     6*p                output it multiplied by 6
        "B”             push "B" (original: " \\//// ")
           6*p          output it multiplied by 6
              "H”       push "H" (original: "\\\  //\")
                 6*p    output it multiplied by 6
                    "”  push an empty string (shorter to do ~” than ”6*p)

2

রুবি, 75 বাইট

1152.times{|i|$><<"\\/ /\\\\ /"[(i+j=i/48)/4&1|(i-j)/2&2|j&4]+$/*(i%48/47)}

পরিবর্তিতযোগ্য 4-বাইট স্ট্রিংয়ের পরিবর্তে অন্যান্য প্যারামিটারগুলি ছাড়াও জে ও 4 দ্বারা সূচিত একটি একক 8-বাইট স্ট্রিং লুকআপ ব্যবহার করা আরও ভাল।

রুবি, 81 বাইট

1152.times{|i|j=i/48%8;$><<"\\#{'/\\'[j/4]} /"[(i+j)/4&1|(i-j)/2&2]+$/*(i%48/47)}

অক্ষর অনুসারে ডায়াগোনাল স্ট্রিপস অক্ষর মুদ্রণ করে। প্রতিটি অক্ষরের উপস্থিতি / অনুপস্থিতির উপর নির্ভর করে 4 টি অক্ষরের একটি স্ট্রিং থেকে সঠিক অক্ষরটি নির্বাচিত হয়। কোন স্ট্র্যান্ড শীর্ষে রয়েছে তার উপর নির্ভর করে ওভারল্যাপের চরিত্রটি বৈচিত্রপূর্ণ।

মন্তব্য

1152.times{|i|j=i/48%8;        #Iterate through all printable chars. j is line number.
  $><<"\\#{'/\\'[j/4]} /"[     #Print a char from "\/ /" if j/4 even or "\\ /" if odd. character changes depending which strand on top.
   (i+j)/4&1|(i-j)/2&2]+       #Print \ if (i+j)/4==0, / if (i-j)/2&2 >0, space if both false. As above if both true. 
   $/*(i%48/47)                #If on column 47, print a newline.
}

2

পার্ল, 132 131 113 বাইট

@a=((0)x4,1..4);map{say+(map$a[7-$_]?$a[$_]*$r?'/':'\\':$a[$_]?'/':$",0..7)x6;push@a,shift@a;$_%4||($r=!$r)}0..23

Ungolfed:

use strict;
use warnings;
use feature 'say';

my @a = ((1) x 4, (0) x 4);  # print '\' if true
my @b = ((0) x 4, (1) x 4);  # print '/' if true
my $r = 0;                   # print '\' over '/' if true

for (0 .. 23) {
    say((map { $a[$_] ? ($b[$_] * $r ? '/' : '\\') : ($b[$_] ? '/' : ' ') } 0 .. 7) x 6);
    unshift(@a, pop(@a));    # circular shift to left
    push(@b, shift(@b));     # circular shift to right
    $r = !$r if !($_ % 4);   # change print priority
}

2

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

ব্যবহার সিপি-1252 এনকোডিং।

24FNU48FXXN+XN-<)8%3›J" \// \/\"è?}¶?

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

ব্যাখ্যা

জাকুবের পাইথ উত্তরে দক্ষতার সাথে ব্যাখ্যা করা মোড -8 ট্রিক ব্যবহার করুন ।

24F                                    # for N in [0 ... 23] do:
   NU                                  # save N in X
     48F                               # for N in [0 ... 48] do:
        XXN+XN-<)                      # push [X,X+N,X-N-1]
                 8%                    # mod each by 8
                   3›                  # compare with 3
                     J                 # join
                      " \// \/\"è?     # index into string and print
                                  }    # end inner loop
                                   ¶?  # print newline

2

পাইথন, 245 236 234 233 230 216 212 198 195 বাইট

ঠিক আছে, আমার শেষের (এবং অন্য কোনও) উত্তরের চেয়ে দীর্ঘ তবে পদ্ধতির প্রতিক্রিয়ায় আগ্রহী।

for a in(40,4496,6200,5456,3240,1188,720,228)*3:print((`a%6561/2178`+`a%2178/729`+`a%729/243`+`a%243/81`+`a%81/27`+`a%27/9`+`a%9/3`+`a%3/1`)*6).replace('0','\\').replace('1','/').replace('2',' ')

সম্পাদন করা

@9eded2002004 আমার চেয়ে বলের বেশি হওয়ার কারণে -9

-2 লুপের বাইরে ল্যাম্বডা নিয়ে এবং তাই 2 টি ইনডেন্ট স্পেস হারিয়ে

-1 এর in' '*3পরিবর্তে ব্যবহার করে in 0,1,2যেহেতু আমি hযাইহোক ব্যবহার করি না। এটা ঠিক একটি পাল্টা।

-৩ কেন, কেন, কেন আমি একটি নতুন লাইন এবং দ্বিতীয় এবং প্রিন্টের মধ্যে 2 টি ইনডেন্ট রেখেছি ??? এটা দেরি হয়ে গেছে. আগামীকাল আবার দেখা হবে।

-14 আসলে ল্যাম্বডাকে পুরোপুরি হারাতে পারে এবং প্রিন্ট স্টেটমেন্টের পরে সরাসরি বেস 3 ডিকোডারকে অন্তর্ভুক্ত করতে পারে। অগোছালো দেখাচ্ছে তবে সর্বোপরি, এটি কোড গল্ফ :)

-4 কোনও পূর্ণসংখ্যার তালিকার জন্য ভেরিয়েবল সেট করার কোন বিন্দু নেই। লুপের জন্য এটি কেবল দ্বিতীয়টিতে সরাসরি ব্যবহার করুন।

-14 এবং বাইরের লুপ ব্যবহার করে কোনও বিন্দু নেই। কেবল পূর্ণসংখ্যার টুপলটিকে 3 দিয়ে গুণ করুন (200 নেমে যাওয়ার জন্য নির্লজ্জভাবে @ নেডলা ২০০৪ থেকে চুরি হয়েছে))

-3 \ = 0, / = 1 এবং স্পেস = 2 তৈরি করে 3 সংরক্ষণ করা হয়েছে। এই সংখ্যাটি সংখ্যাকে তিনটি বেসের সংখ্যাকে তিনটি করে সংক্ষিপ্ত করে তোলে যার মধ্যে এখন 0 রয়েছে

এটি কীভাবে কাজ করে (এবং এটি করে)

যেহেতু শুধুমাত্র 3 টি অক্ষর ব্যবহৃত হয়েছে:

  1. l হ'ল 8 "পুনরাবৃত্তি প্যাটার্নগুলির একটি তালিকা তাদের বেস 3 উপস্থাপনার পূর্ণসংখ্যার সমতুল্য হিসাবে ধরে ধরে" "= 0," \ "= 1 এবং" / "= 2

  2. ল্যাম্বদা প্রথম মুদ্রণ বিবৃতিটির পরে কোডটি একটি বেজ 3 স্ট্রিংয়ের পূর্ণসংখ্যা থেকে লাইটওয়েট রূপান্তরকারী

  3. প্রথম লুপটি 3 বার লুপ করে এবং দ্বিতীয়টি প্রতিটি লাইনটি বেস 3 টি অক্ষরের সাথে 6 দিয়ে গুণিত করে এবং /, \ বা স্পেসের সাথে প্রতিস্থাপন করে।

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


1
আপনি কেবল বেস 3 রূপান্তরটিতে প্রথম বিভাগটি সরাতে পারেন।
nedla2004

কিছু কারণে যা আমাকে আগে সমস্যা তৈরি করেছিল তবে চেষ্টা করেছে এবং এটি এখন কাজ করে। আমার চেয়ে বেশি জাগ্রত হওয়ার জন্য অনেক ধন্যবাদ আমি আমার উত্তরটি পুনরায় সম্পাদনা করব (এবং আপনি কেবল আমাকে 9 বাইট :) সংরক্ষণ করেছেন)
এলপেড্রো

1
আমি বেস 3 রূপান্তরটি আবার লিখেছি, এটি আর ল্যাম্বডা নয়, আমাকে এটি একটি ফাংশন বানাতে হয়েছিল তবে এটি আবার কোনও ল্যাম্বডায় রূপান্তরিত হতে সক্ষম হতে পারে। আপনি এখানে ফাংশন খুঁজে পেতে পারেন ।
nedla2004

ধন্যবাদ। আমি মনে করি দুজনের সংমিশ্রণটি কাজ করতে পারে তবে এটি সম্ভবত আগামীকাল সন্ধ্যায় একটি কাজ :) আপনার মন্তব্যের জন্য আবারও ধন্যবাদ।
এলপেড্রো

1
আমি এখানে এটি 169 এ নেমে এসেছি
nedla2004

2

রুবি, 135 বাইট

puts [3320,1212,720,2172,6520,4144,2920,3184].map{|e|(e.to_s(3).rjust(8,"0").gsub("0"," ").gsub("1","\\").gsub("2","/"))*6+"\n"}.join*3

সংখ্যা অ্যারে প্রতিটি লাইনের প্রতিটি উপাদানের সাথে মিলে যায়, বেস 3: = 0, \= 1, এ অনুবাদ হয়/ = 2 এ অনুবাদ করে দশমিক হিসাবে রূপান্তরিত হয়। যদিও gsub () কলগুলি খুব বড়।

এবং, এখনই, আমি @ এলপিড্রোর উত্তর দেখেছি। :-( শুধু কাকতালীয়।


e.to_s(3).rjust(8,"0")("%8s"%e.to_s(3)); gsub("0"," ").gsub("1","\\")..gsub("2","/")tr("013"," \\/"); "\n"$/; .join*""। এছাড়াও আপনি 4 দ্বারা অ্যারের মধ্যে সংখ্যার সব বিভাজক এবং প্রতিস্থাপন করে বাইট সংরক্ষণ করতে পারবেন eসঙ্গে (e*4)
জর্দান

ওফ, আমার ধারণা এটি হওয়া উচিত tr("021"," /\\")
জর্দান


2

পিএইচপি 157 126 বাইট

মন্তব্যগুলিতে টাইটাসের তালিকা পরিবর্তনগুলি নিয়ে ... আমি বিরক্ত হয়েছি আমি পয়েন্ট 1 মিস করেছি যা আমার ধরা উচিত ছিল, তবে আমি জানতাম না স্ট্রাইট () এর অস্তিত্ব রয়েছে যেখানে বেশিরভাগ সঞ্চয় আসে - সুন্দর কাজ তিতাস!

নতুন:

while($i<32)echo$b=strtr([3322,' 322 ','0220',' 223 ',2233,12013,3003,13021][$i++%8],['  ','\\','//','\\\\']),"$b$b$b$b$b\n";

পুরানো:

<?$a=[zzyy,' zyy ',syys,' yyz ',yyzz,xysxz,zssz,xzsyx];while($i<32){$b=$a[$i++%8];$b=str_replace([z,x,y,s],['\\\\','\\','//','  '],$b);echo"$b$b$b$b$b$b
";}

যেহেতু সমস্ত ব্যাকস্ল্যাশগুলি এড়িয়ে চলা দরকার তাদের আলাদা চরিত্র হিসাবে প্যাক করতে এবং আউটপুটটির জন্য তাদের প্রতিস্থাপনের জন্য বেশ কিছুটা জায়গা সাশ্রয় করে এবং তারপরে আমি যখন str_replace কল করছি () এটি যতবার সম্ভব ব্যবহার করা বোধগম্য হয়।


1
আপনি যদি ব্যবহার করেন তবে উন্মুক্ত ট্যাগটি সরাতে পারেন -r। আরও ৩০ টি বাইট সংরক্ষণের জন্য এই পাঁচটি পদক্ষেপ ব্যবহার করুন: ideone.com/wt4HGB 1) এটি নির্ধারণের পরিবর্তে প্যারামিটার $a[...]হিসাবে সরাসরি ব্যবহার করুন str_replace। 2) strtrপরিবর্তে str_replace। 3) অক্ষরের পরিবর্তে অঙ্কগুলি ব্যবহার করুন। 4) প্রতিধ্বনিতে অ্যাসাইনমেন্টটি অন্তর্ভুক্ত করুন। 5) বরাদ্দ না $a, শুধু এটি ব্যবহার করুন।
তিতাস

1

পাইথন 2, 169 161 165 160 155 154 152

@ এলপিড্রোর জবাবের উপর ভিত্তি করে, ছোট উন্নতি হয়েছে। ব্যাখ্যা দেখতে, তাদের উত্তর দেখুন । এটি পাইথন 2, যদিও এটির কাছে কাছে প্রথম বন্ধনী রয়েছে print

এর জন্য একটি ভেরিয়েবল ব্যবহার করে 8 বাইট সংরক্ষণ করা হয়েছে replaceএটি কেবল স্ট্রিংয়ের জন্য কাজ করে এবং এর জন্য একটি ফাংশন ব্যবহার করা আরও দীর্ঘ হবে।

@ এলপেড্রো বুঝতে পেরে 4 টি বাইট সংরক্ষণ করেছেন যে তাদের l এর দরকার নেই এবং আমিও করি না।

ফ্লিট না করে 5 টি বাইট সংরক্ষণ করা হয়েছে range(8)এবং এর পরিবর্তে +=আর-তে সংযোজন ব্যবহার করার পরিবর্তে নতুন অঙ্কের শেষে r যুক্ত করুন। এটি ব্যবহার করে দেখুনRepl.it দেখুন

@ এলপিড্রোর নতুন মানের মান তালিকা চুরি করে 5 বাইট সংরক্ষণ করা হয়েছে।

inএবং এর মধ্যে স্থান সরিয়ে 1 বাইট সংরক্ষণ করা হয়েছে(

ভেরিয়েবলটি সরিয়ে 2 বাইট সংরক্ষণ করা হয়েছে।

for x in(40,4496,6200,5456,3240,1188,720,228)*3:
 r=''
 for i in range(8):r=`x/3**i%3`+r
 print(r*6).replace('0','\\').replace('1','/').replace('2',' ')

আপনি মধ্যে স্থান সরিয়ে 1 রক্ষা করতে পারে inএবং (এর জন্য প্রথমে
ElPedro

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

আপনি প্রয়োজন হবে না a=3**i। একটি দম্পতি সংরক্ষণ করতে কেবল for i in range(8):r=এক্স / 3 ** আই% 3 +rব্যবহার করুন। অপারেটর অগ্রাধিকার বিশ্রামের যত্ন নেয় :)
এলপেড্রো

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

ভাল কথা, আমি বুঝতে পেরেছি।
nedla2004

1

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

<?$p=['1111////',' 11//// ','  ////  ',' ////11 ','////1111','1//  111','11    11','111  //1'];for($j=0;$j<3;$j++)for($i=0;$i<8;$i++)echo str_replace(1,'\\',str_repeat($p[$i],6))."\n";

আউটপুট:

C:\PHP>php make-me-a-blanket.php
\\\\////\\\\////\\\\////\\\\////\\\\////\\\\////
 \\////  \\////  \\////  \\////  \\////  \\//// 
  ////    ////    ////    ////    ////    ////  
 ////\\  ////\\  ////\\  ////\\  ////\\  ////\\ 
////\\\\////\\\\////\\\\////\\\\////\\\\////\\\\
\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\
\\    \\\\    \\\\    \\\\    \\\\    \\\\    \\
\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\
\\\\////\\\\////\\\\////\\\\////\\\\////\\\\////
 \\////  \\////  \\////  \\////  \\////  \\//// 
  ////    ////    ////    ////    ////    ////  
 ////\\  ////\\  ////\\  ////\\  ////\\  ////\\ 
////\\\\////\\\\////\\\\////\\\\////\\\\////\\\\
\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\
\\    \\\\    \\\\    \\\\    \\\\    \\\\    \\
\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\
\\\\////\\\\////\\\\////\\\\////\\\\////\\\\////
 \\////  \\////  \\////  \\////  \\////  \\//// 
  ////    ////    ////    ////    ////    ////  
 ////\\  ////\\  ////\\  ////\\  ////\\  ////\\ 
////\\\\////\\\\////\\\\////\\\\////\\\\////\\\\
\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\\//  \\\
\\    \\\\    \\\\    \\\\    \\\\    \\\\    \\
\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\\\\  //\

0

ব্যাচ, 152 বাইট

@call:l
@call:l
:l
@for %%s in (\\\\//// " \\//// " "  ////  " " ////\\ " ////\\\\ "\//  \\\" "\\    \\" "\\\  //\")do @echo %%~s%%~s%%~s%%~s%%~s%%~s

ব্যাচে স্ট্রিং প্রসেসিং সফল হয়, তাই এটি সম্ভবত সেরা পন্থা। কল-অ্যান্ড ফ্যাল-থ্রো নেস্টেড forলুপের চেয়ে খুব সামান্য । অন্তত আমার ব্যাকস্ল্যাশ উদ্ধৃতি দিতে হবে না!


0

এপিএল, ১১০ বাইট

আমি এপিএলে নতুন, তাই এটি একটি সরল সমাধান।

A←48⍴'\\\\////'⋄B←48⍴' \\//// '⋄C←48⍴'  ////  '⋄F←48⍴'\//  \\\'⋄G←48⍴'\\    \\'⋄24 48⍴A,B,C,(⊖B),(⊖A),F,G,⊖F  

এখানে আমার পদ্ধতির: নোট করুন যে কম্বলের প্রথম 8 লাইনের পরে, প্যাটার্নটি পুনরাবৃত্তি করে। সুতরাং আমাকে কেবল প্রথম 8 টি লাইন সংজ্ঞায়িত করতে হবে এবং তারপরে আমি তাদের 3 বার পুনরাবৃত্তি করতে পারি। এছাড়াও মনে রাখবেন যে প্রতিটি লাইন প্রথম 8 টি অক্ষরের পরে নিজেকে পুনরাবৃত্তি করে। সুতরাং একটি একক লাইন সংজ্ঞায়িত করার জন্য আমাকে কেবল প্রথম 8 টি অক্ষর সংজ্ঞায়িত করতে হবে এবং তারপরে 8 বার পুনরাবৃত্তি করতে হবে।

এখানে একটি অসমাপ্ত সমাধান:

A←48⍴'\\\\////'⋄ ⍝ set A to a 48 element vector (48⍴) of repeated '\\\\////'s
B←48⍴' \\//// '⋄ ⍝ set B to a 48 element vector (48⍴) of repeated ' \\//// 's
C←48⍴'  ////  '⋄ ⍝ ...
D←48⍴' ////\\ '⋄ ⍝ Note that this is actually the reverse of vector B
E←48⍴'////\\\\'⋄ ⍝ Note that this is actually the reverse of vector A
F←48⍴'\//  \\\'⋄
G←48⍴'\\    \\'⋄
H←48⍴'\\\  //\'⋄ ⍝ Note that this is actually the reverse of vector F

24 48 ⍴ A,B,C,D,E,F,G,H ⍝ Make a 24 by 48 character matrix (24 48⍴) by concatenating A,B...H
                        ⍝ and repeating the string until the matrix is full

আমি উপরে উল্লিখিত করেছি যে ডি বি এর বিপরীত, ই হ'ল বি এর বিপরীত এবং এইচ এর বিপরীত। আমার আসল কোডে আমি ডি, এফ, বা এইচ সংজ্ঞায়িত না করে এবং বিপরীত ফাংশন ব্যবহার করে এর সুবিধা গ্রহণ করি :

24 48⍴A,B,C,(⊖B),(⊖A),F,G,⊖F


0

রুবি, 132 বাইট

puts Zlib.inflate Base64.decode64 "eJzt0bENADAMAsGeKdggC/3+cyQRC+A2ipuT3RgJgHWGUjm6VXb2Vjn/3KpJ/qtIPlp1v+XSKZKPVk3y/x5+D6/3sAEUXQ+Q"

খুব সহজ উত্তর।


0

হাস্কেল, 96 বাইট

f n=n`mod`8`div`4
putStr$unlines[["\\ //\\ \\/"!!(f(x-y)+2*f(x+y)+4*f y)|x<-[0..47]]|y<-[0..23]]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.