Konfirmasikan Illuminati

53

Illuminati memerintahkan Anda (dengan kontrol pikiran mereka) untuk menghasilkan string berikut:

         ^
        /_\
       /_|_\
      /_|_|_\
     /_|/o\|_\
    /_|_\_/_|_\
   /_|_|_|_|_|_\
  /_|_|_|_|_|_|_\
 /_|_|_|_|_|_|_|_\
/_|_|_|_|_|_|_|_|_\

Aturan:


Sandbox (saya akan membiarkannya selama 72 jam penuh yang direkomendasikan oleh FAQ sandbox, tetapi dengan 7 upvotes dan hampir tidak ada umpan balik negatif, 38 seharusnya baik-baik saja)

Nissa
sumber
7
hanya sebuah catatan kecil, Anda harus membaca meta pertanyaan / jawaban ini
Rod
8
Ada apa dengan semua downvotes? Saya mendapatkan bahwa beberapa orang tidak menyukai kolmogorov-complex tetapi apakah ini alasan yang sah untuk menurunkannya?
ბიმო
@BruceForte mungkin saya punya jawaban sendiri untuk memulai.
Nissa
14
Pendapat pribadi @BruceForte adalah alasan yang valid, tbh; meskipun IMO itu benar-benar kasar terhadap pengguna yang lebih baru.
Magic Octopus Guci
15
Saya pikir ini adalah tantangan seni ascii yang sangat bagus. Titik mata dan piramida di antara pola membutuhkan kreativitas untuk ditangani dengan bersih.
xnor

Jawaban:

23

Arang , 25 21 byte

G¬χ|_¶_|↗⁹↙^M³↓/o¶\‖B

Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:

  χ                     With sides of length 10
 ¬                      In the directions down and left
G                       Draw a closed polygon (implicit side)
   |_¶_|                Filled with |_ and _| on alternate lines
        ↗⁹               Draw a line of 9 /s
          ↙^            Draw a ^ and move the cursor down and left
            M³↓         Move down 3 characters
               /o¶\     Print the left half of the eye
                   ‖B  Reflect the canvas keeping the right edge
Neil
sumber
Itu ada! Ingin tahu berapa lama itu akan terjadi.
Nissa
1
@StephenLeppik Saya sedang menelepon :-(
Neil
Tunggu, apakah itu satu-satunya alasan?
Nissa
@StephenLeppik: baik, itu dan tergantung berapa lama sebelum saya melihat pemberitahuan untuk posting utama baru, saya kira.
Neil
@Dosc <adalah salah satu multidirectional - ketika digunakan dengan Multiprintperintah itu menyebabkan string yang akan dicetak dua kali, sekali ke kanan dan sekali ke kanan, tetapi juga dapat digunakan sebagai jalan pintas untuk ↗↘dalam konteks lain juga.
Neil
49

Vim, 40 byte

-2 byte terima kasih kepada DJMcMayhem

9i_|␛r\I/␛qqYPxR /␛q8@qr^4jhR/o\␛jr/2hr\

Anda dapat melihatnya beraksi di GIF ini menggunakan skrip python Lynn

Beraksi

H.Piz
sumber
10

V , 37 byte

9i|_á\|r/òÄó_|
>òC ^4jhR/o\j2hR\_/

Cobalah online!

Hexdump:

00000000: 3969 7c5f 1be1 5c7c 722f f2c4 f35f 7c0a  9i|_..\|r/..._|.
00000010: 3ef2 4320 5e1b 346a 6852 2f6f 5c1b 6a32  >.C ^.4jhR/o\.j2
00000020: 6852 5c5f 2f                             hR\_/

Penjelasan:

9i                              " Insert 9 copies of...
  |_                            "   '|_'
    <esc>                       " Return to normal mode
         á\                     " Append a backslash
           |                    " Move to the first character
            r/                  " Replace it with a forward slash
              ò                 " Recursively...
               Ä                "   Duplicate this line (upwards)
                ó               "   Remove one instance of..
                 _|             "     '_|'
>                               "   Indent this line with one space
 ò                              " End the loop
  C ^                           " Change this line (previously '/_\') to ' ^'
     <esc>                      " Return to normal mode
          4j                    " Move down 4 lines
            h                   " Move one character to the left
             R                  " Write this text over existing characters...
              /o\               "   '/o\'
                 <esc>          " Return to normal mode
                      j         " Move down a line
                       2h       " Move two characters to the left
                         R      " Write this text over existing characters...
                          \_/   " '\_/'
DJMcMayhem
sumber
10

SOGL V0.12 , 31 27 25 byte

 ^9∫Ƨ_|m└Κ}¹±§"/o¶\_”95žΓ

