Desenhe a forma do coração


34

Desafio

Desenhe uma forma de coração

insira a descrição da imagem aqui

... como arte ASCII!

Sua arte não precisa se parecer exatamente com a minha, mas deve ter a forma de um coração.

O interior do coração deve conter as palavras "Amor" pelo menos 20 vezes

Regras

  • O programa deve gravar a arte no console.
  • O código mais curto (em bytes, qualquer idioma) vence.

O vencedor será escolhido no dia 14 de fevereiro no dia dos namorados


2
Eu gosto dessa tendência ascii-art específica ao contexto . :)
Mara Adam Mar

3
Para ser um código-golfe justo, acho que você deve dar uma definição mais restritiva da saída.
Howard

3
Estou esperando alguém enviar um coração com aparência biologicamente precisa. Quem faz isso imediatamente recebe um +1 de mim.
Joe

2
@JoeStead Suas noções sobre atributos românticos do Dia dos Namorados olhar desconfiado:D
Visão

3
Este teria sido melhor tanto como umpopularity-contest
SztupY

Respostas:


53

JavaScript [160 bytes]

O código a seguir parece ter 160 bytes não formatados.

   ('l2v2l6v2'+  'e1l1v3l2'+
 'v3e1v7e1v7e1v7e1l2v6e1l4v5'+
'e1l6v4e1l8v3e1l7l3v2e1l9l3v1')
 .replace(/[lve]\d/g,function
   (c){return Array(-~c[1]).
      join({l:' ',v:'Love'
         ,e:'\n'}[c[0
             ]])})

Simplesmente execute isso no console do navegador (por exemplo, no Firebug ou no Chrome Dev Tools).


2
Alterando /[lve]\d/a /../e usando um array ['','Love','\n']em vez de objeto vai economizar mais 10 bytes levando a 150 bytes no total, mas o coração fonte não será tão bem em forma mais:)
visão

3
!!!Trabalho incrível!!!
SpYk3HH

1
O uso da função de seta gorda economizará muitos bytes. Substitua function(c){returnpor c=>e remova }. Você deve postar uma versão mais curta!
Florent

2
Não. EcmaScript 6.
Florent

1
@Florent Ah! Tanto quanto sei, o ECMAScript 6 ainda é experimental e, infelizmente, ainda é muito difícil testar como funciona. Vamos supor que meu código seja compatível com ECMAScript 5, :)mas obrigado por apontar! Espero que em breve o JavaScript concorra com o Perl e o Python em assuntos de golfe e que todos possam experimentar isso.
VisioN 23/01

27

GolfScript: 62 57 54 caracteres

4 1.5\.5,+{.5\-\2*\0.}/]4/{[32'LOVE']2*]zip{(*}%''+}%~

Saída:

    LOVE    LOVE
  LOVELOVELOVELOVE
LOVELOVELOVELOVELOVE
  LOVELOVELOVELOVE
    LOVELOVELOVE
      LOVELOVE
        LOVE

