Kullanıcıyı Karşılama


16

Çalıştırıldığında aşağıdaki metni görüntüleyen bir program oluşturun:

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

Bunu cevaplamak için herhangi bir işlevi veya dili kullanın, eğlenin. En kısa kod kazanır


3
Alternatif olarak bunu her zamanki gibi bir işlevden döndürebilir miyiz?
Stephen

6
Baştaki / sondaki yeni satırlara izin veriliyor mu?
Gryphon

Yanıtlar:


6

Japt , 41 39 bayt

@Shaggy sayesinde 2 bayt kaydedildi

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

Açıklama:

[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

Çevrimiçi deneyin!




12

T-SQL, 60 bayt

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

SQL, dize değişmezlerini satırlar üzerinde bölmeye izin verir, böylece bu döndürmeler sayılır.

Prosedürel bir çözüm üzerinde çalışıyorum, ancak 60 yaşın altında bir çözüm bulacağımdan şüpheliyim.

Yeni Düzenleme : REPLACEÖnemsiz çözümü bağlayan bir basit bulundu :

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

Çıkıyor REPLACEbu benim yedek karakteri etrafında tırnak ortadan kaldırarak 2 karakter kaydetmenize olanak sağlar, böylece bir dizeye bir rakamının örtük dönüştürme yapacağız.

Bir değişkene koymaya çalışmak, DECLARE(69 bayt) ek yükü nedeniyle çok uzun :

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


8
Bu cevap tamamen iyi @juniorRubyist
Bay

Tamam. Bu inişi oyladım.
juniorRubyist

Teşekkürler. Başlangıçta çıkış sınırlamasını zor kodlamaya atıfta bulunduğunuzu düşündünüz , ancak kolmogorov karmaşıklığı için buna izin verildi. Sadece etkili değil.
BradC

9

Python 2.7, 55 bayt

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

Gayet basit. Önde gelen ve sondaki yeni satırları içerir.


13
Bir işlev olması gerekmez.
totallyhuman


6

Sakız , 43 bayt

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

Çevrimiçi deneyin!


3
Bu dil <s> </s> "kuralların" kötüye kullanılması gibi hissettiriyor, sanırım onları değiştirmeliyiz ki @Dennis dili biraz değiştirmek zorunda kalacak
Stephen

@StephenS TBH, katılıyorum. Bununla birlikte, neyse ki kolmogorov karmaşıklığı için optimize edilmiş diller (Jelly, 05AB1E, V, SOGL, bazıları) genellikle ucuz hissetmeden onu yenebilir.
DJMcMayhem

11
@StephenS Eğer bir meydan okuma en iyi Bubblegum ile çözülmüşse, dilin değil meydan okumanın hatasıdır. Kurallar avukatlık yerine daha ilginç zorluklar yazın.
Anders Kaseorg

6

05AB1E , 31 29 26 bayt

Emigna sayesinde -3 Byte

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

Çevrimiçi deneyin!

açıklama

")-*-*-*^_".∞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
Bunun .∞yerineû¨'(«
Emigna

Bunun bir şekilde var olması gerektiğini biliyordum! Teşekkürler adam
Datboi

Boşver, ne gönderdiğim eşdeğer lol oldu.
Sihirli Ahtapot Urn

Bir süre geçtiğini biliyorum, ama ")-*-*-*^_"değerini değiştirerek bir bayt kaydedebilirsiniz ')„-*Є^_J. :)
Kevin Cruijssen


5

JavaScript, 56 bayt

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

JavaScript (ES6), 50 48 bayt (işlev)

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

Rick Hitckcock sayesinde -2 bayt


Neden alert? Bir işlevi kullanarak birkaç bayt kaydedin.
Shaggy

@Shaggy biliyorum, sadece düzenledi, ama şu anda OP ekran gösteriyor ve henüz yorumuma cevap vermedi
Stephen


4
@juniorRubyist genellikle tam bir programa veya işleve izin veririz. OP değeri görüntülemek yerine değeri döndüren işlevlere izin verildiğini belirtmedi, bu nedenle ikinci iki girişime izin verilmeyebilir. Bununla birlikte, tam programlara (neredeyse) her zaman izin verilir ve JavaScript'in kaynağına ihtiyacı yoktur. Dosyamı alertbir .jsdosyaya kopyalayın ve tarayıcınızda çalıştırın, çalışır.
Stephen

_=>(s=")-*-*-*^_^*-*-*-(")+\ N ile 2 bayt kaydet | Hoşgeldin Kullanıcı! | \ n+s
Rick Hitchcock

4

C, 75 bayt

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

Bunun gibi 70 bayt; m=")-*-*-*^_^*-*-*-(";main(){printf("%s\n| Welcome User! |\n%s",m,m);}
cleblanc



4

MATLAB / Oktav, 53 bayt

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

Neden MATLAB / Python? Bu kesinlikle geçerli bir piton değil.
DJMcMayhem

@DJMcMayhem Üzgünüm Octave demek istedim. Yazım hatası fark ettiğiniz için teşekkürler. Tüm gün SO üzerinde python soruları yanıtlıyoruz bu yüzden beyin küçük bir aksaklık vardı :)
rayryeng - Reinstate Monica