Coba Di Sini!

 ^                         push "^"
  9∫      }                do 9 times, pushing counter
    Ƨ_|                      push "_|"
       m                     mold that to the counter
        └Κ                   prepend "/"
           ¹               collect the lines in an array - ["^", "/_", "/_|", ..., "/_|_|_|_|_"]
            ±              reverse each                    ["^", "_/", "|_/", ..., "_|_|_|_|_/"]
             §             reverse as ascii-art:
                            ["         ^",
                             "        /_",
                             "       /_|",
                             ...,
                             "/_|_|_|_|_"]
              "/o¶\_”      push "/o
                                 \_"
                     95ž   insert that at [9; 5]
                        Γ  palindromize horizontally

atau versi 24 byte menggunakan ¼(spasi ke antidiagonal) alih-alih ±§:

 ^9∫Ƨ_|m└Κ}¹¼"/o¶\_”95žΓ

Coba Di Sini!

dzaima
sumber
8

Python 2 , 103 101 98 95 byte

-2 bytes berkat Jonathan Frech
-3 bytes berkat ovs

for i in range(10):print(9-i)*' '+['^','/_%s\\'%['|_'*~-i,'|/o\|_','|_\_/_|_'][i%6/4*i%3]][i>0]

Cobalah online!

tongkat
sumber
8

JavaScript (ES6), 95 92 byte

f=(n=9,s='')=>n--?f(n,s+' ')+s+`/${n-4?n-3?'_|'.repeat(n):'_|/o\\|':'_|_\\_/_|'}_\\
`:s+`^
`

Atau 91 byte dengan baris baru terkemuka - yang saya pikir tidak diizinkan:

f=(n=9,s=`
`)=>n--?f(n,s+' ')+s+`/${n-4?n-3?'_|'.repeat(n):'_|/o\\|':'_|_\\_/_|'}_\\`:s+`^`

Demo

Diformat dan dikomentari

f = (n = 9, s = '') =>    // n = line counter, s = leading spaces
  n-- ?                   // if we haven't reached the top:
    f(n, s + ' ') +       //   do a recursive call with one more leading space
    s +                   //   append the leading spaces
    `/${                  //   append the left border
      n - 4 ?             //   if this is not the 4th row:
        n - 3 ?           //     if this is not the 3rd row:
          '_|'.repeat(n)  //       append the brick pattern
        :                 //     else (3rd row):
          '_|/o\\|'       //       append the top of the eye
      :                   //   else (4th row):
        '_|_\\_/_|'       //     append the bottom of the eye
    }_\\\n`               //   append the right border + line-feed
  :                       // else:
    s + `^\n`             //   append the top of the pyramid and stop the recursion
Arnauld
sumber
Ruang putih terkemuka diizinkan.
Nissa
8

C (gcc) , 124 122 120 119 117 115 118 byte

-1 byte terima kasih kepada @xanoetux +3 yang melewatkan level terendah ...

f(i){for(printf("%*c",i=10,94);--i;printf("\n%*c%s_\\",i,47,i^6?i^5?"_|_|_|_|_|_|_|_|_|"+i*2:"_|_\\_/_|":"_|/o\\|"));}

Cobalah online!

Cleblanc
sumber
5

Haskell, 110 107 byte

