Привітання користувача


16

Створіть програму, яка під час запуску відображає текст нижче:

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

Використовуйте будь-які функції або мову, щоб відповісти на це, веселіться. Найкоротший код виграє


3
Чи можемо ми повернути це з функції, як зазвичай?
Стівен

6
Чи дозволені провідні / зворотні нові рядки?
Грифон

Відповіді:


6

Japt , 41 39 байт

Збережено 2 байти завдяки @Shaggy

[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зробить неявне перетворення числа в рядок, тому це дозволить мені зберегти 2 символи, усунувши лапки навколо мого символу заміни.

Спроба ввести його в змінну занадто довго, через накладні витрати DECLARE(69 байт):

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


8
Ця відповідь цілком чудова @juniorRubyist
Містер Xcoder

Добре. Я усунув цей потік.
молодшийрубіст

Спасибі. Ви думали, що ви спочатку маєте на увазі жорстке кодування обмеження на виході , але це дозволено для складності колмогоров. Просто не особливо ефективно.
BradC

9

Python 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

Найнижчий показник - 66 байт дотепер
Amurt4l

71 байт із заднім рядком (75 без):#define P puts(")-*-*-*^_^*-*-*-(") f(){P;puts("| Welcome User! |");P;}
Steadybox

2
@ Amurt4l, якщо ви хочете, оскільки ви отримали досить багато відповідей, ви також можете опублікувати свою відповідь :)
Стівен

6

Bubblegum , 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, я згоден. Однак, на щастя, мови, оптимізовані для складності колмогорів (Jelly, 05AB1E, V, SOGL, деякі інші), як і раніше, зазвичай можуть перемогти його, не відчуваючи себе дешевим.
DJMcMayhem

11
@StephenS Якщо виклик найкраще вирішити за допомогою Bubblegum, це проблема винна, а не мова. Замість правил юриспруденції пишіть цікавіші виклики.
Anders Kaseorg

6

05AB1E , 31 29 26 байт

-3 байти завдяки Еміньї

")-*-*-*^_".∞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
Ви можете зробити .∞замість цьогоû¨'(«
Емінья

Я знав, що це повинно існувати якось! Людина подяки
Датбой

Не маю на увазі, те, що я розмістив, було рівнозначно лол.
Magic Octopus Urn

Я знаю, що минуло деякий час, але ви можете зберегти байт, змінивши ")-*-*-*^_"на ')„-*Є^_J. :)
Кевін Круїссен

5

Python 3, 62 байти

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

Потрібно бути функцією.
молодшийрубіст


3
Але це не фрагмент. Це повна програма.
повністюлюдський

2
Ні, не потрібно бути функціонером. Прочитайте ще раз: Використовуйте будь-які функції чи мову, щоб відповісти на це.
Мауро Баральді

2
@juniorRubyist Перший рядок запитання говоритьCreate a program
dzaima

5

JavaScript, 56 байт

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

JavaScript (ES6), 50 48 байт (функція)

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

-2 байти завдяки Ріку Хітккоку


Чому alert? Збережіть кілька байт за допомогою функції.
Кудлатий

@Shaggy Я знаю це, щойно відредагував це, але наразі ОП каже дисплей, і ще не відповів на мій коментар
Стівен


4
@juniorRubyist ми зазвичай дозволяємо або повну програму, або функцію. OP не вказав, що дозволені функції, які повертали значення замість відображення, тому два мої дві записи можуть бути дозволені. Однак, повноцінні програми (майже) завжди дозволені, і JavaScript не потребує котловарі. Скопіюйте мене alertу .jsфайл та запустіть його у своєму браузері, він запуститься.
Стівен

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

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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.