Confirmer les Illuminati

53

Les Illuminati vous ordonnent (avec leur contrôle mental) de sortir la chaîne suivante:

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

Règles:


Bac à sable (je le laisserais pour la période complète de 72 heures recommandée par la FAQ du bac à sable, mais avec 7 votes positifs et presque aucun commentaire négatif, 38 devrait suffire)

Nissa
la source
7
juste une petite note, vous devriez lire cette méta question / réponse
Rod
8
Qu'est-ce qui se passe avec tous les votes négatifs? Je comprends que certaines personnes n'aiment pas le complexe de Kolmogorov, mais est-ce une raison valable pour procéder à un vote négatif ?
ბიმო
@BruceForte probablement que j'avais ma propre réponse pour commencer.
Nissa
14
@BruceForte l'opinion personnelle est une raison valable, tbh; Bien que l'OMI soit absolument impoli avec un nouvel utilisateur.
Urne magique Octopus
15
Je pense que c’est un très beau défi artistique ascii. L'œil et la pyramide au centre du motif exigent de la créativité pour les manipuler proprement.
xnor

Réponses:

23

Charbon de bois , 25 à 21 octets

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

Essayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:

  χ                     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
la source
Le voilà! Je me demandais combien de temps ce serait.
Nissa
1
@StephenLeppik J'étais au téléphone :-(
Neil
Attendez, est-ce la seule raison?
Nissa
@StephenLeppik: Eh bien, ça et selon combien de temps j'ai remarqué la notification d'un nouveau poste principal, je suppose.
Neil
@DLosc <est l’un des multidirectionnels. Utilisé avec la Multiprintcommande, la chaîne est imprimée deux fois, une fois à droite et une fois à droite, mais elle peut également être utilisée comme raccourci ↗↘dans d’autres contextes.
Neil
49

Vim, 40 octets

-2 octets grâce à DJMcMayhem

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

Vous pouvez le voir en action dans ce GIF créé à l'aide du script python de Lynn

En action

H.PWiz
la source
10

V , 37 octets

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

Essayez-le en ligne!

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

Explication:

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
la source
10

SOGL V0.12 , 31 27 25 octets

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

Essayez-le ici!

 ^                         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

ou une version de 24 octets utilisant ¼(espace par un antidiagonal) au lieu de ±§:

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

Essayez-le ici!

dzaima
la source
8

Python 2 , 103 101 98 95 octets

-2 octets grâce à Jonathan Frech
-3 octets grâce aux ovs

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

Essayez-le en ligne!

Barre
la source
8

JavaScript (ES6), 95 92 octets

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

Ou 91 octets avec une nouvelle ligne principale - ce qui, à mon avis, n'est pas autorisé:

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

Démo

Formaté et commenté

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
la source
Les espaces blancs sont autorisés.
Nissa
8

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

-1 octet grâce à @xanoetux +3 manquant le niveau le plus bas ...

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

Essayez-le en ligne!

cleblanc
la source
5

Haskell, 110 à 107 octets

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

Essayez-le en ligne!

Ces 9 espaces au début ont fait mal.

Comment ça fonctionne

"         ^\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 octets grâce à @Laikoni:

nimi
la source
4

PowerShell , 109 à 105 octets

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

Essayez-le en ligne!

4 octets sauvés grâce à Veskah.

AdmBorkBork
la source
3

05AB1E , 47 42 40 octets

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

Essayez-le en ligne!

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

Version stupide: „_|3×"_|/o\|".;„_|2×û"_|_\_/_".;


Autre version moins stupide (mais toujours pire):

05AB1E , 42 octets

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

Essayez-le en ligne!

Urne Magique De Pieuvre
la source
2

Bubblegum , 48 octets

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

Essayez-le en ligne!

ovs
la source
2

PHP, 123 + 3 octets

+3 octets pour le compte d'étiquette étrange. (il déplace toujours le curseur de 8 espaces dans n'importe quelle console!)

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

Remarque: le premier caractère après echo"est un caractère de tabulation!

Courez avec -nrou essayez-le en ligne .

autre version, même longueur:

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
la source
Qu'en est-il d'Eclipse? Je ne l'ai pas utilisé depuis un moment, mais je me souviens que ses onglets avaient 4 espaces.
Nissa
@StephenLeppik Eclipse est un éditeur, pas un shell.
Titus
Il a toujours une console. Sans oublier que l'éditeur de démarcation SE et la police de balise <pre> ont tous deux des onglets à 4 espaces
Nissa
2

Ruby, 92 octets

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
la source
2

Excel VBA, 104 octets

Fonction de fenêtre immédiate VBE anonyme qui confirme la vérité.

Version A:

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

Version B:

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

Python 2 , 154 octets

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

Essayez-le en ligne!

-3 octets utilisant bytearraygrâce à Rod
-1 octet grâce à bobrobbob

HyperNeutrino
la source
1

Javascript 90 octets (si le paramètre par défaut a = 9 est requis, puis 92 octets)

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

DanielIndie
la source
Tous les arguments superflus doivent être inclus dans le total des octets, ce qui équivaut à 91 octets.
Nissa
1

Java 8, 156 octets

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","_|")

Explication:

Essayez ici.

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
la source
Pour référence, 179 octets sont codés en dur .
Kevin Cruijssen
1

Julia, 152 141 139 130 127 120 113 112 octets

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

A expliqué:

#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
la source
1

C # (.NET Core) , 174 153 octets

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

Essayez-le en ligne!

Un moyen inefficace de construire la pyramide, mais intéressant de l’utiliser.

Remerciements

-21 octets grâce à @quelqu'un

Ayb4btu
la source
1

C # (.NET Core) , 144 octets

Celui-ci peut sembler assez ennuyeux, parce que c'est assez ennuyeux.

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

Essayez-le en ligne!

Quelqu'un
la source
0

JavaScript, 117 octets

Je sais pertinemment que je ne bat aucune des langues de golf, mais au moins je peux donner ma propre solution.

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

Voici une démo:

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

Explication:

$=>                                       // 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
la source
4
Il n'est pas recommandé de répondre tout de suite, laissez les gens faire leurs propres solutions.
Okx
0

Javascript, 238 octets

Mon tout premier essai de 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
la source
1
Bienvenue sur le site!
Caird coinheringaahing
Le codage en dur est nettement plus court que ce que vous avez ici. Vous pouvez réduire cela avec quelques fonctionnalités de ES6: au function`s` lieu de function('s'), au a=>lieu de ()=>, au fill(x)lieu de map(e=>x), au [...s]lieu de s.split(''), déplacer une déclaration dans l' forinitialisation, etc.
Nissa