Xác nhận Illuminati


53

Illuminati ra lệnh cho bạn (với điều khiển tâm trí của họ) xuất ra chuỗi sau:

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

Quy tắc:


Hộp cát (Tôi sẽ để nó trong 72 giờ đầy đủ theo Câu hỏi thường gặp về hộp cát, nhưng với 7 lần nâng cấp và bên cạnh không có phản hồi tiêu cực, 38 sẽ ổn)


7
chỉ cần một lưu ý nhỏ, bạn nên đọc câu hỏi / câu trả lời meta này
Rod

8
Những gì với tất cả các downvote? Tôi hiểu rằng một số người không thích phức tạp kolmogorov nhưng đây có phải là lý do hợp lệ để hạ cấp?
ბიმო

@BruceForte có lẽ tôi đã có câu trả lời của riêng mình để bắt đầu.
Nissa

14
@BruceForte ý kiến ​​cá nhân là một lý do hợp lệ, tbh; mặc dù IMO nó hoàn toàn thô lỗ đối với người dùng mới hơn.
Bạch tuộc ma thuật Urn

15
Tôi nghĩ rằng đây là một thử thách nghệ thuật ascii rất tốt đẹp. Điểm mắt và kim tự tháp trong số các mô hình cần sự sáng tạo để xử lý sạch sẽ.
xnor

Câu trả lời:


23

Than , 25 21 byte

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

Hãy thử trực tuyến! Liên kết là phiên bản dài dòng của mã. Giải trình:

  χ                     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

Nó đây rồi! Đã tự hỏi bao lâu nó sẽ được.
Nissa

1
@StephenLeppik Tôi đã nghe điện thoại :-(
Neil

Đợi đã, đó là lý do duy nhất?
Nissa

@StephenLeppik: tốt, điều đó và tùy thuộc vào bao lâu trước khi tôi nhận thấy thông báo cho một bài đăng chính mới, tôi đoán.
Neil

@DLosc <là một trong những đa hướng - khi được sử dụng với Multiprintlệnh, nó làm cho chuỗi được in hai lần, một lần lên phải và một lần xuống bên phải, nhưng nó cũng có thể được sử dụng làm lối tắt cho ↗↘các bối cảnh khác.
Neil


10

V , 37 byte

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

Hãy thử trực tuyến!

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\_/

Giải trình:

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...
                          \_/   " '\_/'

10

SOGL V0.12 , 31 27 25 byte

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

Hãy thử nó ở đây!

 ^                         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

hoặc một phiên bản 24 byte bằng cách sử dụng ¼(khoảng trắng cho một antidia chéo) thay vì ±§:

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

Hãy thử nó ở đây!



8

JavaScript (ES6), 95 92 byte

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

Hoặc 91 byte với dòng mới hàng đầu - mà tôi nghĩ là không được phép:

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

Bản giới thiệu

Định dạng và nhận xét

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

Khoảng trắng hàng đầu được cho phép.
Nissa

8

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

-1 byte nhờ @xanoetux +3 thiếu mức thấp nhất ...

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

Hãy thử trực tuyến!


5

Haskell, 110 107 byte

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

Hãy thử trực tuyến!

9 không gian lúc đầu đau.

Làm thế nào nó hoạt động

"         ^\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 "_|"

Chỉnh sửa: -3 byte nhờ @Laikoni:



3

05AB1E , 47 42 40 byte

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

Hãy thử trực tuyến!

'/„_|ûûû«                                # 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.

Phiên bản ngu ngốc: „_|3×"_|/o\|".;„_|2×û"_|_\_/_".;


Phiên bản khác, ít ngu ngốc hơn (nhưng vẫn tệ hơn):

05AB1E , 42 byte

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

Hãy thử trực tuyến!



2

PHP, 123 + 3 byte

+3 byte cho việc đếm tab lạ. (nó vẫn di chuyển con trỏ 8 khoảng trắng trong bất kỳ bảng điều khiển nào!)

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";

Lưu ý: Ký tự đầu tiên sau echo"là ký tự tab!

Chạy với -nrhoặc thử trực tuyến .

phiên bản khác, cùng chiều dài:

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";

Thế còn Eclipse? Tôi đã không sử dụng nó trong một thời gian nhưng tôi nhớ rằng các tab của nó là 4 khoảng trắng.
Nissa

@StephenLeppik Eclipse là một trình soạn thảo, không phải là trình bao.
Tít

Nó vẫn có một giao diện điều khiển. Chưa kể rằng trình chỉnh sửa đánh dấu SE và phông chữ thẻ <pre> đều có các tab 4 không gian
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}

2

VBA Excel, 104 byte

VBE ẩn danh chức năng cửa sổ ngay lập tức xác nhận sự thật.

Phiên bản A:

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

Phiên bản B:

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

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

Hãy thử trực tuyến!

-3 byte sử dụng bytearraynhờ vào Rod
-1 byte nhờ bobrobbob


1

Javascript 90 byte (nếu tham số mặc định a = 9 là bắt buộc thì 92 byte)

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


Tất cả các đối số không liên quan phải được bao gồm trong tổng số byte để số này được tính là 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","_|")

Giải trình:

Hãy thử nó ở đây.

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)


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\\|"\"_\\_/")

Giải thích:

#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\\|"
    \"_\\_/"
)

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}","/_","^",@"|_\
","/_|_",@"|_|_|_|_|_\
")

Hãy thử trực tuyến!

Một cách không hiệu quả để xây dựng kim tự tháp, nhưng thú vị khi làm việc thông qua nó.

Sự nhìn nhận

-21 byte nhờ @someone



0

JavaScript, 117 byte

Tôi biết thực tế tôi không đánh bại bất kỳ ngôn ngữ chơi gôn nào, nhưng ít nhất tôi có thể đưa ra giải pháp của riêng mình.

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

Đây là bản 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);

Giải trình:

$=>                                       // 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)

4
Không nên trả lời ngay, hãy để mọi người tự đưa ra giải pháp.
Okx

0

Javascript, 238 byte

Lần thử đầu tiên của tôi tại 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>


1
Chào mừng đến với trang web!
caird coinheringaahing

Hardcoding chắc chắn ngắn hơn những gì bạn có ở đây. Bạn có thể rút ngắn điều này với một vài tính năng ES6: function`s` thay vì function('s'), a=>thay vì ()=>, fill(x)thay vì map(e=>x), [...s]thay vì s.split('')chuyển một câu lệnh vào phần forkhởi tạo, v.v.
Nissa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.