Begrüßung des Benutzers


16

Erstellen Sie ein Programm, das beim Ausführen den folgenden Text anzeigt:

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

Verwenden Sie eine beliebige Funktion oder Sprache, um dies zu beantworten, und haben Sie Spaß. Kürzester Code gewinnt


3
Können wir dies alternativ wie gewohnt von einer Funktion zurückgeben?
Stephen

6
Sind führende / nachfolgende Zeilenumbrüche erlaubt?
Gryphon - Wiedereinsetzung von Monica am

Antworten:


6

Japt , 41 39 Bytes

2 Bytes dank @Shaggy gespart

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

Erläuterung:

[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

Probieren Sie es online!




12

T-SQL, 60 Bytes

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

SQL ermöglicht das Aufteilen von Zeichenfolgenliteralen über Zeilen, sodass diese Rückgaben gezählt werden.

Ich arbeite an einer prozeduralen Lösung, bezweifle aber, dass ich eine unter 60 finde.

New Edit : Fand ein einfaches REPLACE, das die triviale Lösung bindet:

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

Es stellt sich heraus, dass REPLACEeine Zahl implizit in eine Zeichenfolge konvertiert wird. Auf diese Weise kann ich 2 Zeichen speichern, indem die Anführungszeichen um mein Ersatzzeichen entfernt werden.

Der Versuch, es in eine Variable zu schreiben, ist aufgrund des Overheads von DECLARE(69 Byte) zu lang:

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


8
Diese Antwort ist völlig in Ordnung @juniorRubyist
Mr. Xcoder

In Ordnung. Ich habe diese Ablehnung entfernt.
juniorRubyist

Vielen Dank. Dachte, Sie haben ursprünglich auf die Hardcodierung der Ausgabebeschränkung Bezug genommen , aber das ist für die Kolmogorov-Komplexität zulässig. Nur nicht besonders effizient.
BradC


8

C (GCC) , 78 75 Bytes

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

Probieren Sie es online!


Netter Versuch, ziemlich wenig Bytes!
Amurt4l

Das niedrigste, auf das ich es bisher gebracht habe, sind 66 Bytes
Amurt4l

71 Bytes mit einer nachgestellten Newline (75 ohne):#define P puts(")-*-*-*^_^*-*-*-(") f(){P;puts("| Welcome User! |");P;}
Steadybox

2
@ Amurt4l Wenn Sie möchten, da Sie einige Antworten erhalten haben, können Sie auch Ihre eigene Antwort posten :)
Stephen

6

Bubblegum , 43 Bytes

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

Probieren Sie es online!


3
Diese Sprache fühlt sich wie ein Missbrauch der "Regeln" an, ich denke, wir sollten sie nur ändern, damit @Dennis die Sprache ein wenig ändern muss
Stephen

@ Stephens TBH, ich bin damit einverstanden. Glücklicherweise können Sprachen, die für die Kolmogorov-Komplexität optimiert wurden (Jelly, 05AB1E, V, SOGL, einige andere), es dennoch meistens übertreffen, ohne sich so billig zu fühlen.
DJMcMayhem

11
@StephenS Wenn eine Herausforderung am besten mit Bubblegum gelöst werden kann, liegt es an der Herausforderung, nicht an der Sprache. Anstatt Regeln zu erlassen, schreibe interessantere Herausforderungen.
Anders Kaseorg

6

05AB1E , 31 29 26 Bytes

-3 Bytes dank Emigna

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

Probieren Sie es online!

Erläuterung

")-*-*-*^_".∞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
Sie könnten .∞anstelle vonû¨'(«
Emigna

Ich wusste, dass es das irgendwie geben musste! Danke Mann
Datboi

Was ich gepostet habe, war gleichwertig, lol.
Magic Octopus Urn

5

Python 3, 62 Bytes

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

Muss eine Funktion sein.
juniorRubyist


3
Aber es ist kein Ausschnitt. Es ist ein volles Programm.
Totalhuman

2
Nein, muss keine Funktion sein. Lesen Sie es noch einmal: Verwenden Sie eine beliebige Funktion oder Sprache, um dies zu beantworten.
Mauro Baraldi

2
@juniorRubyist Die erste Zeile der Frage lautetCreate a program
dzaima

5

JavaScript, 56 Bytes

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

JavaScript (ES6), 50 48 Bytes (Funktion)

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

-2 Bytes dank Rick Hitckcock


Warum alert? Sparen Sie ein paar Bytes mit einer Funktion.
Shaggy

@ Shaggy Ich weiß, dass gerade bearbeitet, aber derzeit OP sagt Display, und hat noch nicht auf meinen Kommentar reagiert
Stephen


4
@juniorRubyist erlauben wir normalerweise entweder ein komplettes Programm oder eine Funktion. OP hat nicht angegeben, dass Funktionen, die den Wert zurückgeben, statt ihn anzuzeigen, zulässig sind, sodass meine zweiten beiden Einträge möglicherweise nicht zulässig sind. Komplette Programme sind jedoch (fast) immer erlaubt und JavaScript benötigt kein Boilerplate. Kopieren Sie my alertin eine .jsDatei und führen Sie es in Ihrem Browser aus, es wird ausgeführt.
Stephen

Speichern Sie 2 Bytes mit _=>(s=")-*-*-*^_^*-*-*-(")+\ n | Willkommener Benutzer! | \ n+s
Rick Hitchcock

4

C 75 Bytes

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

70 Bytes wie dieses; m=")-*-*-*^_^*-*-*-(";main(){printf("%s\n| Welcome User! |\n%s",m,m);}
Cleblanc



