Cumprimentando o usuário

16

Crie um programa que, quando executado, exibe o texto abaixo:

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

Use qualquer função ou idioma para responder a isso, divirta-se. O código mais curto vence

Amurt4l
fonte
3
Como alternativa, podemos retornar isso de uma função, como de costume?
Stephen
6
As novas linhas iniciais / finais são permitidas?
Gryphon - Restabelece Monica

Respostas:

6

Japonês , 41 39 bytes

Guardado 2 bytes graças a @Shaggy

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

Explicação:

[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

Experimente online!

Oliver
fonte
1
39 bytes
Salsicha
32

Python 2 , 54 bytes

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

Experimente online!

xnor
fonte
7
WOW, vou tatuar essa abordagem no meu córtex cerebral !!
Mauro Baraldi
Impressionante, me bata em 1 byte! Dê uma +1
Gryphon - Reinstate Monica
12

T-SQL, 60 bytes

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

O SQL permite dividir literais de string em linhas, para que esses retornos sejam contados.

Trabalhando em uma solução processual, mas duvido que encontre uma com menos de 60 anos.

Nova edição : encontrou um simples REPLACEque vincula a solução trivial:

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

Acontece que REPLACEisso fará uma conversão implícita de um numeral em uma string, portanto, isso permite salvar 2 caracteres, eliminando as aspas ao redor do caractere de substituição.

Tentar colocá-lo em uma variável é muito longo, devido à sobrecarga de DECLARE(69 bytes):

DECLARE @ CHAR(17)=')-*-*-*^_^*-*-*-('PRINT @+'
| Welcome User! |
'+@
BradC
fonte
Por favor, veja esta: codegolf.meta.stackexchange.com/a/1146/46066
juniorRubyist
8
Esta resposta é completamente bem @juniorRubyist
Mr. Xcoder
Está bem. Eu removi o voto negativo.
juniorRubyist
Obrigado. Pensei que você estava originalmente se referindo à codificação embutida da limitação de saída , mas isso é permitido pela complexidade do kolmogorov. Apenas não é particularmente eficiente.
BradC
9

Python 2.7, 55 bytes

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

Bem simples. Inclui novas linhas iniciais e finais.

Gryphon - Restabelecer Monica
fonte
13
Não precisa ser uma função.
totallyhuman
8

C (gcc) , 78 75 bytes

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

Experimente online!

cleblanc
fonte
Boa tentativa, quantidade muito baixa de bytes também!
Amurt4l
O mais baixo que eu consegui é de 66 bytes até agora #
Amurt4l
71 bytes com uma nova linha à direita (75 sem):#define P puts(")-*-*-*^_^*-*-*-(") f(){P;puts("| Welcome User! |");P;}
Steadybox 20/06
2
@ Amurt4l se você gostaria, uma vez que você tenha obtido algumas respostas, você pode enviar sua própria resposta, bem :)
Stephen
6

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

Experimente online!

DJMcMayhem
fonte
3
Esse idioma <s> é </s> parece um abuso tão grande das "regras", que acho que devemos alterá-las apenas para que o @Dennis precise mudar um pouco o idioma
Stephen
@StephenS TBH, eu concordo. No entanto, felizmente, os idiomas otimizados para a complexidade do kolmogorov (Jelly, 05AB1E, V, SOGL, alguns outros) ainda podem geralmente superá-lo sem parecer tão barato.
DJMcMayhem
11
@StephenS Se um desafio é melhor resolvido com Bubblegum, a culpa é do desafio, não do idioma. Em vez de advogar por regras, escreva desafios mais interessantes.
precisa saber é o seguinte
6

05AB1E , 31 29 26 bytes

-3 Bytes graças a Emigna

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

Experimente online!

Explicação

")-*-*-*^_".∞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
fonte
1
Você poderia fazer em .∞vez deû¨'(«
Emigna
Eu sabia que isso tinha que existir de alguma forma! Obrigado cara
Datboi
Deixa pra lá, o que eu postei foi equivalente lol.
Magic Octopus Urn
Sei que já faz um tempo, mas você pode salvar um byte alterando o ")-*-*-*^_"para ')„-*Є^_J. :)
Kevin Cruijssen
5

