Menyapa Pengguna

16

Buat program yang ketika dijalankan menampilkan teks di bawah ini:

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

Gunakan fungsi atau bahasa apa saja untuk menjawab ini, bersenang-senanglah. Kode terpendek menang

Amurt4l
sumber
3
Bisakah kita mengembalikan ini dari fungsi, seperti biasa?
Stephen
6
Apakah memimpin / mengikuti baris baru diperbolehkan?
Gryphon

Jawaban:

6

Japt , 41 39 byte

Disimpan 2 byte berkat @Shaggy

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

Penjelasan:

[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

Cobalah online!

Oliver
sumber
1
39 byte
Shaggy
32

Python 2 , 54 byte

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

Cobalah online!

Tidak
sumber
7
WOW, saya akan mentato pendekatan ini di korteks serebral saya !!
Mauro Baraldi
Impressive, beat me by 1 byte! Ambil +1
Gryphon
12

T-SQL, 60 byte

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

SQL memungkinkan pemisahan string literal melalui baris, sehingga pengembaliannya dihitung.

Bekerja pada solusi prosedural, tetapi ragu saya akan menemukan satu di bawah 60.

Sunting Baru : Ditemukan yang sederhana REPLACEyang mengikat solusi sepele:

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

Ternyata itu REPLACEakan melakukan konversi angka secara implisit ke string, jadi ini memungkinkan saya menyimpan 2 karakter dengan menghilangkan tanda kutip di sekitar karakter pengganti saya.

Mencoba memasukkannya ke dalam variabel terlalu lama, karena overhead DECLARE(69 byte):

DECLARE @ CHAR(17)=')-*-*-*^_^*-*-*-('PRINT @+'
| Welcome User! |
'+@
BradC
sumber
Silakan lihat ini: codegolf.meta.stackexchange.com/a/1146/46066
juniorRubyist
8
Jawaban ini benar-benar baik-baik saja @ juniorRubyist
Tn. Xcoder
Baik. Saya menghapus downvote itu.
juniorRubyist
Terima kasih. Kupikir kamu awalnya merujuk pada hard-coding batasan output , tapi itu diperbolehkan untuk kolmogorov-kompleksitas. Hanya saja tidak terlalu efisien.
BradC
9

Python 2.7, 55 byte

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

Cukup mudah. Termasuk baris baru yang memimpin dan tertinggal.

Gryphon
sumber
13
Tidak perlu menjadi fungsi.
totallyhuman
8

C (gcc) , 78 75 byte

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

Cobalah online!

Cleblanc
sumber
Selamat mencoba, jumlah byte yang cukup rendah juga!
Amurt4l
Terendah Saya sudah sampai sejauh ini adalah 66 byte
Amurt4l
71 byte dengan baris tambahan (75 tanpa):#define P puts(")-*-*-*^_^*-*-*-(") f(){P;puts("| Welcome User! |");P;}
Steadybox
2
@ Amurt4l jika Anda mau, karena Anda sudah mendapatkan beberapa jawaban, Anda dapat memposting jawaban Anda sendiri :)
Stephen
6

Bubblegum , 43 byte

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

Cobalah online!

DJMcMayhem
sumber
3
Bahasa ini <s> adalah </s> terasa seperti penyalahgunaan "aturan", sehingga saya pikir kita harus mengubahnya sehingga @Dennis harus mengubah sedikit bahasa
Stephen
@StephenS TBH, saya setuju. Namun, untungnya bahasa dioptimalkan untuk kompleksitas-kolmogorov (Jelly, 05AB1E, V, SOGL, beberapa lainnya) masih dapat mengalahkannya tanpa merasa semurah itu.
DJMcMayhem
11
@StephenS Jika tantangan paling baik diselesaikan dengan Bubblegum, itu adalah tantangan tantangan, bukan bahasa. Alih-alih aturan pengacara, tulis tantangan yang lebih menarik.
Anders Kaseorg
6

05AB1E , 31 29 26 byte

-3 Bytes terima kasih kepada Emigna

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

Cobalah online!

Penjelasan

")-*-*-*^_".∞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
sumber
1
Anda bisa melakukannya .∞sebagai gantinyaû¨'(«
Emigna
I knew this had to exist somehow! Thanks man
Datboi
Nevermind, what I posted was equivalent lol.
Magic Octopus Urn
I know it's been a while, but you can save a byte by changing the ")-*-*-*^_" to ')„-*Є^_J. :)
Kevin Cruijssen
5

Python 3, 62 bytes

print(")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-(")
Mauro Baraldi
sumber
Needs to be a function.
juniorRubyist
Please see this: codegolf.meta.stackexchange.com/a/1146/46066
juniorRubyist
3
But it's not a snippet. It's a full program.
totallyhuman
2
No, does not need to be a funciton. Read it again: Use any functions or language to answer this.
Mauro Baraldi
2
@juniorRubyist The 1st line of the question says Create a program
dzaima
5

JavaScript, 56 bytes

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

JavaScript (ES6), 50 48 bytes (function)

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

-2 bytes thanks to Rick Hitckcock

Stephen
sumber
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
Please see this: codegolf.meta.stackexchange.com/a/1146/46066
juniorRubyist
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);}
Govind Parmar
sumber
70 bytes like this; m=")-*-*-*^_^*-*-*-(";main(){printf("%s\n| Welcome User! |\n%s",m,m);}
cleblanc
4

Sed, 51

Two for the price of one:

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

Try it online.

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

Try it online.

Digital Trauma
sumber
4

MATLAB / Octave, 53 bytes

a=')-*-*-*^_^*-*-*-(';disp([a;'| Welcome User! |';a])
rayryeng - Reinstate Monica
sumber
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
sumber
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
sumber
(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
sumber
3

Golang, 82 bytes

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

Try it online!

ionk
sumber
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

Ruby, 49 bytes

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

Try it online!

Value Ink
sumber
3

Minecraft Functions, 77 bytes

tellraw @a {"text":")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-("}
LyricLy
sumber
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
Skidsdev
sumber
3

PHP, 50 bytes

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

Try it online!

Jörg Hülsermann
sumber
1
<?=$a=")-*-*-*^_^*-*-*-(","\n| Welcome User! |\n$a";
Christoph
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 ^^^^_^^^^

Engineer Toast
sumber
3

><>, 56 54 bytes

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

Try it online!

2 bytes saved by AGourd

Teal pelican
sumber
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
DJMcMayhem
sumber
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

jacoblaw
sumber
Why the down vote?
jacoblaw
2

///, 42 bytes

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

Try it online!

Shorter than the Bubblegum solution!

Comrade SparklePony
sumber
Why the downvote?
Comrade SparklePony
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
Kritixi Lithos
sumber
Why the downvote?
Kritixi Lithos
2

bash, 52 bytes

f=")-*-*-*^_^*-*-*-("
echo "$f
| Welcome User! |
$f"
joeytwiddle
sumber
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

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

Kevin Cruijssen
sumber