Ou, por algum amor adicional e pelo abuso obrigatório de insignificância em espaço em branco (para 84 caracteres):

    5 1       .8\
  .)...5   ,{.5\-\3
 *\0.}/]4 /{[32[9829
  :x.'LOVE'\]''+]2
    *[@;]zip{(*}%
     ''+}%~' '15
        *x[]+
          +

Saída:

     ♥LOVE♥        ♥LOVE♥
  ♥LOVE♥♥LOVE♥  ♥LOVE♥♥LOVE♥
♥LOVE♥♥LOVE♥♥LOVE♥♥LOVE♥♥LOVE♥
   ♥LOVE♥♥LOVE♥♥LOVE♥♥LOVE♥
      ♥LOVE♥♥LOVE♥♥LOVE♥
         ♥LOVE♥♥LOVE♥
            ♥LOVE♥
               ♥

16

C - 183 bytes

Não é um vencedor, mas muito amor. Você pode descobrir como isso funciona?

#include <stdio.h>
#define C(a) ((a)*(a)*(a))
int main(){int x,y;for(y=9;y>-6;y--){for(x=-8;x<9;x++)putchar(C(x*x+y*y-25)<25*x*x*y*y*y?"LOVE"[(x+10)%4]:'-');putchar('\n');}return 0;}

Saída:

-----------------
--LOVE-----OVEL--
-ELOVEL---LOVELO-
-ELOVELO-ELOVELO-
-ELOVELO-ELOVELO-
-ELOVELOVELOVELO-
--LOVELOVELOVEL--
--LOVELOVELOVEL--
---OVELOVELOVE---
----VELOVELOV----
----VELOVELOV----
------LOVEL------
-------OVE-------
--------V--------
-----------------

6
Bom trabalho colocando Vno fundo.
Luser droog

1
Bom uso da curva do coração! Você ainda pode salvar um casal de personagens e descer a 153 (I também mudou a saída ligeiramente ao custo de um byte adicionado): ideone.com/ELnkEE
reima

Muito legal. Eu nunca fui ótimo em realmente espremer bytes. Você deve publicá-lo como seu C! A curva do coração é de domínio público :)

15

Python, 210 caracteres

Claro, isso não vai ganhar, porque é um código de golfe, mas eu queria ser criativo e não usei a palavra Loveno meu código-fonte:

import gzip
print(gzip.decompress(b'\x1f\x8b\x08\x00\x95\x10\xe0R\x02\xffSPP\xf0\xc9/KU\x80\x03\x10\x8f\x0bB\xa1c.l\x82dJ\xe0\xb0\x01\xe6\x02\x0cATa.T\xf7\x02\x00\xd9\x91g\x05\xc5\x00\x00\x00').decode('ascii'))

Esta é a saída:

   Love          Love
  LoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
      LoveLoveLove
          Love

Eu gosto da sua abordagem ^ _ ^
Navin

1
Usando gzip não é realmente criativo ...
nyuszika7h

15

Scala - 273 caracteres

Bem, certamente não espero ganhar por brevidade, mas queria ver se conseguiria em Scala. Um jogador mais esperto provavelmente poderia raspar vários bytes, mas aqui está o que eu consegui:

type D=Double;def w(x:D,y:D,a:D)={val(i,j)=(x-a,y-8);Math.sqrt(i*i+j*j)< 8};val l:Stream[Char]="love".toStream#:::l;val c=l.toIterator;def p(b:Boolean)=print(if(b)c.next else' ');for(y<-0 to 24){for(x<-0 to 32){if(y>7)p((16-x).abs< 24-y)else p(w(x,y,8)|w(x,y,24))};println}

Ou, se preferir (código ainda válido!)

  type D=      Double 
def w(x:D,    y:D,a:D)=
{val(i,j)=   (x-a,y -8);
Math.sqrt(i* i+j*j)< 8};
val l : Stream [Char] =
"love".toStream#:::l;val
 c= l .toIterator;def p
  (b:Boolean) =print(if
   (b)c.next else' ');
    for (y <-0 to 24) 
     { for (x<- 0 to
      32){if(y >7)
        p((16-x).
          abs < 
          24-y)
         else
        p(w
       (x,
       y,
      8
      )
      |
      w(
       x,
         y,
           24)
              )}
                 println}

Imprime dois semicírculos e um triângulo na tela, formando um fac-símile bastante decente.Imagem da saída heart.scala