Python 3, 62 bytes

print(")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-(")
Mauro Baraldi
fonte
Precisa ser uma função.
juniorRubyist
Por favor, veja esta: codegolf.meta.stackexchange.com/a/1146/46066
juniorRubyist
3
Mas não é um trecho. É um programa completo.
totallyhuman
2
Não, não precisa ser uma função. Leia novamente: use qualquer função ou idioma para responder a isso.
Mauro Baraldi
2
@juniorRubyist A primeira linha da pergunta dizCreate a program
dzaima 20/17
5

JavaScript, 56 bytes

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

JavaScript (ES6), 50 48 bytes (função)

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

-2 bytes graças a Rick Hitckcock

Stephen
fonte
Por que alert? Salve alguns bytes usando uma função.
Shaggy
@Shaggy Eu sei disso, acabou de editar-lo, mas atualmente OP diz visor e não respondeu ao meu comentário ainda
Stephen
Por favor, veja esta: codegolf.meta.stackexchange.com/a/1146/46066
juniorRubyist
4
@juniorRubyist geralmente permitimos um programa completo ou uma função. O OP não especificou que as funções que retornaram o valor em vez de exibi-lo eram permitidas, portanto, minhas duas primeiras entradas podem não ser permitidas. No entanto, programas completos são (quase) sempre permitidos e o JavaScript não precisa de clichê. Copie-o alertem um .jsarquivo e execute-o no seu navegador, ele será executado.
Stephen
Salve 2 bytes com _=>(s=")-*-*-*^_^*-*-*-(")+\ n | Bem-vindo Usuário! | \ n+s
Rick Hitchcock
4

C, 75 bytes

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

Sed, 51

Dois pelo preço de um:

s/^/)-*-*-*^_^*-*-*-(/p
x
s/^/| Welcome User! |/p
x

Experimente online .

s/^/)-*-*-*^_^*-*-*-(\n| Welcome User! |/p
s/\n.*//

Experimente online .

Trauma Digital
fonte
4

MATLAB / oitava, 53 bytes

a=')-*-*-*^_^*-*-*-(';disp([a;'| Welcome User! |';a])
rayryeng - Restabelecer Monica
fonte
Por que MATLAB / Python? Definitivamente, este não é um python válido.
DJMcMayhem
@DJMcMayhem Desculpe, eu quis dizer Octave. Obrigado por perceber o erro de digitação. Foi respondendo a perguntas python mais no SO todo o dia para o cérebro tinha uma pequena falha :)
rayryeng - Reintegrar Monica
Se você omitir, o dispMatlab mostrará a liderança ans = \n.
Crowley
@Crowley É por isso que você precisa do displocal, pois ele não está em conformidade com a saída exata.
rayryeng - Restabelece Monica
Se o ans = não for permitido, você poderá salvar 6 bytes.
Crowley
4

Perl 5 , 49 bytes

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

Experimente online!

Usa o fato de que $\é implicitamente impresso após cada um print.

dada
fonte
Que tal say?
simbabque
1
@simbabque Eu costumo seguir esse consenso . Além disso, substituir todos printpor saynão é realmente o ponto principal do golfe, na minha opinião. Mas não estou em nenhuma cruzada para parar de usar say; Deixo que todos façam o que quiserem e todos estejam felizes :)
Dada
4

Carvão , 32 30 bytes

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

Experimente online! Link é a versão detalhada do código. Explicação:

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

Imprime a imagem espelhada da parte superior esquerda da saída.

‖B¬             ReflectButterfly(:¬);

Reflete para baixo e para a esquerda para criar as linhas superior e inferior e a esquerda da linha do meio.

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

Corrige a linha do meio.

Neil
fonte
(Por que o downvote?)
Neil
2
Aparentemente, alguém já votou muitas das respostas nesse desafio. Minha submissão também é uma das afetadas.
Kritixi Lithos
3

