เอาท์พุทกล่องสวย


17

ความท้าทายของคุณคือการส่งออกกล่องต่อไปนี้:

..................................................
..................................................
..                                              ..
..                                              ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..                                              ..
..                                              ..
..................................................
..................................................

กล่องมีความสูงและความกว้าง 50 ช่องว่างกว้างสอง

คุณต้องเขียนฟังก์ชั่นหรือโปรแกรมที่ส่งออกหรือส่งกลับสตริงและไม่มีการป้อนข้อมูล

ไบต์ที่น้อยที่สุดจะชนะ!


4
ทำไม+กล่องภายในสุดมี 1 ชั้นที่ด้านบนและด้านล่างเท่านั้น? นั่นจะทำให้คำตอบที่ใช้อัลกอริทึมค่อนข้างยาวเพราะมันหมายถึงว่าชั้นสองส่วนในสุดนั้นไม่ได้เป็นแบบสี่เหลี่ยมจัตุรัส
ETHproductions

@Pavel ตกลง ถอนการโหวตอย่างใกล้ชิด :)
บาดเจ็บทางดิจิทัล

4
ทำไมข้อ จำกัด ของโปรแกรมที่สมบูรณ์
Rɪᴋᴇʀ

1
@Pavel ทำไม? มันไม่ได้เพิ่มความท้าทายใด ๆ เลย
Rɪᴋᴇʀ

1
@ โพล ..... ไม่ ฉันหมายความว่าใช่มีบางอย่าง แต่มันไม่ได้เป็นข้อกำหนด / มาตรฐานสำหรับความท้าทายของ KG
Rɪᴋᴇʀ

คำตอบ:



14

J , 25 ไบต์