"         ^\n"++do z<-[1..9];([z..8]>>" ")++'/':g z++"_\\\n"
g 4="_|/o\\|"
g 5="_|_\\_/_|"
g x=[2..x]>>"_|"

Cobalah online!

Kesembilan ruang itu pada awalnya terasa menyakitkan.

Bagaimana itu bekerja

"         ^\n"++         -- first line, followed by
do                       -- we use the "do" syntatic sugar for monads,
                         -- here the list monad 
   z<-[1..9]             -- for all 'z' from [1..9] perform the following
                         -- and collect the results in a single list
     ([z..8]>>" ")++'/'  --   make the spaces for the current line and
                         --   the left wall '/'
     g z                 --   call g to make the inner part
     "_\\\n"             --   append '_', '\' and a NL

g 4="_|/o\\|"            -- line 4 and 5 are implemented directly
g 5="_|_\\_/_|"
g x=[2..x]>>"_|"         -- all other lines are some copies of "_|"

Edit: -3 byte terima kasih kepada @Laikoni:

nimi
sumber
4

PowerShell , 109 105 byte

filter f{' '*$_+'/'+'_|'*(8-$_)+'_\'}
' '*9+'^'
8|f
7|f
6|f
'     /_|/o\|_\
    /_|_\_/_|_\'
3..0|%{$_|f}

Cobalah online!

Disimpan 4 byte berkat Veskah.

AdmBorkBork
sumber
3

05AB1E , 47 42 40 byte

'/„_|ûûû«η'^0ǝ.∞.C":;<IJK"Çv"/o\\_/"Nèyǝ

Cobalah online!

'/„_|ûûû«                                # Push bottom left tier of pyramid.
         η                               # All prefixes of...
          '^0ǝ                           # Replace the tip.
              .∞.C                       # Mirror, Center.
                  ":;<IJK"Ç              # Push [58,59,60,73,74,75].
                           v"/o\\_/"Nèyǝ # Replace those indexes with the eye.

Versi bodoh: „_|3×"_|/o\|".;„_|2×û"_|_\_/_".;


Lainnya, versi yang tidak terlalu bodoh (tapi masih lebih buruk):

05AB1E , 42 byte

•~µÎт•η4¾ǝ•Σ}•4ǝ•3x1•5ǝεS"|_/\^o"sèJ}€.∞.C

Cobalah online!

Guci Gurita Ajaib
sumber
2

Bubblegum , 48 byte

00000000: 5380 8138 2e18 4b3f 3e86 0bce ac01 72e0  S..8..K?>.....r.
00000010: 6c30 0fc6 d1cf 8f01 71e1 cae2 218a e12a  l0......q...!..*
00000020: 6ba0 ea61 7c84 085c 0021 0417 4188 0100  k..a|..\.!..A...

Cobalah online!

ovs
sumber
2

PHP, 123 + 3 byte

+3 byte untuk penghitungan tab yang aneh. (masih memindahkan kursor 8 spasi di konsol mana pun!)

