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

16

Создайте программу, которая при запуске отображает текст ниже:

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

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

Amurt4l
источник
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

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

Оливер
источник
1
39 байт
Мохнатые
32

Python 2 , 54 байта

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

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

XNOR
источник
7
Ух ты, я сделаю татуировку на моей коре головного мозга!
Мауро Баральди
Впечатляет, бей меня на 1 байт! Возьмите +1
Грифон
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! |
'+@
BradC
источник
Пожалуйста, смотрите это: 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! |"));}

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

cleblanc
источник
Хорошая попытка, довольно небольшое количество байтов!
Amurt4l
Самое
71 байт с завершающим #define P puts(")-*-*-*^_^*-*-*-(") f(){P;puts("| Welcome User! |");P;}
переводом
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...

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

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

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

C 75 байтов

main(){char*S=")-*-*-*^_^*-*-*-(";printf("%s\n| Welcome User! |\n%s",S,S);}
Говинд Пармар
источник
70 байтов как это; m=")-*-*-*^_^*-*-*-(";main(){printf("%s\n| Welcome User! |\n%s",m,m);}
cleblanc
4

MATLAB / Octave, 53 bytes

a=')-*-*-*^_^*-*-*-(';disp([a;'| Welcome User! |';a])
rayryeng - Reinstate Monica
источник
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
источник
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

Mathematica, 52 байта

Column@{t=")-*-*-*^_^*-*-*-(","| Welcome User! |",t}
J42161217
источник
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)-*-*-*^_^*-*-*-("}
LyricLy
источник
Это даже не пытается сжать строку ...
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
Skidsdev
источник
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
DJMcMayhem
источник
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

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

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

/// , 42 байта

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

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

Короче, чем решение Bubblegum!

Товарищ Спаркл Пони
источник
Почему отрицательный голос?
Товарищ SparklePony
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
источник
Почему отрицательный голос?
Kritixi Lithos
2

Баш, 52 байта

f=")-*-*-*^_^*-*-*-("
echo "$f
| Welcome User! |
$f"
joeytwiddle
источник
2

Vim, 38 байт

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

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

Оригинал:

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

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

bioweasel
источник
1
i)-*-*-*^_^*-*-*-(^]намного короче для построения верхней линии. Кроме того, Yэто эквивалентноVy
DJMcMayhem
На самом деле, если вы более или менее заимствуете конструкцию верхней строки ответа диджея V, вы можете сэкономить 2 байта на вводе i)^]8a-*^[r(9hR^_^^[
жесткого кода
Спасибо вам всем. Я пользуюсь Vim уже около месяца и просто пытаюсь понять, смогу ли я это сделать. Очевидно, у меня есть много возможностей для оптимизации рабочего процесса
bioweasel
Последний совет: если дублировать строку перед открытием новой строки для «Добро пожаловать, пользователь!», Вам не нужно нажимать ^[в конце. YPo| Welcome User! |
DJMcMayhem
Видеть? даже не знал, что Pэто вещь. Это круто, хотя. Благодарность!
Биоласкаль
2

Java 8, 62 байта

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

Попробуй это здесь.

Или как полная программа ( 110 байт ):

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

Попробуй это здесь.

Удивлен, но пока не было ответа на Java.

Кевин Круйссен
источник