echo'. + '{~4|>./~2#|i:12

ลองออนไลน์!

คำอธิบาย

echo'. + '{~4|>./~2#|i:12
                     i:12  Range from -12 to 12.
                    |      Take absolute values,
                  2#       duplicate every element,
                /~         compute "multiplication table"
              >.           using maximum,
            4|             take mod 4 of every element,
    '. + '{~               index into this string,
echo                       print char matrix for everyone to see.

ฉันคิดว่าคุณสามารถละทิ้งเสียงสะท้อนได้
Conor O'Brien

@ ConorO'Brien โอ้กฎเอาต์พุตเปลี่ยนไป ... อืม แต่ถ้าฉันลบออกechoมันจะไม่ได้เป็นเพียงฟังก์ชั่น แต่มีค่า แม้ว่า J จะไม่มีฟังก์ชั่นศูนย์อาร์กิวเมนต์
Zgarb

ฉันคิดว่ามันได้รับอนุญาตตามธรรมชาติของการเลียนแบบ J ในกรณีใด ๆ ฟังก์ชั่นคงที่สามารถพิจารณาให้เป็นศูนย์อาร์กิวเมนต์
Conor O'Brien

11

C, 115 ไบต์

#define M(x,y)x<(y)?x:y
f(i){for(i=2549;i;i--)putchar(i%51?". + "[(M(i%51-1,M(50-i%51,M(i/51,49-i/51))))/2%4]:10);}

กำหนดฟังก์ชั่นf(เรียกว่าf();) ที่พิมพ์สตริงเพื่อ STDOUT


9

C, 535 478 477 Bytes

ตอนนี้เป็นจำนวนมากของกอล์ฟ: - /

i;main(j){for(;++i<51;puts(""))for(j=0;++j<51;)putchar(i<3|i>48?46:j<3|j>48?46:i>4&i<47&j>4&j<47?i<7|(i>44&i<47)|(j>2&j<7)|(j>44&j<47)?43:j>8&j<43&((i>8&i<11)|(i>40&i<43))?46:i>9&i<41&((j>8&j<11)|(j>40&j<43))?46:i>13&i<37&((j>12&j<15)|(j>36&j<39))?43:((i>12&i<15)|(i>36&i<39))&j>12&j<39?43:i>17&i<33&((j>16&j<19)|(j>32&j<35))?46:((i>16&i<19)|(i>32&i<35))&j>16&j<35?46:i>21&i<29&((j>20&j<23)|(j>28&j<31))?43:((i>20&i<23)|(i>28&i<31))&j>20&j<31?43:i>24&i<27&j>24&j<27?46:32:32);}

นี่คือผลลัพธ์

..................................................
..................................................
..                                              ..
..                                              ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..                                              ..
..                                              ..
..................................................
..................................................

2
อึศักดิ์สิทธิ์ ฉันชื่นชมการอุทิศของคุณ
Rɪᴋᴇʀ

ฉันเปลี่ยนข้อ จำกัด ฟังก์ชั่นที่คืนค่าสตริงได้รับอนุญาตแล้ว
Pavel

ฉันเพิ่งรู้ว่าฉันสามารถตีสองสามไบต์ออกมาเขียนลูปอีกครั้งfor(;i++<51;และตอนนี้ฉันออกไปทุกที่: - /
cleblanc

@cleblanc++i
dkudriavtsev

MFW ฉันเริ่มพยายามทำความเข้าใจกับสิ่งนี้: i.imgur.com/TLV9gJ4.png +1
Magic Octopus Urn

6

Haskell, 72 ไบต์

q=(\n->[n,n]).abs=<<[-12..12]
unlines[[". + "!!mod(max x y)4|y<-q]|x<-q]

@ โซลูชั่นของ Zgarbใน Haskell ฉันยังพยายามสร้างกล่องโดยเพิ่มเลเยอร์รอบ ๆ แกน["..",".."]แต่มันมีความยาว 9 ไบต์ (81 ไบต์)

e!b=e:e:b++[e,e];s#c=(c!)<$>(c<$s!!0)!s
unlines$foldl(#)["..",".."]" + . + . + ."

5

สแต็กไม่ใช่การเข้ารหัส 35 ไบต์

ลองที่นี่!

ε'.'3$' + .'2*tostr*+$surroundfold

Ungolfed:

'' '.  ++  ..  ++  ..  ++  ..' $surround fold

ค่อนข้างง่าย surroundเป็นฟังก์ชันที่ล้อมรอบเอนทิตีด้วยเอนทิตี้การเติม ยกตัวอย่างเช่นเป็น(0) 1 surround จะเป็นฟังก์ชั่นที่ไม่ได้รับการประเมิน ใช้ค่าเริ่มต้นจากนั้นสิ่งที่จะพับแล้วฟังก์ชั่น ในกรณีนี้คือed ล้อมรอบสตริงว่างเริ่มต้น(equiv. ) พร้อมอักขระแต่ละตัวของสตริง((1 1 1) (1 0 1) (1 1 1))$surroundsurroundfoldsurroundfold''ε

'.'3$' + .'2*tostr*+

นี่เป็นครั้งแรกที่สร้างสตริงอักขระ$' + .'ที่เมื่อคูณด้วยตัวเลขแล้วจะซ้ำอักขระแต่ละตัว สิ่งนี้ทำให้เรามี: ++ ... สิ่งนี้จะถูกส่งไปยังสตริง จากนั้นเราทำซ้ำสตริงนี้สามครั้งและในที่สุดก็เติม a .ให้เราสตริงที่ต้องการ


แนวทางที่แตกต่างกันสำหรับ 39 ไบต์:

' .'3$' + .'2*tostr*+toarr$surround#\out

#\คือการแทรกและใช้อักขระเริ่มต้นของสตริงเป็นค่าเริ่มต้น มันยังใช้งานได้เฉพาะในอาร์เรย์


การแข่งขันนี้เป็นอย่างไรความท้าทายเพิ่มขึ้นเพียงไม่กี่ชั่วโมงที่ผ่านมา
Pavel

@Pavel ฉันทำงานนี้เสมอ
Conor O'Brien

4

JavaScript (ES6), 117 ไบต์

f=(n=12,c=`. + `[n%4],t=c.repeat(n*4+2))=>n?t+`
${t}
${f(n-1).replace(/^|$/gm,c+c)}
${t}
`+t:`..
..`
console.log(f())

วิธีแก้ปัญหาแบบไม่ตอบสนองช่วยฉันได้ 128 ไบต์:

console.log([...Array(100)].map((_,i,a)=>a.map((_,j)=>`. + `[j=j>50?j-50:51-j,(i>j?i:j)%8>>1],i=i>50?i-50:51-i).join``).join`\n`)

โดย\nแสดงถึงอักขระบรรทัดใหม่ตามตัวอักษร



3

เยลลี่ขนาด 18 ไบต์

12ŒRAx2»þ`ị“ + .”Y

ลองออนไลน์!

วิธีการเช่นเดียวกับคำตอบของ Zgarb J: 12ŒRAคือabs([-12 … 12]), x2ซ้ำทุกองค์ประกอบสองครั้ง»þ`สร้างตารางสูงสุดเป็นị“ + .”วนดัชนีเป็นสตริงและYร่วมด้วยบรรทัดใหม่


3

05AB1E , 39 35 33 ไบต์

•â3fM~•3B…012… .+‡.pvyD¤sg25s-׫«})«»

ลองออนไลน์!

•â3fM~•3B                               # Push 1100220011002200110022001
         …012… .+‡                      # Push ..  ++  ..  ++  ..  ++  .
                  .p                    # All prefixes of the above string.
                    vy            }     # For each prefix.
                      D¤sg25s-×         # Repeat the last letter until length is 25.
                               «Â«      # Concat, bifurcate, concat.
                                   )«» # Wrap to array, bifurcate, concat, print.

33 เวอร์ชันไบต์ที่เย็นกว่านี้เนื่องจาก Emigna แสดงความคิดเห็นช่วยฉัน 2 ไบต์:

". + "DøJ3×'.«.pvy¤25yg-׫«})«»

ลองออนไลน์!


1
". + "DøJ3×'.«.pvy¤25yg-׫«})«»สำหรับ 33 ไบต์
Emigna

… .+•â3fM~•3BSè.pvy¤25yg-׫«})«»สำหรับ 34 ไบต์บน "ตัวทำความเย็นเวอร์ชัน"
Emigna

