Keluarkan kotak yang cantik

17

Tantangan Anda adalah dengan tepat menampilkan kotak berikut:

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

Kotak itu tinggi dan lebar 50, spasi dua lebar.

Anda harus menulis fungsi atau program yang menghasilkan atau mengembalikan string dan tidak mengambil input.

Bytes paling sedikit menang!

Pavel
sumber
4
Adakah alasan mengapa +kotak terdalam hanya memiliki 1 lapisan di bagian atas dan bawah? Itu akan membuat jawaban berbasis algoritma agak lebih lama, karena itu berarti dua lapisan terdalam tidak persis persegi.
ETHproduk
@Pavel OK. Close-vote retracted :)
Digital Trauma
4
Mengapa pembatasan pada program yang lengkap?
Rɪᴋᴇʀ
1
@Pavel kenapa? Itu benar-benar tidak menambah tantangan.
Rɪᴋᴇʀ
1
@Pavel ..... tidak. Maksud saya, ya ada yang memilikinya, tapi itu bukan persyaratan / standar untuk tantangan KG.
Rɪᴋᴇʀ

Jawaban:

14

J , 25 byte

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

Cobalah online!

Penjelasan

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.
Zgarb
sumber
Saya pikir Anda dapat meninggalkan gema.
Conor O'Brien
@ ConorO'Brien Oh, aturan keluaran berubah. ... Hmm, tetapi jika saya menghapus echo, itu bahkan bukan fungsi, hanya sebuah nilai. Meskipun J tidak memiliki fungsi argumen nol.
Zgarb
Saya pikir itu diperbolehkan sesuai sifat pengganti J. Dalam kasus apa pun, fungsi konstan dapat dianggap sebagai argumen nol.
Conor O'Brien
11

C, 115 byte

#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);}

Menentukan fungsi f(panggilan sebagai f();) yang mencetak string ke STDOUT.

Lynn
sumber
9

C, 535 478 477 Bytes

Nah, itu banyak golf: - /

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);}

Inilah hasilnya;

..................................................
..................................................
..                                              ..
..                                              ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..                                              ..
..                                              ..
..................................................
..................................................
Cleblanc
sumber
2
Sial Saya mengagumi dedikasi Anda.
Rɪᴋᴇʀ
Saya telah mengubah batasan, fungsi yang mengembalikan string diizinkan sekarang.
Pavel
Saya baru sadar saya bisa bermain golf beberapa byte keluar menulis ulang loop for(;i++<51;dan sekarang saya pergi oleh satu di mana-mana: - /
cleblanc
@cleblanc++i
dkudriavtsev
MFW Saya mulai mencoba memahami ini: i.imgur.com/TLV9gJ4.png +1
Guci Gurita Ajaib
6

Haskell, 72 byte

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

@ Solusi Zgarb di Haskell. Saya juga mencoba untuk membangun kotak dengan menambahkan lapisan di sekitar inti ["..",".."], tetapi itu adalah 9 byte lebih lama (81 byte).

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

Stacked, noncompeting, 35 byte

Coba di sini!

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

Tidak Disatukan:

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

Cukup sederhana. surroundadalah fungsi yang, mengelilingi entitas dengan entitas fill. Sebagai contoh, (0) 1 surroundadalah ((1 1 1) (1 0 1) (1 1 1)). $surroundadalah surroundsebagai fungsi, tidak dievaluasi. foldmengambil nilai awal, lalu sesuatu untuk dilipat, lalu fungsi. Dalam kasus ini, surroundadalah folded, mengelilingi string yang awalnya kosong ''(equiv. ε) Dengan masing-masing karakter string.

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

Ini pertama kali membuat string karakter $' + .', yang, ketika dikalikan dengan angka, mengulangi setiap karakter. Ini membuat kita dengan: ++ ... Ini kemudian dicor ke string. Kemudian, kami mengulangi string ini tiga kali, dan akhirnya menambahkan ., memberi kami string yang diinginkan.


Pendekatan yang berbeda untuk 39 byte:

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

#\adalah memasukkan dan mengambil karakter awal dari string sebagai nilai awal. Ini juga hanya berfungsi pada Array.

Conor O'Brien
sumber
Bagaimana ini tidak bersaing, tantangannya naik hanya beberapa jam yang lalu.
Pavel
@Pavel Saya selalu mengerjakan ini
Conor O'Brien
4

JavaScript (ES6), 117 byte

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())

Solusi non rekursif membawa saya 128 byte:

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`)

Dimana \nmewakili karakter baris baru literal.

Neil
sumber
4

C, 97 byte

i,x,y;main(){for(;i<2550;putchar(++i%51?". + "[(x*x<y*y?y:x)&3]:10))x=i%51/2-12,y=i/102-12;}
orlp
sumber
3

Jelly , 18 byte

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

Cobalah online!

Pendekatan yang sama dengan jawaban J Zgarb: 12ŒRAadalah abs([-12 … 12]), x2mengulangi setiap elemen dua kali, »þ`membuat tabel maksimum, secara ị“ + .”siklik mengindeks ke dalam string, dan Ybergabung dengan baris baru.

Lynn
sumber
3

05AB1E , 39 35 33 byte

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

Cobalah online!

•â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.

Versi 33 Byte yang lebih keren sekarang karena Emigna berkomentar menyelamatkan saya 2 byte:

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

Cobalah online!