for($i=10;--$i;)$r.=str_pad(str_pad("
",$i)."/",20-$i,"_|")."\\";$r[48]=$r[65]="/";$r[50]=$r[63]="\\";$r[49]=o;echo"   ^$r";

Catatan: Karakter pertama setelah echo" adalah karakter tab!

Jalankan dengan -nratau coba online .

versi lain, panjang yang sama:

for(;$i++<9;)$r.=str_pad(str_pad("
",10-$i)."/",10+$i,"_|")."\\";$r[48]=$r[65]="/";$r[50]=$r[63]="\\";$r[49]=o;echo"    ^$r";
Titus
sumber
Bagaimana dengan Eclipse? Saya belum menggunakannya dalam beberapa saat tetapi saya ingat bahwa tab-nya adalah 4 spasi.
Nissa
@StephenLeppik Eclipse adalah editor, bukan shell.
Titus
Masih memiliki konsol. Belum lagi bahwa editor penurunan harga SE dan font tag <pre> keduanya memiliki tab 4-ruang
Nissa
2

Ruby, 92 byte

10.times{|i|s=' '*(10-i)+(i<1??^:"/#{"_|"*~-i}_\\");i/2==2&&s[9,3]="/o\\_/"[i%2*2,3];puts s}
Level River St
sumber
2

Excel VBA, 104 Bytes

Fungsi jendela langsung VBE anonim yang mengkonfirmasi kebenaran.

Versi A:

?Spc(9)"^":For i=0To 8:[A1]=i:?Spc(8-i)"/_"[If(A1=3,"|/o\|_",If(A1=4,"|_\_/_|_",Rept("|_",A1)))]"\":Next

Versi B:

?Spc(9)"^":For i=0To 8:[A1]=i:?Spc(8-i)"/_"IIf(i=3,"|/o\|_",IIf(i=4,"|_\_/_|_",[Rept("|_",A1)]))"\":Next
Taylor Scott
sumber
2

Python 2 , 154 byte

l=bytearray
a,b=' _';g=[l(a*9+"^"+a*9)]+[l(a*(8-k)+"/%s\\"%"|".join(b*k+b))for k in range(9)]
g[4][8:11]=l("/o\\")
g[5][8:11]=l("\\_/")
for r in g:print r

Cobalah online!

-3 byte menggunakan bytearrayterima kasih kepada Rod
-1 byte terima kasih kepada bobrobbob

HyperNeutrino
sumber
1

Javascript 90 byte (jika parameter default a = 9 diperlukan maka 92 byte)

A=(a,x=``)=>a?A(a-1,x+" ")+x+"/".padEnd(a*2,a^5?a^4?"_|":"_|/o\\|":"_|_\\_/")+`\\
`:x+`^
`
console.log(A(9))

DanielIndie
sumber
Semua argumen asing harus dimasukkan dalam total byte sehingga ini dianggap sebagai 91 byte
Nissa
1

Java 8, 156 byte

v->"".format("%1$9s^\n%1$8s/a%1$7s/ba%1$6s/bba     /b/o\\|a    /b_\\_/ba   /bbbbba  /bbbbbba /bbbbbbba/bbbbbbbba","").replace("a","_\\\n").replace("b","_|")

Penjelasan:

Coba di sini.

v->                        // Method with empty unused parameter and String return-type
  "".format(               //  Format the following String (`%1$Ns` = N spaces)
      "%1$9s^\n            //            ^
       %1$8s/a             //           /_\
       %1$7s/ba            //          /_|_\
       %1$6s/bba           //         /_|_|_\
            /b/o\\|a       //        /_|/o\|_\
           /b_\\_/ba       //       /_|_\_/_|_\
          /bbbbba          //      /_|_|_|_|_|_\
         /bbbbbba          //     /_|_|_|_|_|_|_\
        /bbbbbbba          //    /_|_|_|_|_|_|_|_\
       /bbbbbbbba","")     //   /_|_|_|_|_|_|_|_|_\
    .replace("a","_\\\n")  //  Replace all "a" with "_\" + new-line
    .replace("b","_|")     //  Replace all "b" with "_|"
                           // End of method (implicit / single-line return-statement)
Kevin Cruijssen
sumber
Sebagai referensi, hard-coded adalah 179 byte .
Kevin Cruijssen
1

Julia, 152 141 139 130 127 120 113 112 byte

q="_|";a+b=" "^a*b;a\b=replace(a,q^3,q*b,1);~n=n<0?9+"^\n":~(n-1)*(8-n+"/$(q^n)_\\\n");print(~8\"/o\\|"\"_\\_/")

Dijelaskan:

#Define constant q to abbreviate this string
q="_|";

#Redefine the addition operator to compactly provide whitespace 
#where needed
a+b=" "^a*b;

#Redefine the inverse division operator so we can substitute 
#"_|_|_|" with "_|"*b very compactly
a\b=replace(a,q^3,q*b,1);

#Redefine the bitwise not operator to generate pyramid layers
#Defines them recursively, calling itself to generate previous 
#layers before appending its own. 
#The base case generates the tip. 
~n=n<0?9+"^\n":~(n-1)*(8-n+"/$(q^n)_\\\n");

#Print to output
print(

    #Pyramid with 8 body layers
    ~8

    #Then patch in the eye
    \"/o\\|"
    \"_\\_/"
)
eaglgenes101
sumber
1

C # (.NET Core) , 174 153 byte

()=>string.Format(@"{1,10}
{0,10}\
{0,9}{2}{3,10}{2}{0,7}|/o\{2}{3,8}\_/_{2}{0,5}{4}  {3}{4} {3}|_{4}{3}|_|_{4}","/_","^",@"|_\
","/_|_",@"|_|_|_|_|_\
")

Cobalah online!

Cara yang tidak efisien untuk membangun piramida, tetapi menarik untuk melakukannya.

Ucapan Terima Kasih

-21 bytes terima kasih kepada @someone

Ayb4btu
sumber
1

C # (.NET Core) , 144 byte

Yang ini mungkin tampak sangat membosankan, karena cukup membosankan.

()=>@"         ^
        /_\
       /z\
      /z|_\
     /_|/o\|_\
    /z\_/z\
   /z|z|z\
  /z|z|z|_\
 /z|z|z|z\
/z|z|z|z|_\".Replace("z","_|_")

Cobalah online!

some one
sumber
0

JavaScript, 117 byte

Saya tahu pasti saya tidak bisa mengalahkan bahasa golf apa pun, tapi setidaknya saya bisa memberikan solusi sendiri.

$=>[...Array(10)].map((e,i)=>' '.repeat(9-i)+(i--?`/${['_|/o\\|','_|_\\_/_|'][i-3]||'_|'.repeat(i)}_\\`:'^')).join`
`

Ini demo:

var f = $=>[...Array(10)].map((e,i)=>' '.repeat(9-i)+(i--?`/${['_|/o\\|','_|_\\_/_|'][i-3]||'_|'.repeat(i)}_\\`:'^')).join`
`;
console.log(f());
console.log(f.toString().length);

Penjelasan:

$=>                                       // outer function start
[...Array(10)]                            // create an array to map
.map(…)                                   // map it
    (e,i)=>                               // mapping function start
    ' '.repeat(9-i)                       // spaces for padding
    +(i--?…:'^')                          // use the carat if at the top of the pyramid
        `/${…}_\\`                        // otherwise, make the sides + steps
            ['_|/o\\|','_|_\\_/_|'][i-3]  // use the patterns for the eye, if in the correct rows
            ||'_|'.repeat(i)              // otherwise, make the "bricks" structure
.join`
`                                         // join all the rows into a string (yes this part has a newline in it)
Nissa
sumber
4
Tidak disarankan untuk langsung menjawab, biarkan orang membuat solusi sendiri.
Okx
0

Javascript, 238 byte

Usaha pertama saya di codegolfing: D

var f=()=>{let b=x=>' '.repeat(x),g='\\',h='/',i=1,st=[(b(9)+'^').split('')];for(;i<10;i++)st.push((b(9-i)+h+st.map(i=>'_').join('|')+g).split(''));st[4][8]=st[5][10]=h;st[4][9]='o';st[5][8]=st[4][10]=g;return st.map(s=>s.join('')).join('\n');}

document.getElementById("display").innerHTML = f();
console.log(f.toString().length);
<pre id="display">
</pre>

Apolo
sumber
1
Selamat datang di situs ini!
caird coinheringaahing
Hardcoding jelas lebih pendek dari yang Anda miliki di sini. Anda dapat mempersingkat ini dengan fitur ES6 beberapa: function`s` bukan function('s'), a=>bukan ()=>, fill(x)bukan map(e=>x), [...s]bukan s.split(''), bergerak pernyataan ke forinisialisasi, dll
Nissa