4

MATLAB / Octave, 53 Bytes

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

Warum MATLAB / Python? Dies ist definitiv kein gültiges Python.
DJMcMayhem

@ DJMcMayhem Sorry, ich meinte Octave. Vielen Dank, dass Sie den Tippfehler bemerkt haben. Beantwortete den ganzen Tag über Python-Fragen, so dass das Gehirn einen kleinen
Fehler

Wenn Sie nicht angeben, zeigt dispMatlab die Führung ans = \n.
Crowley

@ Crowley Das ist der Grund, warum du das dispdort brauchst, da es nicht der genauen Ausgabe entspricht.
Rayryeng - Wiedereinsetzung von Monica

Wenn dies ans = nicht erlaubt ist, können Sie 6 Bytes speichern.
Crowley

4

Perl 5 , 49 Bytes

print$\=")-*-*-*^_^*-*-*-(","
| Welcome User! |
"

Probieren Sie es online!

Verwendet die Tatsache, dass $\implizit nach jedem gedruckt wird print.


Was ist say?
Simbabque

1
@simbabque Ich neige dazu, diesem Konsens zu folgen . Außerdem ist es meiner Meinung nach nicht wirklich wichtig, alles printdurch zu ersetzen say. Aber ich bin nicht auf einem Kreuzzug, saywenn auch nicht mehr zu gebrauchen; Ich lasse alle machen, was sie wollen, und alle sind glücklich :)
Dada

4

Holzkohle , 32-30 Bytes

_^×*-³(⸿emocleW |‖B¬J¹¦¹ User!

Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:

_^              Print("_^");
×*-³            Print(Times("*-", 3));
(⸿emocleW |     Print("(\remocleW |");

Druckt das Spiegelbild des linken oberen Teils der Ausgabe.

‖B¬             ReflectButterfly(:¬);

Wird nach unten und links reflektiert, um die obere und untere Linie sowie die linke der mittleren Linie zu erstellen.

J¹¦¹            JumpTo(1, 1);
 User!          Print(" User!");

Korrigiert die Mittellinie.


(Warum die Ablehnung?)
Neil

2
Anscheinend hat jemand viele der Antworten in dieser Herausforderung abgelehnt. Mein Beitrag ist auch einer der betroffenen.
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)}

Probieren Sie es online!


Hallo und willkommen bei PPCG! Ihre Einreichung kann eine Funktion sein, die den Text gemäß Metakonsens als Ausgabe zurückgibt, wodurch er für diese Site möglicherweise kürzer und besser wird.
Genosse SparklePony

Ah okay, danke für die Köpfe hoch. Ich werde eine Bearbeitung vornehmen.
Ionk

Sie müssen den fmtImport einschließen , sorry.
Totalhuman

@totallyhuman warten, aber es ist nicht Teil der Funktion.
Ionk


3

Minecraft-Funktionen , 77 Bytes

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

Dies versucht nicht einmal, die Zeichenfolge zu komprimieren ...
Okx

2
@Okx Nun, versuchen Sie das, wenn die einzigen nicht konstanten Dinge, die Sie drucken können, Zahlen und Block- /
Elementnamen sind

3

Braingolf , 55 Bytes

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

Probieren Sie es online!

Es ist 2 Bytes kürzer als die Ausgabe fest zu codieren.

Erläuterung

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%

Ich genieße dieses am meisten, weil all die Fluchtcharaktere das Emoticon ^_^wie einen entzückenden Lovecraft-Gräuel aussehen lassen^^^^_^^^^


3

> <> , 56 54 Bytes

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

Probieren Sie es online!

2 Bytes von AGourd gespeichert


In Ihrer ersten Zeile können Sie | "a"> "01p zu |>" 01pa ändern, um ein paar Zeichen zu speichern
AGourd

@AGourd; Oh, das muss ich verpasst haben, scheint einfach, wenn Sie darauf hinweisen :) - Ich werde es bald bearbeiten, danke.
Teal Pelican

2

V , 35 Bytes

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

Probieren Sie es 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                                  ! |

Erläuterung:

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

Es ist langweilig, aber ich kann einfach keinen Weg finden , die Zeichenfolgen zu erstellen )-*-*-*^_^*-*-*-(oder | Welcome User! |in weniger Bytes als nur zu kopieren.

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

Online ausprobieren


Warum abstimmen?
Jacoblaw


2

Karotte , 51 Bytes

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

Probieren Sie es online!

Erläuterung

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

Warum die Gegenstimme?
Kritixi Lithos


2

Vim, 38 Bytes

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

Grüße die Homies in den Kommentaren

Original:

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

Wo ^[ist der ESCSchlüssel?


1
i)-*-*-*^_^*-*-*-(^]ist viel kürzer für die Konstruktion der oberen Linie. Außerdem YentsprichtVy
DJMcMayhem

Tatsächlich können Sie, wenn Sie mehr oder weniger die V-Antwort- i)^]8a-*^[r(9hR^_^^[
Topline-

Danke euch allen. Ich benutze Vim seit ungefähr einem Monat und habe nur versucht zu sehen, ob ich es schaffen kann. Offensichtlich muss ich meinen Workflow
optimieren

Ein letzter Tipp: Wenn Sie die Zeile duplizieren, bevor Sie eine neue Zeile für "Welcome User!" Öffnen, müssen Sie nicht ^[am Ende drücken . YPo| Welcome User! |
DJMcMayhem

Sehen? Ich wusste nicht einmal, dass Pdas eine Sache ist. Das ist aber großartig. Vielen Dank!
Bioweasel

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.