Zeichnen Sie die Herzform


34

Herausforderung

Zeichnen Sie eine Herzform

Bildbeschreibung hier eingeben

... als ASCII-Kunst!

Deine Kunst muss nicht genau wie meine aussehen, aber sie muss wie eine Herzform aussehen.

Das Innere des Herzens muss mindestens 20 Mal die Worte "Liebe" enthalten

Regeln

  • Das Programm muss die Grafik in die Konsole schreiben.
  • Der kürzeste Code (in Byte, jede Sprache) gewinnt.

Der Gewinner wird am 14. Februar am Valentinstag ermittelt


2
Ich mag diesen kontextspezifischen ASCII-Kunst- Trend. :)
Adam Maras

3
Um ein fairer Code-Golfspieler zu sein, sollten Sie die Ausgabe meines Erachtens restriktiver definieren.
Howard

3
Ich warte darauf, dass jemand ein biologisch genau aussehendes Herz einsendet. Wer das macht, bekommt von mir sofort +1.
Joe

2
@ JoeStead Ihre Vorstellungen über romantische Attribute des Valentinstags sehen verdächtig aus:D
VisioN

3
Dies wäre viel besser gewesen alspopularity-contest
SztupY

Antworten:


53

JavaScript [160 Bytes]

Der folgende Code scheint 160 Byte unformatiert zu sein.

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

Führen Sie dies einfach in der Browserkonsole aus (z. B. in Firebug oder Chrome Dev Tools).


2
Ändern /[lve]\d/auf /../und unter Verwendung von Array ['','Love','\n']statt Objekt wird weitere 10 Bytes , die speichern 150 Bytes insgesamt, aber die Quelle Herz wird nicht so gut geformt sein mehr:)
VisioN

3
!!!Beeindruckende Arbeit!!!
SpYk3HH

1
Durch die Verwendung der Fettpfeil-Funktion werden viele Bytes gespart. Ersetzen function(c){returndurch c=>und entfernen }. Sie sollten eine kürzere Version posten!
Florent

2
EcmaScript 6.
Florent

1
@Florent Ah! Soweit ich weiß, ist ECMAScript 6 noch experimentell und es ist leider immer noch sehr schwer zu testen, wie es funktioniert. Nehmen wir an, mein Code ist ECMAScript 5-kompatibel. :)Vielen Dank für den Hinweis! Ich hoffe, dass JavaScript bald mit Perl und Python in Sachen Golf konkurrieren wird und dass jeder das ausprobieren kann.
VisioN

27

GolfScript: 62 57 54 Zeichen

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

Ausgabe:

    LOVE    LOVE
  LOVELOVELOVELOVE
LOVELOVELOVELOVELOVE
  LOVELOVELOVELOVE
    LOVELOVELOVE
      LOVELOVE
        LOVE

Oder für etwas mehr Liebe und den obligatorischen Missbrauch von Leerzeichen (für 84 Zeichen):

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

Ausgabe:

     ♥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

Kein Gewinner, aber eine ganze Menge Liebe. Können Sie herausfinden, wie es funktioniert?

#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;}

Ausgabe:

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

6
Netter Job, Vder unten setzt.
Luser Droog

1
Gute Verwendung der Herzkurve! Sie können immer noch ein paar Zeichen speichern und auf 153 zurückkehren (ich habe auch die Ausgabe geringfügig auf Kosten eines hinzugefügten Bytes geändert
reima

Sehr cool. Ich war noch nie großartig darin, Bytes WIRKLICH zusammenzudrücken. Du solltest es als dein eigenes posten C! Die Herzkurve ist gemeinfrei :)

15

Python, 210 Zeichen

Natürlich wird dies nicht gewinnen, weil es ein Code-Golf ist, aber ich wollte kreativ sein und habe das Wort in meinem Quellcode nicht verwendet Love:

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'))

Dies ist die Ausgabe:

   Love          Love
  LoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
      LoveLoveLove
          Love

Ich mag deine Annäherung ^ _ ^
Navin

1
Mit gzip ist nicht wirklich kreativ ...
Nyuszika7h