Cool ไม่ใช่ตัวเลือกที่ถูกต้องของคำว่า haha "Less สลัม" อาจจะ?
Magic Octopus Urn

ฉันชอบที่คุณใช้คำสั่ง prefix ยอดเยี่ยม!
Emigna

1
@Emigna คำนำหน้าทำรูปสามเหลี่ยมถ้าคุณเปลี่ยนรูปสามเหลี่ยมและหมุนมันแล้วรวมกับคำนำหน้าเดิมที่คุณอาจจะสามารถโกนไบต์ นั่นคือแผนหลักที่ฉันไม่สามารถทำได้
Magic Octopus Urn





1

Haskell, 385 ไบต์

    b 0 = ["..", ".."]
b n = f:f:s:s:m (b (n - 1)) ++s:s:f:f:[]
    where f = replicate (8*n+2) $ d
          s = l++replicate ((8*n)-6) ' ' ++r
          m (x:xs) = map (\x -> l ++ x ++ r ) $ t
          l = d:d:' ':' ':[]
          r = reverse l
          t = b (n - 1)
          d :: Char
          d | n `mod` 2 == 0 = '.'
            | n `mod` 2 == 1 = '+'
main = mapM_ putStrLn $ b 6

รอบแรกของการตีกอล์ฟที่นี่ ... รอคอยที่จะเห็นว่าคนอื่นจะรับมือกับเรื่องนี้อย่างไร

เอาท์พุท:

..................................................
..................................................
..                                              ..
..                                              ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..                                              ..
..                                              ..
..................................................
..................................................

