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


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!




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! |
'+@


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


8

C (gcc) , 78 75 bytes

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

Experimente online!


Boa tentativa, quantidade muito baixa de bytes também!
Amurt4l

O mais baixo que eu consegui é de 66 bytes até agora #
Amurt4l


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!


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

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)-*-*-*^_^*-*-*-(")

Precisa ser uma função.
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


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


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

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



4

MATLAB / oitava, 53 bytes

a=')-*-*-*^_^*-*-*-(';disp([a;'| Welcome User! |';a])

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.


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.


(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}

3

Golang, 82 bytes

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

Experimente online!


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

Funções do Minecraft , 77 bytes

tellraw @a {"text":")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-("}

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


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


3

> <> , 56 54 bytes

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

Experimente online!

2 bytes salvos pelo AGourd


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

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


Por que o voto negativo?
jacoblaw


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

Por que o voto negativo?
Kritixi Lithos

2

bash, 52 bytes

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

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


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.