Crie um programa que, quando executado, exibe o texto abaixo:
)-*-*-*^_^*-*-*-(
| Welcome User! |
)-*-*-*^_^*-*-*-(
Use qualquer função ou idioma para responder a isso, divirta-se. O código mais curto vence
Crie um programa que, quando executado, exibe o texto abaixo:
)-*-*-*^_^*-*-*-(
| Welcome User! |
)-*-*-*^_^*-*-*-(
Use qualquer função ou idioma para responder a isso, divirta-se. O código mais curto vence
Respostas:
Guardado 2 bytes graças a @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
PRINT')-*-*-*^_^*-*-*-(
| Welcome User! |
)-*-*-*^_^*-*-*-('
O SQL permite dividir literais de string em linhas, para que esses retornos sejam contados.
Trabalhando em uma solução processual, mas duvido que encontre uma com menos de 60 anos.
Nova edição : encontrou um simples REPLACE
que vincula a solução trivial:
PRINT REPLACE('1
| Welcome User! |
1',1,')-*-*-*^_^*-*-*-(')
Acontece que REPLACE
isso fará uma conversão implícita de um numeral em uma string, portanto, isso permite salvar 2 caracteres, eliminando as aspas ao redor do caractere de substituição.
Tentar colocá-lo em uma variável é muito longo, devido à sobrecarga de DECLARE
(69 bytes):
DECLARE @ CHAR(17)=')-*-*-*^_^*-*-*-('PRINT @+'
| Welcome User! |
'+@
a="\n)-*-*-*^_^*-*-*-(\n"
print a+'| Welcome User! |'+a
Bem simples. Inclui novas linhas iniciais e finais.
main(i){for(;printf(")-*-*-*^_^*-*-*-(")&i--;puts("\n| Welcome User! |"));}
#define P puts(")-*-*-*^_^*-*-*-(") f(){P;puts("| Welcome User! |");P;}
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 Bytes graças a 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
.∞
vez deû¨'(«
")-*-*-*^_"
para ')„-*Є^_J
. :)
print(")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-(")
Create a program
alert(`${s=")-*-*-*^_^*-*-*-("}
| Welcome User! |
${s}`)
_=>(s=")-*-*-*^_^*-*-*-(")+`
| Welcome User! |
`+s
-2 bytes graças a Rick Hitckcock
alert
? Salve alguns bytes usando uma função.
alert
em um .js
arquivo e execute-o no seu navegador, ele será executado.
_=>(s=")-*-*-*^_^*-*-*-(")+
\ n | Bem-vindo Usuário! | \ n+s
main(){char*S=")-*-*-*^_^*-*-*-(";printf("%s\n| Welcome User! |\n%s",S,S);}
m=")-*-*-*^_^*-*-*-(";main(){printf("%s\n| Welcome User! |\n%s",m,m);}
_=>")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-("
Dois pelo preço de um:
s/^/)-*-*-*^_^*-*-*-(/p
x
s/^/| Welcome User! |/p
x
s/^/)-*-*-*^_^*-*-*-(\n| Welcome User! |/p
s/\n.*//
a=')-*-*-*^_^*-*-*-(';disp([a;'| Welcome User! |';a])
MATLAB / Python
? Definitivamente, este não é um python válido.
disp
Matlab mostrará a liderança ans = \n
.
disp
local, pois ele não está em conformidade com a saída exata.
ans =
não for permitido, você poderá salvar 6 bytes.
print$\=")-*-*-*^_^*-*-*-(","
| Welcome User! |
"
Usa o fato de que $\
é implicitamente impresso após cada um print
.
say
?
print
por say
não é realmente o ponto principal do golfe, na minha opinião. Mas não estou em nenhuma cruzada para parar de usar say
; Deixo que todos façam o que quiserem e todos estejam felizes :)
_^×*-³(⸿emocleW |‖B¬J¹¦¹ User!
Experimente online! Link é a versão detalhada do código. Explicação:
_^ Print("_^");
×*-³ Print(Times("*-", 3));
(⸿emocleW | Print("(\remocleW |");
Imprime a imagem espelhada da parte superior esquerda da saída.
‖B¬ ReflectButterfly(:¬);
Reflete para baixo e para a esquerda para criar as linhas superior e inferior e a esquerda da linha do meio.
J¹¦¹ JumpTo(1, 1);
User! Print(" User!");
Corrige a linha do meio.
func main(){var a string=")-*-*-*^_^*-*-*-(\n";Printf(a+"| Welcome User! |\n"+a)}
fmt
importação, desculpe.
tellraw @a {"text":")-*-*-*^_^*-*-*-(\n| Welcome User! |\n)-*-*-*^_^*-*-*-("}
22#)[#-#*]"^_^"[#*#-]#(V"
| Welcome User! |
"R!&@v&@R&@
É 2 bytes mais curto que codificar a saída.
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
<?=$a=")-*-*-*^_^*-*-*-(","\n| Welcome User! |\n$a";
@SET b=@ECHO )-*-*-*^^^^_^^^^*-*-*-(
%b%
@ECHO ^| Welcome User! ^|
%b%
Gosto principalmente deste, porque todos os personagens de escape fazem o emoticon ^_^
parecer uma adorável abominação de Lovecraft^^^^_^^^^
é)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 ! |
Explicação:
é) " 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
É chato, mas eu simplesmente não consigo encontrar uma maneira de criar )-*-*-*^_^*-*-*-(
ou | Welcome User! |
em menos bytes do que apenas copiar as 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
)-*-*-*\^_\^*-*-*-(
^*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
f=")-*-*-*^_^*-*-*-("
echo "$f
| Welcome User! |
$f"
i)^[8a-*^[r(9hR^_^^[Yo| Welcome User! |^[p
Grito aos manos nos comentários
Original:
i)-\*^[vhyl2pa^_^\*-^[vhyl2pa(^[Vyo| Welcome User! |^[p
Onde ^[
está a ESC
chave
i)-*-*-*^_^*-*-*-(^]
é muito mais curto para construir a linha superior. Além disso, Y
é equivalente aVy
i)^]8a-*^[r(9hR^_^^[
^[
no final. YPo| Welcome User! |
P
era uma coisa. Isso é incrível. Obrigado!
x->"".format("%s| Welcome User! |\n%<s",")-*-*-*^_^*-*-*-(\n")
Ou como programa completo ( 110 bytes ):
interface A{static void main(String[]a){System.out.printf("%s| Welcome User! |\n%<s",")-*-*-*^_^*-*-*-(\n");}}
Surpreendido, ainda não havia uma resposta em Java.