15

Scala - 273 Zeichen

Nun, ich erwarte sicher nicht, dass ich gewinnen kann, aber ich wollte sehen, ob ich es in Scala schaffen kann. Ein intelligenterer Golfer könnte sich wahrscheinlich mehrere Bytes abschneiden, aber ich habe Folgendes:

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}

Oder wenn Sie es vorziehen (noch gültiger Code!)

  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}

Druckt zwei Halbkreise und ein Dreieck auf den Bildschirm, wodurch ein hübsches Faksimile eines Herzens entsteht.Bild der Ausgabe von heart.scala

Muss mit dem Scala-Interpreter ausgeführt werden (für das Kompilieren müsste etwas mehr Cruft hinzugefügt werden, object Main { def main(args: Array[String]) = { ... } }und ich habe einfach nichts davon.


2
@epidemian Ich hätte es wahrscheinlich eher wie ein normales Herz aussehen lassen können, aber ich habe die Größe des Codes falsch eingeschätzt und war zu faul. Also habe ich stattdessen einen Schwanz gemacht. Ich
tue

12

Python 2, 117

druckt genau 20 loves 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

Ausgabe:

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

Ersparen Sie einige Zeichen durch: Verwenden Sie einen einzelnen Buchstabenplatzhalter in der Zeichenfolge der 2. Zeile und dann replace()diese; in der 3. Zeile wird printeins +zu ,und 10 mit 9 geändert ; Verwenden Sie in der letzten Zeile den Wert der Variablen x. pastebin.com/i1TSEZfE
Manatwork

@manatwork Danke. Bearbeitet den Körper jetzt auf 121 Zeichen :-)
Wasi

Zählen Sie die drei vertikalen loves auf der rechten Seite, die Sie durch Staffelung der horizontalen loves erhalten haben?
Joshua Taylor

@ JoshuaTaylor Danke, ich habe diese vertikalen loves nicht bemerkt . Einschließlich dieser wird die loveZählung 23 sein: D
Wasi

11

Perl - 36 Bytes

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

Ausgabe:

  LoveLove    LoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
        LoveLove

Das ist ein kleiner Betrug. Es wird Loveeinmal für jeweils zwei Zeichen im Quellcode gedruckt, die keine Leerzeichen sind. Mit dem erforderlichen Leerzeichen für die Herzform ist der Code 61 Byte lang: Abgeflacht sind es nur 36 Byte:

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

Perl - 60 Bytes

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

Gibt Folgendes aus:

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

Genau 20 Love.


Kurze Erklärung
auf Anfrage

  • for'3h112a05e0n1l2j4f6b9'=~/./g
    Diese ändert die print - Anweisung, und iteriert über jedes Zeichen. Der reguläre Ausdruck entspricht /./offensichtlich einem einzelnen Zeichen und gibt in einem /./gListenkontext eine Liste aller Zeichen in der Zeichenfolge zurück. Ein üblicherer, aber etwas längerer Weg, dies zu schreiben, wäre for split//,'3h112a05e0n1l2j4f6b9'.
  • print$"x(15&ord),Love,$/x/\D/
    Die Sondervariable ist $"standardmäßig ein Leerzeichen. Der ord inal Wert jedes Zeichens mod 16 speichert die Anzahl Räume zwischen jeweils benötigten Loveüber String Wiederholung ( x). Wenn es sich bei dem Zeichen nicht um eine Ziffer ( /\D/) handelt, wird der Wert von $/, der standardmäßig verwendet "\n"wird, bis zum Ende angeheftet.

Ihr zweites Programm gibt einen Fehler aus: "Syntaxfehler in Zeile 1, in der Nähe von" / \ D / for3h112a05e0n1l2j4f6b9 " (versucht, über die Befehlszeile aufzurufen -e)
Tomas,

Von der Kommandozeile aus müssen Sie ersetzen $"durch ' ':perl -e "print' 'x(15&ord),Love,$/x/\D/for'3h112a05e0n1l2j4f6b9'=~/./g"
primo

OK, schöner Trick!
Tomas