Guci Gurita Ajaib
sumber
1
". + "DøJ3×'.«.pvy¤25yg-׫«})«»selama 33 byte.
Emigna
… .+•â3fM~•3BSè.pvy¤25yg-׫«})«»selama 34 byte pada "versi dingin".
Emigna
Keren bukan pilihan kata yang tepat haha. "Kurang Ghetto", mungkin?
Magic Gurita Guci
Saya suka Anda menggunakan perintah awalan. Cemerlang!
Emigna
1
@Emigna awalan membuat segitiga, jika Anda memindahkan segitiga dan memutarnya, kemudian menggabungkannya dengan awalan asli Anda mungkin dapat memotong byte. Itu adalah rencana utama yang tidak bisa saya dapatkan.
Magic Gurita Guci
2

MATL , 21 byte

'. + '[]25:"TTYaQ]2/)

Cobalah online!

'. + '    % Push this string
[]        % Push empty array. This will be used as "seed"
25:"      % Do the following 25 times
  TTYa    %   Extend the array with a frame of zeros
  Q       %   Add 1 to each entry
]         % End
2/        % Divide by 2
)         % Index modularly into the string. Non-integer indices are rounded
          % Implicitly display
Luis Mendo
sumber
2

Ruby, 77 byte

-623.upto(676){|i|print i%26>0?". + "[[(i%26-13).abs,(i/52).abs].max%4]*2:$/}
Level River St
sumber
Saya pikir Anda dapat mengganti ekspresi indeks dengan [i%26-13,i/52].map(&:abs).max%4(menghemat satu byte)
Conor O'Brien
2

Arang , 25 byte

F…¹¦²⁶⁺×ι§. + ÷鲶‖O↗‖C↑←

Cobalah online! Tautan berisi mode verbose untuk penjelasan

Khusus ASCII
sumber
2

Python 3 , 89 byte

r=range(-24,26)
for i in r:print("".join([". + "[max(abs(i//2),abs(j//2))%4]for j in r]))

Cobalah online!

Biarawati Bocor
sumber
1

Haskell, 385 Bytes

    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

Putaran pertama kode golf di sini ... menanti untuk melihat bagaimana orang lain menangani yang ini.

Keluaran:

..................................................
..................................................
..                                              ..
..                                              ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++      ++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..  ++++++++++  ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..              ..  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++  ..................  ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++                      ++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..  ++++++++++++++++++++++++++  ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..                              ..  ++  ..
..  ++  ..................................  ++  ..
..  ++  ..................................  ++  ..
..  ++                                      ++  ..
..  ++                                      ++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..  ++++++++++++++++++++++++++++++++++++++++++  ..
..                                              ..
..                                              ..
..................................................
..................................................
brander
sumber
3
1) Anda memiliki banyak ruang kosong yang tidak perlu. 2) menempatkan semua definisi fungsi whereke dalam satu baris dan digunakan ;untuk pemisahan. 3) f:f:[]is f:[f] and d: '': '': [] `is d:" ". 4) mmengambil parameter tetapi tidak menggunakannya. Sebaris mdan t. 5) mendefinisikan fungsi baru #untuk menggantikan replicate: c#x=c<$[1..8*n+x]dan menyebutnya suka d#2dan ' '#(-6). 6) mod 2 == 0bisa diganti dengan even, atau flip tes dan penggunaan odddan pegolf otherwise: 1<2. ...
nimi
2
... semua dalam semua: 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

Oktaf, 53 byte

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

Hasilkan pola berulang 1 sampai 8 dari pusat ke luar dan gunakan sebagai indeks untuk ekstraksi elemen . ++ .

Cobalah secara Online!

rahnema1
sumber
1

Bash, 191 byte

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

Mungkin bisa lebih kecil, tetapi lebih kecil dari upaya algoritmik saya.

tenggorokan
sumber
1

C #, 203 byte

Program yang lengkap dan mudah dibaca:

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();
    }
}

Fungsi golf :

()=>{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;};
CSharpie
sumber
1

05AB1E , 33 byte

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

Cobalah online!

Penjelasan

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
Emigna
sumber
Penjelasan yang akan datang?
Pavel
@Pavel: tentu saja! :)
Emigna
1

PowerShell , 171 151 byte

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

Cobalah online!

Ho-hum menjawab. Saya yakin ada cara yang lebih pendek (mengingat jawaban yang panjang, saya yakin), tetapi ini menunjukkan beberapa trik yang rapi.

Penjelasan:

1..12|%{' . +'[$_%4]} menghasilkan array string (panjang satu karakter), dalam pola yang benar yang kita butuhkan. Cobalah online!

Kami kemudian menambahkan |%{($a+=$_+$_)})+"$a."yang mengambil array dan memperluasnya berdasarkan baris sebelumnya. Cobalah online!

String itu kemudian dikirim ke dalam satu lingkaran |%{$c=if(++$i%2){('+','.')[($b=!$b)]}else{' '};$_.PadRight(25,$c)},. Setiap iterasi, kami memilih karakter yang benar (baik plus, titik, atau spasi), dan kemudian menggunakan .PadRightfungsi untuk menambah jumlah karakter yang sesuai. Cobalah online!

Sekarang, kita memiliki fondasi sudut kanan atas. Kita perlu membalik setiap string |%{,($_+-join$_[($z=25..0)])*2}dan menambahkannya bersama sehingga kita bisa mendapatkan bagian atas blok. Ini dilakukan dengan -joinperintah dan pengindeksan mundur 25..0. Selain itu, kami merangkum string dalam array ,(...)dan membuat mereka menjadi dua *2sehingga kami mendapatkan seluruh bagian atas.Cobalah online!

Itu semua disimpan ke dalam $xdan dienkapsulasi dalam parens sehingga menempatkan string pada pipa. Akhirnya, kami mundur $x(pastikan untuk menghapus baris tengah duplikat-duplikat, kalau tidak kita akan memiliki empat ..di tengah) dan meninggalkan yang ada di dalam pipa. Implisit Write-Outputmenempelkan baris baru di antara string, jadi kami mendapatkannya secara gratis.

AdmBorkBork
sumber