사용자 인사말


16

실행할 때 아래 텍스트를 표시하는 프로그램을 작성하십시오.

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

이것에 답하기 위해 어떤 기능이나 언어를 사용하고 재미있게 보내십시오. 최단 코드 승리


3
평소대로 함수에서 이것을 대신 반환 할 수 있습니까?
Stephen

6
선행 / 트레일 링 개행이 허용됩니까?
그리폰

답변:


6

apt , 41 39 바이트

@Shaggy 덕분에 2 바이트 절약

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

설명:

[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

온라인으로 사용해보십시오!




12

T-SQL, 60 바이트

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

SQL은 문자열 리터럴을 행으로 분할 할 수 있으므로 해당 리턴이 계산됩니다.

절차 적 솔루션을 연구하고 있지만 의심의 여지가 60 미만입니다.

새로운 편집 : REPLACE사소한 솔루션을 연결 하는 간단한 것을 발견했습니다 .

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

그 결과 REPLACE 이 내 대체 문자 주위에 따옴표를 제거하여이 개 문자를 저장할 수 있도록 문자열로 숫자의 암시 적 변환을 할 것입니다.

DECLARE(69 바이트) 의 오버 헤드로 인해 변수에 변수를 넣으려고 시도하는 시간이 너무 깁니다 .

DECLARE @ CHAR(17)=')-*-*-*^_^*-*-*-('PRINT @+'
| Welcome User! |
'+@


8
이 답변은 완전히 훌륭합니다 @juniorRubyist
Mr. Xcoder

확인. 그 downvote를 제거했습니다.
juniorRubyist

감사. 원래 출력 제한을 하드 코딩하는 것으로 생각 했지만 kolmogorov-complexity가 허용됩니다. 특별히 효율적이지 않습니다.
BradC

9

파이썬 2.7, 55 바이트

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

꽤 간단합니다. 선행 및 후행 줄 바꿈을 포함합니다.


13
함수일 필요는 없습니다.
전적으로 인간

8

C (gcc) , 78 75 바이트

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

온라인으로 사용해보십시오!


좋은 시도, 꽤 적은 양의 바이트도!
Amurt4l 2016 년

내가 지금까지 내려 놓은 가장 낮은 것은 66 바이트입니다
Amurt4l


2
@ Amurt4l 당신이 원한다면, 당신은 꽤 많은 답변을 얻었으므로, 당신은 또한 자신의 답변을 게시 할 수 있습니다 :)
Stephen

6

풍선 껌 , 43 바이트

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

온라인으로 사용해보십시오!


3
이 언어 <S>는 </ S>는 우리가 언어를 조금 변경 너무 @Dennis이있을 것이라는 점을 변경해야합니다 생각은 "규칙"의 이러한 학대 느낌
스티븐

@StephenS TBH에 동의합니다. 그러나 고맙게도 kolmogorov -complexity (Jelly, 05AB1E, V, SOGL 등)에 최적화 된 언어 는 여전히 저렴한 느낌없이 이길 수 있습니다.
DJMcMayhem

11
@StephenS Bubblegum으로 도전을 가장 잘 해결한다면 언어가 아니라 도전의 잘못입니다. 규칙 변호사 대신 더 흥미로운 과제를 작성하십시오.
Anders Kaseorg 2012 년

6

05AB1E , 31 29 26 바이트

덕분에 -3 바이트 Emigna

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

온라인으로 사용해보십시오!

설명

")-*-*-*^_".∞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
당신이 할 수있는 .∞대신에û¨'(«
Emigna

나는 이것이 어떻게 든 존재해야한다는 것을 알고 있었다! 고맙습니다 남자
Datboi

신경 쓰지 마라, 내가 게시 한 것은 동등한 롤이었다.
Magic Octopus Urn

나는 그것이 오랜만 것을 알고 있지만을 변경하여 바이트를 저장할 수 있습니다 ")-*-*-*^_"')„-*Є^_J. :)
Kevin Cruijssen

5

파이썬 3, 62 바이트

print(")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-(")

기능이 필요합니다.
juniorRubyist