Precisa ser executado com o intérprete scala (a compilação exigiria a adição de uma quantidade extra de crosta object Main { def main(args: Array[String]) = { ... } }e eu não tenho nada disso.


2
@epidemian Eu provavelmente poderia ter feito parecer mais um coração normal, mas julguei mal o tamanho do código e fiquei com preguiça. Então eu fiz uma cauda em seu lugar. Eu gosto de fingir que é um balão: p
KChaloux

12

Python 2, 117

imprime exatamente 20 loves na horizontal.

x="love";print"   x    x\nx xx x\nx   x   x".replace("x",x)
for i in range(5):print" "*i+x+" "*(9-i*2),x
print" "*6,x

saída:

   love    love
love lovelove love
love   love   love
love          love
 love        love
  love      love
   love    love
    love  love
       love

Poupe alguns caracteres usando: use um espaço reservado para uma única letra na string da 2ª linha e depois replace()eles; na terceira linha, printaltere um +para ,e 10 com 9; na última linha, use o valor da variável x. pastebin.com/i1TSEZfE
manatwork

@manatwork Obrigado. Editado o corpo agora para 121 caracteres :-)
Wasi 22/01

Você está contando os três loves verticais no lado direito que conseguiu ao escalonar os loves horizontais ?
Joshua Taylor

@ JoshuaTaylor Obrigado, eu não notei aqueles loves verticais . Incluindo os que a lovecontagem será 23: D
Wasi

11

Perl - 36 bytes

  open    0;s
/\S.?/Lo.ve
  /ge,print
    , , for
        <0>

Saída:

  LoveLove    LoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
        LoveLove

Isso é meio trapaceiro; ele será impresso Loveuma vez a cada dois caracteres de espaço não em branco no código-fonte. Com o espaço em branco necessário para dar forma ao coração, o código tem 61 bytes de comprimento: achatado, tem apenas 36 bytes:

open 0;s/\S.?/Lo.ve/ge,print,,for<0>

Perl - 60 bytes

print$"x(15&ord),Love,$/x/\D/for'3h112a05e0n1l2j4f6b9'=~/./g

Emite o seguinte:

   Love        Love
 Love Love  Love Love
Love     Love     Love
Love              Love
 Love            Love
  Love          Love
    Love      Love
      Love  Love
         Love

Exatamente 20 Love .


Breve explicação
por solicitação

  • for'3h112a05e0n1l2j4f6b9'=~/./g
    Isso modifica a instrução print e itera sobre cada caractere. A regex /./obviamente corresponde a um único caractere e, em um contexto de lista /./g, retornará uma lista de todos os caracteres da string. Uma maneira mais comum, mas um pouco mais longa, de escrever isso seriafor split//,'3h112a05e0n1l2j4f6b9' .
  • print$"x(15&ord),Love,$/x/\D/
    O $"padrão da variável especial é um espaço. O ord valor inal de cada personagem mod 16 lojas os espaços número necessário entre cada Lovevia repetição string ( x). Por fim, se o caractere não for um dígito ( /\D/), o valor de $/, cujo padrão "\n"é adiado até o final.

seu segundo programa gera um erro: "erro de sintaxe na linha -e 1, próxima a" / \ D / for3h112a05e0n1l2j4f6b9 " (tentou invocar a partir da linha de comando usando -e)
Tomas

Na linha de comando, você precisará substituir $"por ' ':perl -e "print' 'x(15&ord),Love,$/x/\D/for'3h112a05e0n1l2j4f6b9'=~/./g"
primo 31/01

OK, bom truque!
Tomas

A versão 36 byte na verdade não imprimir a saída necessária
Tobia

1
@simbabque done.
primo

6

Língua Wolfram (Mathematica) - 111

i=0;MatrixForm@Table[If[(x^2+y^2-200)^3+10x^2y^3<0,{"L","O","V","E"}[[i++~Mod~4+1]],""],{y,-20,20},{x,-20,20}]

insira a descrição da imagem aqui


5

Javascript - 147 141 137 133 caracteres

with(Math){s="";for(k=800;k--;)
x=abs(1.25-k%40/16),y=k/320-1.25,
s+=.75>x+abs(y)|.5>sqrt(x*x-x+y*y-y+.5)
?"Love"[k%4]:39==k%40?"\n":" "}s

Nota: Eu postei outra resposta, mas esta usa uma abordagem diferente e o coração tem uma forma diferente.