3
1) คุณมีพื้นที่ว่างที่ไม่จำเป็นจำนวนมาก 2) ใส่คำจำกัดความของฟังก์ชั่นทั้งหมดwhereไว้ในบรรทัดเดียวและใช้;สำหรับการแยก 3) f:f:[]เป็นf:[f] and d: ' ':'' [] d:" "`คือ 4) mรับพารามิเตอร์ แต่ไม่ได้ใช้ inline และm t5) กำหนดฟังก์ชั่นใหม่#ที่จะมาแทนที่replicate: c#x=c<$[1..8*n+x]และเรียกมันเหมือนและd#2 ' '#(-6)6) mod 2 == 0สามารถถูกแทนที่ด้วยevenหรือพลิกการทดสอบและการใช้งานoddและนักกอล์ฟ:otherwise 1<2...
nimi

2
... ทั้งหมดในทั้งหมด: b n=f:f:s:s:map(\x->l++x++r)(b$n-1)++s:s:f:[f]where f=d#2;s=l++' '#(-6)++r;l=d:d:" ";r=reverse l;d|odd n='+'|1<2='.';c#x=c<$[1..8*n+x].
nimi

1

อ็อกเทฟ 53 ไบต์

 '.  ++  .'(mod(bsxfun(@max,x=[24:-1:0 0:24],x'),8)+1)

สร้างรูปแบบการทำซ้ำ 1 ถึง 8 จากจุดศูนย์กลางออกไปด้านนอกและใช้เป็นดัชนีสำหรับการแยกองค์ประกอบของ . ++ .

ลองออนไลน์!


1

Bash, 191 ไบต์

echo H4sIAGUcgFgAA73VOw7AIAyD4b2n6F6J+x+v6k5CnPy1F6ZPAvNaS80li4/cUvrkKWdGapOak3O5DDmVS5G8XI5k5ZIkLpclUbk02ZfLk125f5B4JIljLY59cZwxx31x3H3HO5aFIo7/pZIpqWZClHSJmg55AeBhTxb2CQAA|base64 -d|gunzip

อาจมีขนาดเล็กลง แต่เล็กกว่าความพยายามอัลกอริทึมของฉัน


1

C #, 203 ไบต์

เสร็จสมบูรณ์โปรแกรมอ่านได้:

using System;
public class P
{
    public static void Main(string[] a)
    {
        Func<string> f = () =>
        {
            var z = 25;
            var t = "";
            Func<int, string> c = (q) => q % 4 == 0 ? ".." : (q % 4 != 2 ? "  " : "++");
            for (var y = 0; y < z; y++)
            {
                var l = "";
                for (var x = 0; x < z; x++)
                        l += ((y > z / 2) ? (x >= y | x < z - y) : (x < y | x >= z - y)) ? c(x):c(y);
                l += "\n";
                t += l + l;
            }
            return t;
        };

        Console.Write(f());
        Console.ReadKey();
    }
}

ฟังก์ชั่น golfed :

()=>{var z=25;var t="";Func<int,string>c=(q)=>q%4==0?"..":(q%4!=2?"  ":"++");for(var y=0;y<z;y++){var l="";for(var x=0;x<z;x++)l+=((y>z/2)?(x>=y|x<z-y):(x<y|x>=z-y))?c(x):c(y);l+="\n";t+=l+l;}return t;};

1

05AB1E , 33 ไบต์

14G" . +"NL¤¸13N-.׫€D¨Â«èD})¨Â«»

ลองออนไลน์!

คำอธิบาย

14G                               # for N in [1 ... 13]
   " . +"                         # push this string
         NL                       # push range [1 ... N]
           ¤¸13N-.×               # push a list of 13-N repetitions 
                                  # of the last element of the above range
                   «              # concatenate the two ranges
                    €D            # duplicate each element
                      ¨           # remove the last element
                       «         # concatenate a reversed copy to the list
                         è        # use the elements of the list to index into the string
                          D       # duplicate the resulting string
                           }      # end loop
                            )     # wrap the strings in a list
                             ¨    # remove the last element
                              «  # concatenate a reversed copy
                                » # join the list on newlines

คำอธิบายจะมา?
Pavel

@Pavel: แน่นอน! :)
Emigna

1

PowerShell , 171 151 ไบต์

($x=(1..12|%{' . +'[$_%4]}|%{($a+=$_+$_)})+"$a."|%{$c=if(++$i%2){('+','.')[($b=!$b)]}else{' '};$_.PadRight(25,$c)}|%{,($_+-join$_[25..0])*2});$x[23..0]

ลองออนไลน์!

คำตอบของโฮ - ฮัม ฉันแน่ใจว่ามีวิธีที่สั้นกว่า (ตามความยาวของคำตอบอื่น ๆ ฉันมั่นใจ) แต่นี่แสดงให้เห็นถึงเทคนิคบางอย่างที่เรียบร้อย

คำอธิบาย:

1..12|%{' . +'[$_%4]} สร้างอาร์เรย์ของสตริง (ของความยาวหนึ่งตัวอักษร) ในรูปแบบที่ถูกต้องที่เราต้องการ ลองออนไลน์!

จากนั้นเราจะเพิ่ม|%{($a+=$_+$_)})+"$a."ซึ่งใช้อาร์เรย์และขยายไปด้านข้างตามแถวก่อนหน้า ลองออนไลน์!

สตริงเหล่านั้นจะถูกส่งเข้าสู่การวนซ้ำ, |%{$c=if(++$i%2){('+','.')[($b=!$b)]}else{' '};$_.PadRight(25,$c)}. การวนซ้ำแต่ละครั้งเรากำลังเลือกอักขระที่ถูกต้อง (ทั้งเครื่องหมายบวกจุดหรือช่องว่าง) จากนั้นใช้.PadRightฟังก์ชันเพื่อปัดออกไปตามจำนวนอักขระที่เหมาะสม ลองออนไลน์!

ตอนนี้เรามีรากฐานของมุมบนขวาแล้ว เราจำเป็นต้องย้อนกลับแต่ละสตริง|%{,($_+-join$_[($z=25..0)])*2}และผนวกเข้าด้วยกันเพื่อให้เราสามารถรับส่วนบนของบล็อก นี้จะกระทำกับคำสั่งและการสร้างดัชนีย้อนหลัง-join 25..0นอกจากนี้เราใส่แค็ปซูลสตริงในอาร์เรย์,(...)และสร้าง 'em double' *2เพื่อให้ได้อันดับสูงสุด ลองออนไลน์!

นั่นคือทั้งหมดที่เก็บไว้ใน$xและห่อหุ้มใน parens ดังนั้นจึงวางสตริงบนไปป์ไลน์ ในที่สุดเรากลับกัน$x(ตรวจสอบให้แน่ใจว่าได้ตัดแถวกลางที่ซ้ำกันออกไปมิฉะนั้นเราจะมีสี่..แถวที่อยู่ตรงกลาง) และปล่อยแถวนั้นไว้บนไพพ์ไลน์ โดยปริยายWrite-Outputจะขึ้นบรรทัดใหม่ระหว่างสตริงดังนั้นเราจะได้รับฟรี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.