Приветствие пользователя


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

Пожалуйста, смотрите это: codegolf.meta.stackexchange.com/a/1146/46066
juniorRubyist

8
Этот ответ вполне подходит @juniorRubyist
г-н Xcoder

Ok. Я убрал это понижение.
JuniorRubyist

Благодарю. Думал, вы изначально имели в виду жесткое программирование ограничения вывода , но это допустимо для колмогоровских сложностей. Просто не особо эффективно.
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



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

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

11
@StephenS Если проблему лучше всего решить с помощью Bubblegum, то это ошибка, а не язык. Вместо правил адвокатуры, пишите более интересные задачи.
Андерс Касеорг

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

Я знал, что это должно было как-то существовать! Спасибо человек
Датбой

Неважно, что я отправил было эквивалентно лол.
Волшебная Урна Осьминога

Я знаю , что это было некоторое время, но вы можете сохранить байты, изменяя ")-*-*-*^_"к ')„-*Є^_J. :)
Кевин Круйссен

5

Python 3, 62 байта

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

Должен быть функцией.
JuniorRubyist

Пожалуйста, смотрите это: codegolf.meta.stackexchange.com/a/1146/46066
juniorRubyist

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 байта благодаря Рику Хитккоку


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

Сохранить 2 байта с помощью _=>(s=")-*-*-*^_^*-*-*-(")+\ n | Добро пожаловать, пользователь! | \ n+s
Рик Хичкок




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.


(Почему понизить?)
Нейл

2
Видимо, кто-то отрицал многие ответы на этот вопрос, мое представление также является одним из затронутых.
Kritixi Lithos


3

Голанг, 82 байта

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

Попробуйте онлайн!


Здравствуйте и добро пожаловать в PPCG! Ваша отправка может быть функцией, которая возвращает текст как вывод, в соответствии с мета-консенсусом, что может сделать его короче и лучше для этого сайта.
Товарищ SparklePony

А, ладно, спасибо за внимание. Я сделаю правку.
Ионк

Вы должны включить fmtимпорт, извините.
полностью человек

@totallyhuman подождите, но это не часть функции.
Ионк


3

Функции Minecraft , 77 байтов

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

Это даже не пытается сжать строку ...
Okx

2
@Okx Хорошо, попробуйте сделать это, когда единственными непостоянными вещами, которые вы можете напечатать, являются числа и имена блоков / элементов: p
dzaima

3

Braingolf , 55 байт

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

Попробуйте онлайн!

Это на 2 байта короче, чем жесткое кодирование вывода.

объяснение

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

Пакетная, 70 байт

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

Мне больше всего нравится этот, потому что все экранирующие персонажи делают смайлик ^_^похожим на очаровательную мерзость Лавкрафта^^^^_^^^^


3

> <> , 56 54 байта

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

Попробуйте онлайн!

2 байта сохранены AGourd


В первой строке вы можете изменить | "a"> "01p на |>" 01pa, чтобы сохранить пару символов
AGourd

@AGourd; О, должно быть, я пропустил это, кажется, просто, когда вы указываете на это :) - Я скоро отредактирую это, спасибо.
Чирок пеликан

2

V 35 байт

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

Попробуйте онлайн!

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

Объяснение:

é)                          " 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 байт

Это скучно, но я просто не могу найти способ создать )-*-*-*^_^*-*-*-(или | Welcome User! |меньше байтов, чем просто копировать строки.

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

попробуйте онлайн


Почему голосование против?
Якоблав


2

Морковь , 51 байт

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

Попробуйте онлайн!

объяснение

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


2

Vim, 38 байт

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

Привет друзьям в комментариях

Оригинал:

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

Где ^[это ESCключ


1
i)-*-*-*^_^*-*-*-(^]намного короче для построения верхней линии. Кроме того, Yэто эквивалентноVy
DJMcMayhem

На самом деле, если вы более или менее заимствуете конструкцию верхней строки ответа диджея V, вы можете сэкономить 2 байта на вводе i)^]8a-*^[r(9hR^_^^[
жесткого кода

Спасибо вам всем. Я пользуюсь Vim уже около месяца и просто пытаюсь понять, смогу ли я это сделать. Очевидно, у меня есть много возможностей для оптимизации рабочего процесса
bioweasel

Последний совет: если дублировать строку перед открытием новой строки для «Добро пожаловать, пользователь!», Вам не нужно нажимать ^[в конце. YPo| Welcome User! |
DJMcMayhem

Видеть? даже не знал, что Pэто вещь. Это круто, хотя. Благодарность!
Биоласкаль

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.