Mathematica, 52 bytes

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

Golang, 82 bytes

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

Experimente online!

ionk
fonte
Olá, e bem-vindo ao PPCG! Seu envio pode ser uma função que retorna o texto como saída, conforme meta consenso, o que pode torná-lo mais curto e melhor para este site.
Camarada SparklePony
Ah ok, obrigado pelo aviso. Eu vou fazer uma edição.
ionk
Você precisa incluir a fmtimportação, desculpe.
totallyhuman
@totallyhuman espera, mas não faz parte da função.
ionk
3

Ruby , 49 bytes

$><<[")-*-*-*^_^*-*-*-("]*2*"
| Welcome User! |
"

Experimente online!

Value Ink
fonte
3

Funções do Minecraft , 77 bytes

tellraw @a {"text":")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-("}
LyricLy
fonte
Esta não é sequer tentar comprimir a corda ...
Okx
2
@Okx Bem tentar fazer isso quando os únicos não-constante coisas que você pode imprimir são números e nomes de blocos / itens: p
dzaima
3

Braingolf , 55 bytes

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

Experimente online!

É 2 bytes mais curto que codificar a saída.

Explicação

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
fonte
3

PHP , 50 bytes

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

Experimente online!

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

Lote, 70 bytes

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

Gosto principalmente deste, porque todos os personagens de escape fazem o emoticon ^_^parecer uma adorável abominação de Lovecraft^^^^_^^^^

Engenheiro Toast
fonte
3

> <> , 56 54 bytes

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

Experimente online!

2 bytes salvos pelo AGourd

azulado Pelicano-
fonte
Em sua primeira linha, você poderia mudar | "a"> "01p para |>" 01pa para salvar um par de personagens
AGourd
@AGourd; Oh, eu devo ter esquecido isso, parece simples quando você aponta :) - Vou editar em breve, obrigado.
Teal pelican
2

V , 35 bytes

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

Experimente online!

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

Explicação:

é)                          " 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
fonte
2

Pitão, 41 bytes

É chato, mas eu simplesmente não consigo encontrar uma maneira de criar )-*-*-*^_^*-*-*-(ou | Welcome User! |em menos bytes do que apenas copiar as strings.

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

experimente online

jacoblaw
fonte
Por que o voto negativo?
jacoblaw
2

/// , 42 bytes

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

Experimente online!

Mais curto que a solução Bubblegum!

Camarada SparklePony
fonte
Por que o voto negativo?
Camarada SparklePony
2

Cenoura , 51 bytes

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

Experimente online!

Explicação

)-*-*-*\^_\^*-*-*-(
^                            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
fonte
Por que o voto negativo?
Kritixi Lithos
2

bash, 52 bytes

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

Vim, 38 bytes

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

Grito aos manos nos comentários

Original:

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

Onde ^[está a ESCchave

bioweasel
fonte
1
i)-*-*-*^_^*-*-*-(^]é muito mais curto para construir a linha superior. Além disso, Yé equivalente aVy
DJMcMayhem
Na verdade, se você mais ou menos borrow resposta V construção da linha superior do DJ você pode salvar 2 bytes na entrada hardcodei)^]8a-*^[r(9hR^_^^[
nmjcman101
Obrigado a todos. Estou usando o Vim há mais de um mês e estava apenas tentando ver se conseguia. Obviamente, eu tenho um monte de otimização para ir em meu trabalho
bioweasel
Uma última dica: se duplicar a linha antes de abrir uma nova linha para "Bem-vindo usuário!", Você não precisará pressionar ^[no final. YPo| Welcome User! |
DJMcMayhem
Vejo? nem sabia que isso Pera uma coisa. Isso é incrível. Obrigado!
bioweasel
2

Java 8, 62 bytes

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

Experimente aqui.

Ou como programa completo ( 110 bytes ):

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

Experimente aqui.

Surpreendido, ainda não havia uma resposta em Java.

Kevin Cruijssen
fonte