Como funciona :

insira a descrição da imagem aqui

Primeiro, renderizo um diamante (equação é |x|+|y|) e depois combino dois círculos no topo. Os valores x são espelhados (portanto, apenas um círculo é necessário).


1
Você pode encurtar seu código removendo os 0números flutuantes anteriores e atribuindo Math.absa uma variável.
Florent

Além disso, convém remover dois pontos e vírgulas inúteis do final para salvar mais alguns bytes.
VisioN

4

Sclipting - 28 caracteres / 56 bytes

겤뙡늆굚넰밌各긂밀❷거雙復냄뭖끐❸갰右거雙復겠⓸걠右復終

Saída:

    LOVE    LOVE
  LOVELOVELOVELOVE
LOVELOVELOVELOVELOVE
  LOVELOVELOVELOVE
    LOVELOVELOVE
      LOVELOVE
        LOVE

(Ou em 24 caracteres: 긢꼙겱딧꽔밂各감啃갰啃긂밀⓶復냄뭖끐⓷復겠⓸復終- mas isto usos da instrução, que eu adicionado após este desafio foi publicado, por isso não conta.)
Timwi

Isso é 84 bytes.
precisa saber é o seguinte

Não, são 56 bytes como UTF-16.
Timwi

@ Timwi para mim, mede 58 bytes. Ímpar.
primo

@primo: São 56 bytes. Se você o salvou como "Unicode" no Bloco de Notas do Windows, obtém um arquivo de 58 bytes que consiste na UTF-16 BOM (2 bytes) mais o programa de 56 bytes.
Timwi 30/01

4

JavaScript - 136 121 115 113 caracteres

s="";for(k=800;k--;)
x=1.25-k%40/16,y=k/320-1.25,
s+=Math.pow(x*x+y*y-1,3)<x*x*y*y*y
?"Love"[k%4]:39==k%40?"\n":" ";s

Para executar: copie e cole no console do navegador (por exemplo: Chrome ou Firefox)


["L","o","v","e"] => "Love"irá salvar 11 bytes.
VisioN 23/01

Fixed :). Obrigado pela sugestão.
tigrou

3

C, 116 caracteres

(Não sei se isso tem a forma de um coração suficiente ... preenche o interior de três círculos para produzir a saída.)

i = 192, x, y;
main(t) {
  for (; i--; putchar(i % 16? y : 10))
    y = i / 16 - 8,
    x = i % 16 - 8,
    t = x*x + y*y,
    y = " Levo"[ (t < 64 & y < 0 | t < 8*abs(x)) * (i % 4 + 1) ];
}

Saída:

 veLov   veLov 
oveLove oveLove
oveLove oveLove
oveLove oveLove
oveLoveLoveLove
oveLoveLoveLove
oveLoveLoveLove
 veLoveLoveLov 
 veLoveLoveLov 
  eLoveLoveLo  
    oveLove    

No início do processo de golfe, antes de substituir expressões constantes (altere Mpara ajustar o tamanho):

#define M 4

i = 3*M * 4*M, x, y;
main(t) {
  for (; i--; putchar(i % (4*M)? x : '\n')) {
    y = i / (4*M) - 2*M, x = i % (4*M) - 2*M,
    t = x*x + y*y, x = " Levo"[ (t < 4*M*M & y < 0 | t < abs(2*M*x)) * (1 + i % 4) ];
  }
}

Eu também me senti compelido a fazer isso. : P

#define F for
#define M main

 /*##     ####
####*/i  =192,x
,y;M(t) {F(;i--
;putchar(i %16?
y:10))y=i/16-8,
x=i%16-8,t=x*x+
y*y,y=" Levo"[(
 t<64&y<0|t<8*
  abs(x))*(i%
    4+1)];}

Que tipo de opções místicas / compilador você deve usar para compilá-lo? All variables in C are typed pt.wikibooks.org/wiki/C_Programming/Variables
Micka

