Saludo al usuario

16

Cree un programa que cuando se ejecute muestre el texto a continuación:

)-*-*-*^_^*-*-*-(
| Welcome User! |
)-*-*-*^_^*-*-*-(

Usa cualquier función o lenguaje para responder esto, diviértete. El código más corto gana

Amurt4l
fuente
3
¿Podemos alternativamente devolver esto de una función, como de costumbre?
Stephen
66
¿Se permiten nuevas líneas iniciales / finales?
Gryphon

Respuestas:

6

Japt , 41 39 bytes

Guardado 2 bytes gracias a @Shaggy

[U="){"-*-*-*^_"ê}("`| WelÖ  U r! |`U]·

Explicación:

[U="){"-*-*-*^_"ê}("`| WelÖ  U r! |`U]·
[                                    ]    // Create a new array
 U=                                       // Variable U =
   ")                                     //   ")
     {            }                       //   Evaluate everything in curley-brackets as code
      "-*-*-*^_"ê                         //   "-*-*-*^_" mirrored -> -*-*-*^_^*-*-*-
                  ("                      //   ("
                                          * Now we have [U=")-*-*-*^_^*-*-*-("]
                    `| WelÖ  U r! |`      // "| Welcome User! |" decompressed by `...`
                                     U    // ")-*-*-*^_^*-*-*-("
                                          * Now we have [")-*-*-*^_^*-*-*-(","| Welcome User! |",")-*-*-*^_^*-*-*-("]
                                      ·   // Split with new-lines

Pruébalo en línea!

Oliver
fuente
1
39 bytes
Shaggy
32

Python 2 , 54 bytes

print(")-*-*-*^_^*-*-*-(\n| Welcome User! |\n"*2)[:53]

Pruébalo en línea!

xnor
fuente
77
¡GUAU, tatuaré este enfoque en mi corteza cerebral!
Mauro Baraldi
Impresionante, me venció por 1 byte! Tome un +1
Gryphon
12

T-SQL, 60 bytes

PRINT')-*-*-*^_^*-*-*-(
| Welcome User! |
)-*-*-*^_^*-*-*-('

SQL permite dividir literales de cadena sobre líneas, por lo que se cuentan esos retornos.

Trabajando en una solución de procedimiento, pero dudo que encuentre una menor de 60 años.

Nueva edición : se encontró un sencillo REPLACEque vincula la solución trivial:

PRINT REPLACE('1
| Welcome User! |
1',1,')-*-*-*^_^*-*-*-(')

Resulta que REPLACEhará una conversión implícita de un número a una cadena, por lo que esto me permite guardar 2 caracteres al eliminar las comillas alrededor de mi carácter de reemplazo.

Intentar ponerlo en una variable es demasiado largo, debido a la sobrecarga de DECLARE(69 bytes):

DECLARE @ CHAR(17)=')-*-*-*^_^*-*-*-('PRINT @+'
| Welcome User! |
'+@
BradC
fuente
8
Esta respuesta está completamente bien @juniorRubyist
Mr. Xcoder
Okay. Quité ese voto negativo.
juniorRubyist
Gracias. Pensé que originalmente se refería a la limitación de la codificación de salida , pero eso está permitido para la complejidad de kolmogorov. Simplemente no particularmente eficiente.
BradC
9

Python 2.7, 55 bytes

a="\n)-*-*-*^_^*-*-*-(\n"
print a+'| Welcome User! |'+a

Bastante simple. Incluye nuevas líneas iniciales y finales.

Grifo
fuente
13
No necesita ser una función.
totalmente humano
8

C (gcc) , 78 75 bytes

main(i){for(;printf(")-*-*-*^_^*-*-*-(")&i--;puts("\n| Welcome User! |"));}

Pruébalo en línea!

cleblanc
fuente
Buen intento, ¡muy poca cantidad de bytes también!
Amurt4l
Lo más bajo que lo he conseguido es 66 bytes hasta ahora
Amurt4l
71 bytes con una nueva línea final (75 sin):#define P puts(")-*-*-*^_^*-*-*-(") f(){P;puts("| Welcome User! |");P;}
Steadybox
2
@ Amurt4l si lo desea, ya que ha recibido bastantes respuestas, también puede publicar su propia respuesta :)
Stephen
6

Chicle , 43 bytes

00000000: d3d4 d502 c1b8 f838 30ad abc1 55a3 109e  .......80...U...
00000010: 9a93 9c9f 9baa 105a 9c5a a4a8 50c3 a589  .......Z.Z..P...
00000020: ae06 00bd 4d85 9835 0000 00              ....M..5...

Pruébalo en línea!

DJMcMayhem
fuente
3
Este lenguaje <s> es </s> se siente como un abuso de las "reglas", y creo que deberíamos cambiarlas solo para que @Dennis tenga que cambiar un poco el idioma
Stephen
@StephenS TBH, estoy de acuerdo. Sin embargo, afortunadamente, los lenguajes optimizados para la complejidad de kolmogorov (Jelly, 05AB1E, V, SOGL, algunos otros) aún pueden superarlo sin sentirse tan baratos.
DJMcMayhem
11
@StephenS Si un desafío se resuelve mejor con Bubblegum, es culpa del desafío, no del lenguaje. En lugar de reglas de abogacía, escriba desafíos más interesantes.
Anders Kaseorg
6

05AB1E , 31 29 26 bytes

-3 Bytes gracias a Emigna

")-*-*-*^_".∞D”|‡Ý‚Ý! |”s»

Pruébalo en línea!

Explicación

")-*-*-*^_".∞D”|‡Ý‚Ý! |”s»
")-*-*-*^_"                # Push )-*-*-*^_
           .∞              # Intersected mirror (results in )-*-*-*^_^*-*-*-( )
             D             # Duplicate top of stack
              ”|‡Ý‚Ý! |”   # Pushes | Welcome User! |
                        s  # Swap top items on stack
                         » # Join on newlines
Datboi
fuente
1
Podrías hacerlo en .∞lugar deû¨'(«
Emigna
¡Sabía que esto tenía que existir de alguna manera! Gracias hombre
Datboi
No importa, lo que publiqué fue equivalente jajaja.
Urna mágica de pulpo
Sé que ha pasado un tiempo, pero puede guardar un byte cambiando el ")-*-*-*^_"a ')„-*Є^_J. :)
Kevin Cruijssen
5

Python 3, 62 bytes

print(")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-(")
Mauro Baraldi
fuente
Necesita ser una función.
juniorRubyist
Consulte esto: codegolf.meta.stackexchange.com/a/1146/46066
juniorRubyist
3
Pero no es un fragmento. Es un programa completo.
totalmente humano
2
No, no necesita ser una función. Léalo nuevamente: use cualquier función o idioma para responder esto.
Mauro Baraldi
2
@juniorRubyist La primera línea de la pregunta diceCreate a program
dzaima
5

JavaScript, 56 bytes

alert(`${s=")-*-*-*^_^*-*-*-("}
| Welcome User! |
${s}`)

JavaScript (ES6), 50 48 bytes (función)

_=>(s=")-*-*-*^_^*-*-*-(")+`
| Welcome User! |
`+s

-2 bytes gracias a Rick Hitckcock

Stephen
fuente
¿Por qué alert? Ahorre algunos bytes usando una función.
Shaggy
@Shaggy Lo sé, solo lo edité, pero actualmente OP dice display, y aún no ha respondido a mi comentario
Stephen
44
@juniorRubyist generalmente permitimos un programa completo o una función. OP no especificó que las funciones que devolvieron el valor en lugar de mostrarlo estuvieran permitidas, por lo que es posible que mis dos segundas entradas no estén permitidas. Sin embargo, los programas completos están (casi) siempre permitidos, y JavaScript no necesita repetitivo. Copie mi alerten un .jsarchivo y ejecútelo en su navegador, se ejecutará.
Stephen
Ahorre 2 bytes con _=>(s=")-*-*-*^_^*-*-*-(")+\ n | Bienvenido usuario! | \ n+s
Rick Hitchcock
4

C, 75 bytes

main(){char*S=")-*-*-*^_^*-*-*-(";printf("%s\n| Welcome User! |\n%s",S,S);}
Govind Parmar
fuente
70 bytes como este; m=")-*-*-*^_^*-*-*-(";main(){printf("%s\n| Welcome User! |\n%s",m,m);}
cleblanc
4

MATLAB / Octave, 53 bytes

a=')-*-*-*^_^*-*-*-(';disp([a;'| Welcome User! |';a])
rayryeng - Restablece a Monica
fuente
Why MATLAB / Python? This is definitely not valid python.
DJMcMayhem
@DJMcMayhem Sorry I meant Octave. Thanks for noticing the typo. Been answering python questions over on SO all day so brain had a small glitch :)
rayryeng - Reinstate Monica
If you ommit disp Matlab will show leading ans = \n.
Crowley
@Crowley That's why you need the disp there as it won't conform to the exact output.
rayryeng - Reinstate Monica
If the ans = is not disallowed you can save 6 bytes.
Crowley
4