Die 36-Byte-Version druckt nicht die erforderliche Ausgabe
Tobia

1
@simbabque erledigt.
Primo

6

Wolfram-Sprache (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}]

Bildbeschreibung hier eingeben


5

Javascript - 147 141 137 133 Zeichen

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

Hinweis: Ich habe eine andere Antwort gepostet, aber diese verwendet einen anderen Ansatz und das Herz hat eine andere Form.

Wie es funktioniert :

Bildbeschreibung hier eingeben

Zuerst rendere ich einen Diamanten (Gleichung ist |x|+|y|), dann kombiniere ich oben zwei Kreise. x-Werte werden gespiegelt (es wird also nur ein Kreis benötigt).


1
Sie können Ihren Code verkürzen, indem Sie die 0vor dem Fließen stehenden Zahlen entfernen und Math.abseiner Variablen zuweisen .
Florent

Sie können auch zwei unnötige Semikolons am Ende entfernen, um weitere Bytes zu sparen.
VisioN

4

Sclipting - 28 Zeichen / 56 Bytes

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

Ausgabe:

    LOVE    LOVE
  LOVELOVELOVELOVE
LOVELOVELOVELOVELOVE
  LOVELOVELOVELOVE
    LOVELOVELOVE
      LOVELOVE
        LOVE

(Oder in 24 Zeichen: 긢꼙겱딧꽔밂各감啃갰啃긂밀⓶復냄뭖끐⓷復겠⓸復終- aber dies verwendet die Anweisung, die ich hinzugefügt habe, nachdem diese Herausforderung veröffentlicht wurde, damit sie nicht zählt.)
Timwi

Das sind 84 Bytes.
Tobyink

Nein, es ist 56 Bytes als UTF-16.
Timwi

@ Timwi für mich misst 58 Bytes. Ungerade.
Primo

@primo: Es sind 56 Bytes. Wenn Sie es im Windows-Editor als „Unicode“ gespeichert haben, erhalten Sie eine 58-Byte-Datei, die aus der UTF-16-Stückliste (2 Byte) und dem 56-Byte-Programm besteht.
Timwi

4

JavaScript - 136 121 115 113 Zeichen

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

Zum Ausführen: Kopieren Einfügen in die Browserkonsole (z. B. Chrome oder Firefox)


["L","o","v","e"] => "Love"spart 11 Bytes.
VisioN

Fest :). Danke für den Vorschlag.
Tigrou

3

C 116 Zeichen

(Ich weiß nicht, ob dies herzförmig genug ist ... füllt die Innenseite von drei Kreisen, um die Ausgabe zu erzeugen.)

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) ];
}

Ausgabe:

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

Vor dem Ersetzen konstanter Ausdrücke ( Mzum Anpassen der Größe ändern ):

#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) ];
  }
}

Ich fühlte mich auch dazu gezwungen. : 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)];}

Welche Art von mystischen Optionen / Compiler sollten Sie verwenden, um es zu kompilieren? All variables in C are typed de.wikibooks.org/wiki/C_Programming/Variables
Micka

1
Globale @ Micka-Variablen werden implizit als intein Legacy-Feature deklariert , das aus früheren ANSI-C- Versionen entlehnt wurde. Es kompiliert ganz gut für mich mit clang foo.coder gcc -std=c99 foo.c(allerdings mit vielen Warnungen). Hast du irgendwelche Fehler? Ich kenne C nicht gut genug, um zu garantieren, dass ich nicht auf undefiniertes Verhalten angewiesen bin, aber ich glaube , dass ich das nicht tue.
FireFly

1
Hrm, anscheinend ist es von keinem der Standards sanktioniert - ich dachte, dass es zumindest in C90 legal war, aber leider ist es nicht. Es ist also nur eine Legacy-Sache, die von den meisten Compilern vor ANSI-C noch unterstützt wurde (siehe [diese Fußnote] ( en.wikipedia.org/wiki/… auf Wikipedia zB).
FireFly

3

Ruby, 47 oder Golfscript, 41

Langweilige Antwort.

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

Golfscript-Version:

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

Ausgabe:

 Love  Love
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
    Love

32
Lol, was für ein hässliches Herz! : D
Abbas

3

Ruby - 113 Zeichen

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)}