1
As variáveis ​​globais do @Micka são declaradas implicitamente como int, um recurso herdado emprestado do pré-ANSI-C. Ele compila muito bem para mim com clang foo.cou gcc -std=c99 foo.c(no entanto, com muitos avisos). Você recebe algum erro? Não conheço C o suficiente para garantir que não dependo de comportamento indefinido, mas acredito que não faço isso.
FireFly

1
Hm, aparentemente, não é sancionado por nenhum dos padrões - eu pensei que era legal no C90 pelo menos, mas, infelizmente, não é. Portanto, é apenas uma coisa herdada do pré-ANSI-C que a maioria dos compiladores suporta de qualquer maneira (consulte [esta nota de rodapé] ( en.wikipedia.org/wiki/… na wikipedia, por exemplo).]
FireFly

3

Ruby, 47, ou Golfscript, 41

Resposta chata.

puts" Love  Love
"+"LoveLoveLove
"*6+"    Love"

Versão Golfscript:

" Love  Love
""LoveLoveLove
"6*"    Love"

Saída:

 Love  Love
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
    Love

32
Lol, que coração feio! : D
Abbas

3

Ruby - 113 Personagens

l=->a,b=28,c=1{puts (("Love"*a).center(b))*c};l.call(2,14,2);l.call(3,14,2);[7,7,7,6,5,4,3,2,1].map{|x|l.call(x)}

Saída:

1.9.3p448 :811 > l=->a,b=28,c=1{puts (("Love"*a).center(b))*c};l.call(2,14,2);l.call(3,14,2);[7,7,7,6,5,4,3,2,1].map{|x|l.call(x)}
   LoveLove      LoveLove   
 LoveLoveLove  LoveLoveLove 
LoveLoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLoveLove  
    LoveLoveLoveLoveLove    
      LoveLoveLoveLove      
        LoveLoveLove        
          LoveLove          
            Love            

Para ser mais claro

insira a descrição da imagem aqui


3

Perl - 159 caracteres

Não é massivamente golfado ...