Perl 5, 49 bytes

print$\=")-*-*-*^_^*-*-*-(","
| Welcome User! |
"

Try it online!

Uses the fact that $\ is implicitly printed after each print.

Dada
fuente
What about say?
simbabque
1
@simbabque I tend to follow this consensus. Furthermore, replacing all print with say isn't really where the point of golfing lies in my opinion. But I'm not on any crusade to stop using say though; I let everyone do as they like, and everyone is happy :)
Dada
4

Charcoal, 32 30 bytes

_^×*-³(⸿emocleW |‖B¬J¹¦¹ User!

Try it online! Link is to verbose version of code. Explanation:

_^              Print("_^");
×*-³            Print(Times("*-", 3));
(⸿emocleW |     Print("(\remocleW |");

Prints the mirror image of the top left portion of the output.

‖B¬             ReflectButterfly(:¬);

Reflects down and to the left to create the top and bottom lines and the left of the middle line.

J¹¦¹            JumpTo(1, 1);
 User!          Print(" User!");

Fixes up the middle line.

Neil
fuente
(Why the downvote?)
Neil
2
Apparently someone's been downvoting many of the answers in this challenge, my submission is also one of the affected ones.
Kritixi Lithos
3

Mathematica, 52 bytes

Column@{t=")-*-*-*^_^*-*-*-(","| Welcome User! |",t}
J42161217
fuente
3

Golang, 82 bytes

func main(){var a string=")-*-*-*^_^*-*-*-(\n";Printf(a+"| Welcome User! |\n"+a)}

Try it online!

ionk
fuente
Hola y bienvenidos a PPCG! Su envío puede ser una función que devuelve el texto como resultado, según el meta consenso, lo que podría hacerlo más corto y mejor para este sitio.
Camarada SparklePony
Ah bien, gracias por el aviso. Haré una edición.
ionk
Tienes que incluir la fmtimportación, lo siento.
totalmente humano
@totallyhuman espera pero no es parte de la función.
ionk
3

Funciones de Minecraft , 77 bytes

tellraw @a {"text":")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-("}
LyricLy
fuente
Esto ni siquiera está tratando de comprimir la cadena ...
Okx
2
@Okx Bueno, intente hacerlo cuando las únicas cosas no constantes que puede imprimir son números y nombres de bloque / elemento: p
dzaima
3

Braingolf , 55 bytes

22#)[#-#*]"^_^"[#*#-]#(V"
| Welcome User! |
"R!&@v&@R&@

Pruébalo en línea!

Es 2 bytes más corto que codificar la salida.

Explicación

22                         Push 2 2s to the stack
                             These are used for loop counting
  #)                       Push )
    [#-#*]                 Push -* 3 times, using one of the 2s
          "^_^"            Push ^_^
               [#*#-]      Push *- 3 times, using the remaining 2
                     #(    Push (
                       V   Create a new stack
                        "
| Welcome User! |
"                          Push \n| Welcome User! |\n to the new stack
 R!&@                      Return to main stack, print entire stack without popping
     v&@                   Switch to 2nd stack, pop and print stack
        R                  Return to main stack, pop and print stack
Skidsdev
fuente
3

PHP , 50 bytes

<?=$a=")-*-*-*^_^*-*-*-(","
| Welcome User! |
$a";

Pruébalo en línea!

Jörg Hülsermann
fuente
1
<?=$a=")-*-*-*^_^*-*-*-(","\n| Welcome User! |\n$a";
Christoph
3

Lote, 70 bytes.

@SET b=@ECHO )-*-*-*^^^^_^^^^*-*-*-(
%b%
@ECHO ^| Welcome User! ^|
%b%

Disfruto mucho de este porque todos los personajes de escape hacen que el emoticón ^_^parezca una adorable abominación de Lovecraft^^^^_^^^^

Tostadas de ingeniero
fuente
3

> <> , 56 54 bytes

/a"| !resU emocleW |>"01pa
 l?!;o
/"(-*-*-*^_^*-*-*-)"

Pruébalo en línea!

2 bytes guardados por AGourd

Pelícano verde azulado
fuente
En su primera línea, puede cambiar | "a"> "01p a |>" 01pa para guardar un par de caracteres
AGourd
@AGourd; Oh, debo haberme perdido eso, parece simple cuando lo señalas :) - Lo editaré pronto, gracias.
Teal pelican
2

V , 35 bytes

é)8a-*r(ãhR^_^Äo| Welcome User! |

Pruébalo en línea!

Hexdump:

00000000: e929 3861 2d2a 1b72 28e3 6852 5e5f 5e1b  .)8a-*.r(.hR^_^.
00000010: c46f 7c20 5765 6c63 6f6d 6520 5573 6572  .o| Welcome User
00000020: 2120 7c                                  ! |

Explicación:

é)                          " Insert a '('
  8a                        " Append 8 copies of the following: 
    -*<esc>                 "   '-*'
           r(               " Replace the last character on this line with '('
             ãh             " Move to the middle of this line
               R            " And write the following text over the existing text:
                ^_^<esc>    "   '^_^'
                        Ä   " Duplicate this line
o                           " On a new line:
 | Welcome User! |          "   Write the whole middle line
DJMcMayhem
fuente
2

Pyth, 41 bytes

Es aburrido, pero no puedo encontrar una manera de crear )-*-*-*^_^*-*-*-(o | Welcome User! |en menos bytes que simplemente copiar las cadenas.

J")-*-*-*^_^*-*-*-("J"| Welcome User! |"J

Explanation:
J")-*-*-*^_^*-*-*-("                      # J = ")-*-*-*^_^*-*-*-("
                    J                     # Print J with new line
                     "| Welcome User! |"  # Print "| Welcome User! |" with new line
                                        J # Print J with new line

pruébalo en línea

jacoblaw
fuente
¿Por qué el voto negativo?
jacoblaw
2

/// , 42 bytes

/#/)-*-*-*^_^*-*-*-(
/#| Welcome User! |
#

Pruébalo en línea!

¡Más corto que la solución Bubblegum!

Camarada SparklePony
fuente
¿Por qué el voto negativo?
Camarada SparklePony
2

Zanahoria , 51 bytes

)-*-*-*\^_\^*-*-*-(
^*1//.+/gS"
| Welcome User! |
"

Pruébalo en línea!

Explicación

)-*-*-*\^_\^*-*-*-(
^                            Give the stack-string this value ")-*-*-*^_^*-*-*-(\n"
 *1                          Append 1 duplicate of the stack-string to itself
                             stack-string: ")-*-*-*^_^*-*-*-(\n)-*-*-*^_^*-*-*-("
//.+/g                       Get matches of /.+/g and set the stack-array to this result
                             stack-array: [")-*-*-*^_^*-*-*-(",")-*-*-*^_^*-*-*-("]
S"
| Welcome User! |
"                            Join the stack-array on "\n| Welcome User! |\n" and
                             set the stack-string to this result
Kritixi Lithos
fuente
¿Por qué el voto negativo?
Kritixi Lithos
2

bash, 52 bytes

f=")-*-*-*^_^*-*-*-("
echo "$f
| Welcome User! |
$f"
joeytwiddle
fuente
2

Vim, 38 bytes

i)^[8a-*^[r(9hR^_^^[Yo| Welcome User! |^[p

Shoutout a los amigos en los comentarios

Original:

i)-\*^[vhyl2pa^_^\*-^[vhyl2pa(^[Vyo| Welcome User! |^[p

Donde ^[esta la ESCllave

bioweasel
fuente
1
i)-*-*-*^_^*-*-*-(^]es mucho más corto para construir la línea superior. Además, Yes equivalente aVy
DJMcMayhem
En realidad, si prestas más o menos la construcción de la línea superior de respuesta V de DJ, puedes guardar 2 bytes en la entrada del i)^]8a-*^[r(9hR^_^^[
código duro
Gracias a todos. He estado usando Vim durante aproximadamente un mes y solo estaba tratando de ver si podía hacerlo. Obviamente tengo mucha optimización para ir a mi flujo de trabajo
bioweasel
Un último consejo: si duplica la línea antes de abrir una nueva línea para "¡Bienvenido usuario!", No necesitará presionar ^[al final. YPo| Welcome User! |
DJMcMayhem
¿Ver? Ni siquiera sabía que Pera una cosa. Eso es asombroso sin embargo. ¡Gracias!
bioweasel
2

Java 8, 62 bytes

x->"".format("%s| Welcome User! |\n%<s",")-*-*-*^_^*-*-*-(\n")

Pruébalo aquí

O como programa completo ( 110 bytes ):

interface A{static void main(String[]a){System.out.printf("%s| Welcome User! |\n%<s",")-*-*-*^_^*-*-*-(\n");}}

Pruébalo aquí

Sorprendido aún no había una respuesta de Java.

Kevin Cruijssen
fuente