3
그러나 스 니펫이 아닙니다. 전체 프로그램입니다.
전적으로 인간

2
아니요, 기능이 필요하지 않습니다. 다시 읽으십시오 :이 기능에 응답하려면 기능이나 언어를 사용하십시오.
Mauro Baraldi

2
@juniorRubyist 질문의 첫 번째 줄은Create a program
dzaima

5

자바 스크립트, 56 바이트

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

자바 스크립트 (ES6), 50 48 바이트 (기능)

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

Rick Hitckcock 덕분에 -2 바이트


Why alert? Save a few bytes using a function.
Shaggy

@Shaggy I know that, just edited it in, but currently OP says display, and has not responded to my comment yet
Stephen


4
@juniorRubyist we usually allow either a complete program or a function. OP did not specify that functions that returned the value instead of displaying it were allowed, so my second two entries may not be allowed. However, complete programs are (almost) always allowed, and JavaScript doesn't need boilerplate. Copy my alert into a .js file and run it in your browser, it'll run.
Stephen

Save 2 bytes with _=>(s=")-*-*-*^_^*-*-*-(")+\n| Welcome User! |\n+s
Rick Hitchcock

4

C, 75 bytes

main(){char*S=")-*-*-*^_^*-*-*-(";printf("%s\n| Welcome User! |\n%s",S,S);}

70 bytes like this; m=")-*-*-*^_^*-*-*-(";main(){printf("%s\n| Welcome User! |\n%s",m,m);}
cleblanc



4

MATLAB / Octave, 53 bytes

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

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.


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.


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

3

Golang, 82 bytes

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

Try it online!


Hello, and welcome to PPCG! Your submission can be a function that returns the text as output, as per meta consensus, which might make it shorter and better for this site.
Comrade SparklePony

Ah okay, thank you for the heads up. I'll make an edit.
ionk

You have to include the fmt import, sorry.
totallyhuman

@totallyhuman wait but it's not part of the function.
ionk


3

Minecraft Functions, 77 bytes

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

This isn't even trying to compress the string...
Okx

2
@Okx Well try doing that when the only non-constant things you can print are numbers and block/item names :p
dzaima

3

Braingolf, 55 bytes

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

Try it online!

It's 2 bytes shorter than hardcoding the output.

Explanation

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

Batch, 70 bytes

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

I mostly enjoy this one because all the escape characters make the emoticon ^_^ look like an adorable Lovecraft abomination ^^^^_^^^^


3

><>, 56 54 bytes

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

Try it online!

2 bytes saved by AGourd


On your first line, you could change |"a">"01p to |>"01pa to save a couple characters
AGourd

@AGourd; Oh I must have missed that, seems simple when you point it out :) - I'll edit it out soon, thanks.
Teal pelican

2

V, 35 bytes

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

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

Explanation:

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

Pyth, 41 bytes

It's boring, but I just cant find a way to creat )-*-*-*^_^*-*-*-( or | Welcome User! | in less bytes than just copying the 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

try it Online


Why the down vote?
jacoblaw


2

Carrot, 51 bytes

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

Try it online!

Explanation

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

Why the downvote?
Kritixi Lithos


2

Vim, 38 Bytes

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

Shoutout to the homies in the comments

Original:

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

Where ^[ is the ESC key


1
i)-*-*-*^_^*-*-*-(^] is much shorter for constructing the top line. Also, Y is equivalent to Vy
DJMcMayhem

Actually if you more or less borrow DJ's V answer top line construction you can save 2 bytes on the hardcode input i)^]8a-*^[r(9hR^_^^[
nmjcman101

Thanks y'all. I've been using Vim for like a month and I was just trying to see if I could do it. Obviously I have a lot of optimization to go on my workflow
bioweasel

One last tip: If duplicate the line before opening a newline for "Welcome User!", you won't need to hit ^[ at the end. YPo| Welcome User! |
DJMcMayhem

See? didn't even know that P was a thing. That's awesome though. Thanks!
bioweasel

2

Java 8, 62 bytes

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

Try it here.

Or as full program (110 bytes):

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

Try it here.

Surprised there wasn't a Java answer yet.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.