Ausgabe:

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            

Um es klarer zu machen

Bildbeschreibung hier eingeben


3

Perl - 159 Zeichen

Nicht massiv golfen ...

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)

Hier ist das gleiche mit zusätzlichen Leerzeichen für etwas bessere Lesbarkeit ...

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
   )

Ausgabe ist ...

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

Das vollständige Wort "Liebe" ist (vertikal) 22-mal enthalten, plus zahlreiche Teilstriche.


+1 für Kreativität. Ich hätte nicht gedacht, es vertikal zu machen.
Andrew Gies

3

APL, 36 Zeichen / Byte *

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

Muss mit bewertet werden ⎕IO←0(die Standardeinstellung variiert je nach Implementierung)

* APL kann bei Bedarf in einem Einzelbyte-Zeichensatz geschrieben werden (solange Sie kein anderes Unicode-Zeichen verwenden), sodass zum Zählen N Zeichen = N Byte sind.

Ausgabe:

Enthält genau 20 "Love"

  Love    Love
LoveLoveLoveLove
LoveLoveLoveLove
LoveLoveLoveLove
  LoveLoveLove
    LoveLove
      Love

2

Extended BrainFuck : 193 (gezählt ohne nicht wesentliches Leerzeichen)

    {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+<]
        >....[-]<<+>>]>]

Verwandelt sich in:

Brainfuck: 264 (gezählt ohne nicht wesentliches Leerzeichen)

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

Sie können es mit jedem bf-Interpreter ausführen. Ubuntu hat bfund beefund beide funktioniert gut.

bf heart.bf

Die Ausgabe (344 Bytes):

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

Ungolfed EBF-Code:

>>--> ; 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"));}}

Formatiert:

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"));
    }
}

Ausgabe:

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

Ausgabe:

Bildbeschreibung hier eingeben


1
Willkommen bei PPCG. Dies ist Codegolf. Bitte geben Sie die Anzahl der Bytes Ihres Codes in die Antwort ein. Bitte geben Sie auch an, welche Sprache dies ist.
Martin Ender,

@ Martinbüttner welche sprache meintest du und das sind 334 Bytes
Yanti

1
Die Programmiersprache, in der Sie diesen Code geschrieben haben.
Martin Ender

Ich kenne ! Das ist Python! Oh und Sie können den strAufruf mit String-Wiederholungen entfernen , da *hat eine höhere Priorität als +.
TuxCrafting

Tatsächlich ist dieser Code 682 Bytes lang.
TuxCrafting

1

Perl - 97 Zeichen

Diese Antwort basiert auf der 121-stelligen Python-Lösung von @ Wasi.

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

Sie müssen Perl mit der -M5.010Option ausführen , um 5.10-spezifische Funktionen zu aktivieren. Dies ist anscheinend erlaubt .

Interessante Funktionen:

  • Ich verwende die Variable $., um das Wort "Liebe" zu speichern. Dies liegt daran, dass bei Bedarf sofort ein anderes Wort folgen kann. $.forwird eindeutig als $.gefolgt von gekennzeichnet for; $_forwürde nicht als Token $_gefolgt werden, forda $_fores sich um einen zulässigen Variablennamen handelt.
  • $"Anstelle von wird eine eingebaute Variable verwendet, die das Zeichen darstellt, mit dem Arrays verbunden werden, wenn sie in eine Zeichenfolge interpoliert werden (standardmäßig ein einzelnes Leerzeichen) " " hier und da eines Zeichens verwendet.
  • Perls String-Interpolation schlägt die Python- .replaceMethode beim Code-Golf erheblich.
  • Perl ist for 0..4ähnlich überzeugtfor i in range(5)

1

CJam - 33 Bytes

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

Probieren Sie es online aus

Ausgabe:

  Love    Love
LoveLoveLoveLove
LoveLoveLoveLove
LoveLoveLoveLove
  LoveLoveLove
    LoveLove
      Love

Erläuterung:

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

total eine Kopie von 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
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.