Eğer ommit yaparsanız dispMatlab lider gösterecektir ans = \n.
Crowley

@Crowley Bu yüzden disptam çıktıya uymayacağı için oraya ihtiyacınız var.
rayryeng - Monica'yı

İzin ans = verilmezse 6 bayt kaydedebilirsiniz.
Crowley

4

Perl 5 , 49 bayt

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

Çevrimiçi deneyin!

$\Her birinden sonra örtülü olarak yazdırılan gerçeği kullanır print.


Ne olmuş say?
simbabque

1
@simbabque Bu fikir birliğini takip etme eğilimindeyim . Dahası, hepsini değiştirmek golfün tam printolarak saynerede olduğunu düşünmüyor. Ama kullanmayı bırakacak bir haçlı seferi yok say; Herkesin istediği gibi yapmasına izin verdim ve herkes mutlu :)
Dada

4

Kömür , 32 30 bayt

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

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı versiyonudur. Açıklama:

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

Çıktının sol üst kısmının ayna görüntüsünü yazdırır.

‖B¬             ReflectButterfly(:¬);

Üst ve alt çizgileri ve orta çizginin solunu oluşturmak için aşağı ve sola yansıtır.

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

Orta çizgiyi düzeltir.


(Neden iniş vekili?)
Neil

2
Görünüşe göre birisi bu meydan okumadaki cevapların çoğunu küçümsüyor, benim başvurum da etkilenenlerden biri.
Kritixi Lithos

3

Mathematica, 52 bayt

Column@{t=")-*-*-*^_^*-*-*-(","| Welcome User! |",t}

3

Golang, 82 bayt

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

Çevrimiçi deneyin!


Merhaba, PPCG'ye hoş geldiniz! Gönderiminiz, meta konsensusa göre metni çıktı olarak döndüren ve bu site için daha kısa ve daha iyi hale getirebilecek bir işlev olabilir.
SparklePony Yoldaş

Ah tamam, dikkatinizi çektiğiniz için teşekkürler. Bir düzenleme yapacağım.
ionk

fmtÜzgünüz , içe aktarmayı dahil etmelisiniz .
totallyhuman

@ totallyhuman bekleyin ama bu fonksiyonun bir parçası değil.
ionk


3

Minecraft İşlevleri , 77 bayt

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

Bu bile dizeyi sıkıştırmaya
çalışmıyor

2
@Okx Peki, yazdırabileceğiniz yalnızca sabit olmayan şeyler sayılar ve blok / öğe adları olduğunda bunu deneyin: p
dzaima

3

Braingolf , 55 bayt

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

Çevrimiçi deneyin!

Çıktıyı kodlamaktan 2 bayt daha kısa.

açıklama

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

Toplu, 70 bayt

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

Çoğunlukla bundan hoşlanıyorum çünkü tüm kaçış karakterleri ifadeyi ^_^sevimli bir Lovecraft iğrençliği gibi gösteriyor^^^^_^^^^


3

> <> , 56 54 bayt

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

Çevrimiçi deneyin!

AGourd tarafından kaydedilen 2 bayt


İlk satırınızda, birkaç karakteri kaydetmek için | "a"> "01p - |> 01pa'yı değiştirebilirsiniz
AGourd

@AGourd; Oh, bunu kaçırmış olmalıyım, işaret ettiğinizde basit görünüyor :) - Yakında düzenleyeceğim, teşekkürler.
mavisi Pelikan

2

V , 35 bayt

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

Çevrimiçi deneyin!

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

Açıklama:

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

Sıkıcı, ama sadece dizeleri kopyalamaktan daha az )-*-*-*^_^*-*-*-(ya | Welcome User! |da daha az bayt içinde bir yol bulamıyorum .

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

Çevrimiçi deneyin


Neden aşağı oy?
jacoblaw


2

Havuç , 51 bayt

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

Çevrimiçi deneyin!

açıklama

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

Neden inişli çıkışlı?
Kritixi Lithos


2

Vim, 38 Bayt

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

Yorumlarda kankalara çığlık atmak

Orijinal:

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

Nerede ^[olduğunu ESCtuşu


1
i)-*-*-*^_^*-*-*-(^]üst çizgiyi oluşturmak için çok daha kısadır. Ayrıca, YeşdeğerVy
DJMcMayhem

Aslında, DJ'in V cevap üst hat yapısını ödünç alırsanız, 2 bit i)^]8a-*^[r(9hR^_^^[
bayt'ı

Hepinize teşekkürler. Vim'i bir aydır kullanıyorum ve sadece yapıp yapamayacağımı görmeye çalışıyordum. Açıkçası benim iş akışına devam etmek için çok optimizasyon var
bioweasel

Son bir ipucu: "Hoşgeldin Kullanıcısı!" İçin yeni bir satır açmadan önce satırı çoğaltırsanız ^[, sonunda vurmanız gerekmez . YPo| Welcome User! |
DJMcMayhem

Görmek? bunun Pbir şey olduğunu bile bilmiyordum . Yine de bu harika. Teşekkürler!
bioweasel

2

Java 8, 62 bayt

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

Burada deneyin.

Veya tam program olarak ( 110 bayt ):

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

Burada deneyin.

Henüz bir Java cevabı bulunmamasına şaşırdım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.