printf"%-14s%14s\n",$_,~~reverse for map{($.,$i,$c)=split',';($"x$i).($.x$c)}qw(L,5,3 o,3,8 v,1,11 e,0,13 L,1,13 o,3,11 v,5,9 e,7,7 L,8,6 o,10,4 v,12,2 e,13,1)

Aqui está o mesmo com espaço em branco adicionado para facilitar a leitura ...

printf "%-14s%14s\n", $_, ~~reverse
   for map {
      ($.,$i,$c) = split',';
      ($"x$i).($.x$c)
   } qw(
      L,5,3
      o,3,8
      v,1,11
      e,0,13
      L,1,13
      o,3,11
      v,5,9
      e,7,7
      L,8,6
      o,10,4
      v,12,2
      e,13,1
   )

A saída é ...

     LLL            LLL     
   oooooooo      oooooooo   
 vvvvvvvvvvv    vvvvvvvvvvv 
eeeeeeeeeeeee  eeeeeeeeeeeee
 LLLLLLLLLLLLLLLLLLLLLLLLLL 
   oooooooooooooooooooooo   
     vvvvvvvvvvvvvvvvvv     
       eeeeeeeeeeeeee       
        LLLLLLLLLLLL        
          oooooooo          
            vvvv            
             ee             

A palavra completa "Amor" está contida (verticalmente) 22 vezes, mais numerosas parciais.


+1 para criatividade. Eu não teria pensado em torná-lo vertical.
Andrew Gies

3

APL, 36 caracteres / bytes *

7 16⍴∊'  ' 'Love'[20400948744⊤⍨36/2]

Deve ser avaliado com ⎕IO←0 (o padrão varia de acordo com a implementação)

* O APL pode ser gravado em um conjunto de caracteres de byte único, se necessário (contanto que você não use nenhum outro caractere Unicode), portanto, N chars = N bytes para fins de contagem.

Saída:

Contém exatamente 20 "amor"

  Love    Love
LoveLoveLoveLove
LoveLoveLoveLove
LoveLoveLoveLove
  LoveLoveLove
    LoveLove
      Love

2

BrainFuck estendido : 193 (contado sem espaço em branco não essencial)

    {h]<[<]<        [<}>>-->
-3>->-3>+9>+9>+>-7>+>->-5>+>->->
-3>+>+>>4->->6+>5+>>4+[-<4+>]<[-
<4+<5+<5+<5+4>&h++]>[-[-[<10+.[-]
    >-[[-]3<[-]]>[<4+3<[[->>
    +<<]<]]]>[[>]>[.>&h]<<++
        >]]>[<<4+[->8+<]
        >....[-]<<+>>]>]

Torna-se em:

Brainfuck: 264 (contado sem espaço em branco não essencial)

    >>-->->>        >->->>>+
    >>>>>>>>        >+>>>>>>
>>>+>->>>>>>>+>->->>>>>+>->->->>>
+>+>>---->->++++++>+++++>>++++[-<
++++>]<[-<++++<+++++<+++++<+++++>
>>>]<[<]<[<++]>[-[-[<++++++++++.[
    -]>-[[-]<<<[-]]>[<++++<<<
    [[->>+<<]<]]]>[[>]>[.>]<[
        <]<[<]<<++>]]>[<<
        ++++[->++++++++<]
            >....[-]<
             <+>>]>]

Você o executa com qualquer intérprete de bf. Ubuntu tem bfe beefe ambos funciona muito bem.

bf heart.bf

A saída (344 bytes):

    LOVELOVE        LOVELOVE
    LOVELOVE        LOVELOVE
LOVELOVELOVELOVELOVELOVELOVELOVE
LOVELOVELOVELOVELOVELOVELOVELOVE
LOVELOVELOVELOVELOVELOVELOVELOVE
LOVELOVELOVELOVELOVELOVELOVELOVE
    LOVELOVELOVELOVELOVELOVE
    LOVELOVELOVELOVELOVELOVE
        LOVELOVELOVELOVE
        LOVELOVELOVELOVE
            LOVELOVE
            LOVELOVE

Código EBF não destruído:

>>--> ; mark

;; ##  ##@   
;;########@
;;########@
;; ######@
;;  ####@
;;   ##@
;; the block below is the art above 
;; where space is replaced with ->
;; # with > and @ with +>
->>>->->>>+>
>>>>>>>>+>
>>>>>>>>+>
->>>>>>>+>
->->>>>>+>
->->->>>+>+>

;; we store the string LOVE after a blank
>
~"LOVE"<[<]<
[<++] ;; add 2 to every cell until mark

;; Variables
:new
:zero
:in
:next

@zero
$in(
  -[ ; 1
     -[ ; 2
        $zero 10+.[-]
        $in-[#[-]$new<[-] @in] ; its second round lf
        $next[#$in++++$new<[[->>+<<]<]]@new     ; 2   
      ]
      >[[>]>[.>]<[<]<[<]<<++>   ]@new
  ]>[@next $zero 4+(-$in 8+) $in.... (-) $new+ $in]@zero
)

2

C # 224

class P{static void Main(){for(int i=0,m=1;i<30;i++)for(int l=0;l<new[]{5,6,7,6,8,10,3,10,4,13,1,13,1,87,1,27,4,23,7,20,11,16,16,11,20,7,24,3,27,1}[i];l++,m++)System.Console.Write((i%2>0?"love"[m%4]:' ')+(m%29>0?"":"\n"));}}

Formatado:

class P
{
    static void Main()
    {
        for (int i = 0, m = 1; i < 30; i++)
            for (int l = 0; l < new[] { 5, 6, 7, 6, 8, 10, 3, 10, 4, 13, 1, 13, 1, 87, 1, 27, 4, 23, 7, 20, 11, 16, 16, 11, 20, 7, 24, 3, 27, 1 }[i]; l++, m++)
                System.Console.Write((i % 2 > 0 ? "love"[m % 4] : ' ') + (m % 29 > 0 ? "" : "\n"));
    }
}

Saída:

     velove       elovel
   ovelovelov   velovelove
 lovelovelovel velovelovelov
lovelovelovelovelovelovelovel
ovelovelovelovelovelovelovelo
velovelovelovelovelovelovelov
 lovelovelovelovelovelovelov
   elovelovelovelovelovelo
    ovelovelovelovelovel
      lovelovelovelove
         lovelovelov
           elovelo
             vel
              l

2

Python, 334 bytes

x = "love"
print("\t  love\t      love")
print("\t"+str(x*2)+"    "+str(x*2))
print("      "+str(x*6))
print(str(" "*5)+str(x*6)+"lo")
print(str(" "*5)+str(x*6)+"lo")
print("      "+str(x*6))
print("\t"+str(x*5))
print("\t"+str(" "*2)+str(x*4)+"l")
print("\t"+str(" "*4)+str(x*3)+"l")
print("\t"+str(" "*7)+str(x*2))
print("\t"+str(" "*10)+"v")

saída:

insira a descrição da imagem aqui


1
Bem-vindo ao PPCG. Este é um código de golfe, portanto, inclua o número de bytes do seu código na resposta. Indique também que idioma é esse.
Martin Ender

@ MartinBüttner que idioma você quis dizer? e isso é 334 bytes
Yanti 13/02/2015

1
A linguagem de programação que você escreveu este código no.
Martin Ender

Eu sei ! Este é o Python! Ah, e você pode remover a strchamada com repetições de sequência, porque *tem uma precedência maior que +.
TuxCrafting

Na verdade, esse código tem 682 bytes.
TuxCrafting

1

Perl - 97 caracteres

Esta resposta é baseada na solução Python de 121 caracteres do @ Wasi.

$.=love;say"   $.    $.$/$. $.$. $.$/$.   $.   $.";say$"x$_,$.,$"x(9-$_*2),$.for 0..4;say$"x 6,$.

Você precisa executar o perl com a -M5.010opção de ativar os recursos específicos da 5.10. Aparentemente, isso é permitido .

Recursos interessantes:

  • Eu uso a variável $.para armazenar a palavra "amor". Isso ocorre porque pode ser seguido imediatamente por outra palavra, se necessário. $.foré inequivocamente tokenizado, $.seguido de for; $_fornão seria tokenizado como $_seguido, forporque $_forele próprio é um nome de variável legal.
  • $", uma variável interna que representa o caractere ao qual as matrizes serão unidas quando interpoladas em uma string (e o padrão é um caractere de espaço único) é usada em vez de " " economizar um caractere aqui e ali.
  • A interpolação de strings do Perl vence o python .replace significativamente o método no golfe de código.
  • O Perl for 0..4também vencefor i in range(5)

1

CJam - 33 bytes

19285703234336595Zb["Love"SS+N]f=

Experimente online

Saída:

  Love    Love
LoveLoveLoveLove
LoveLoveLoveLove
LoveLoveLoveLove
  LoveLoveLove
    LoveLove
      Love

Explicação:

19285703234336595    number that contains the pattern as base-3 digits
Zb                   converts to base 3 (Z=3)
["Love"SS+N]         creates an array containing "Love", "  " and a newline
f=                   replaces the base-3 digits with the corresponding strings
                     (0 -> "Love", 1 -> "  ", 2 -> newline)

0

Bash, 170 bytes

totalmente uma cópia do programFOX's :)

echo '\x1f\x8b\x08\x00\x95\x10\xe0R\x02\xffSPP\xf0\xc9/KU\x80\x03\x10\x8f\x0bB\xa1c.l\x82dJ\xe0\xb0\x01\xe6\x02\x0cATa.T\xf7\x02\x00\xd9\x91g\x05\xc5\x00\x00\x00'|gunzip
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.