Narysuj kształt serca


34

Wyzwanie

Narysuj kształt serca

enter image description here

... jak sztuka ASCII!

Twoja sztuka nie musi wyglądać dokładnie tak jak moja, ale musi wyglądać jak Kształt Serca.

Wnętrze serca musi zawierać słowa „Miłość” co najmniej 20 razy

Zasady

  • Program musi zapisać grafikę na konsoli.
  • Najkrótszy kod (w bajtach, w dowolnym języku) wygrywa.

Zwycięzca zostanie wybrany 14 lutego w Walentynki


2
Podoba mi się ten specyficzny dla kontekstu trend ascii-art . :)
Adam Maras

3
Aby być uczciwym golfem kodowym, myślę, że powinieneś podać bardziej restrykcyjną definicję wyników.
Howard

3
Czekam, aż ktoś przedstawi biologicznie dokładne serce. Ktokolwiek to zrobi, natychmiast otrzymuje ode mnie +1.
Joe

2
@JoeStead Twoje wyobrażenia o romantycznych atrybutach Walentynek wyglądają podejrzanie:D
VisioN

3
Byłoby znacznie lepiej jakopopularity-contest
SztupY

Odpowiedzi:


53

JavaScript [160 bajtów]

Poniższy kod wydaje się mieć 160 bajtów niesformatowanych.

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

Po prostu uruchom to w konsoli przeglądarki (np. W Firebug lub Chrome Dev Tools).


2
Zmiana /[lve]\d/na /../i użycie tablicy ['','Love','\n']zamiast obiektu pozwoli zaoszczędzić kolejne 10 bajtów, co łącznie prowadzi do 150 bajtów , ale serce źródłowe nie będzie już tak dobrze ukształtowane:)
VisioN

3
!!!Wspaniała praca!!!
SpYk3HH

1
Korzystanie z funkcji grubej strzałki pozwoli zaoszczędzić wiele bajtów. Zamień function(c){returnna c=>i usuń }. Powinieneś opublikować krótszą wersję!
Florent

2
Nie. EcmaScript 6.
Florent

1
@Florent Ah! O ile wiem ECMAScript 6 jest wciąż w fazie eksperymentalnej i niestety nadal bardzo trudno jest przetestować jego działanie. Załóżmy, że mój kod jest zgodny z ECMAScript 5 :)Ale dziękuję za zwrócenie uwagi! Mam nadzieję, że wkrótce JavaScript będzie konkurował z Perlem i Pythonem w sprawach golfa i każdy będzie mógł to wypróbować.
VisioN

27

GolfScript: 62 57 54 znaków

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

Wydajność:

    LOVE    LOVE
  LOVELOVELOVELOVE
LOVELOVELOVELOVELOVE
  LOVELOVELOVELOVE
    LOVELOVELOVE
      LOVELOVE
        LOVE

Lub, dla dodatkowej miłości i obowiązkowego nadużywania nieistotności białych znaków (dla 84 znaków):

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

Wydajność:

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

16

C - 183 bajtów

Nie zwycięzca, ale cała miłość. Czy możesz dowiedzieć się, jak to działa?

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

Wydajność:

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

6
Dobra robota Vna dole.
luser droog

1
Ładne wykorzystanie krzywej serca! Nadal możesz zapisać kilka znaków i zejść do 153 (nieznacznie zmieniłem też wynik kosztem jednego dodanego bajtu): ideone.com/ELnkEE
reima

Bardzo fajny. Nigdy nie byłem świetny w NAPRAWDĘ wyciskaniu bajtów. Powinieneś opublikować go jako swój własny C! Krzywa serca jest własnością publiczną :)

15

Python, 210 znaków

Oczywiście to nie wygra, ponieważ jest to golf golfowy, ale chciałem być kreatywny i nie użyłem tego słowa Lovew kodzie źródłowym:

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

To jest wynik:

   Love          Love
  LoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
      LoveLoveLove
          Love

Podoba mi się twoje podejście ^ _ ^
Navin

1
Korzystanie z gzip nie jest naprawdę kreatywne ...
nyuszika7h

15

Scala - 273 znaków

Cóż, na pewno nie oczekuję wygranej za zwięzłość, ale chciałem sprawdzić, czy uda mi się to zrobić w Scali. Mądrzejszy golfista prawdopodobnie mógłby ogolić kilka bajtów, ale oto co mam:

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}

Lub, jeśli wolisz (nadal ważny kod!)

  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}

Drukuje dwa półkola i trójkąt na ekranie, tworząc całkiem przyzwoitą kopię faksu serca.Picture of heart.scala output

Musi być uruchamiany za pomocą interpretera scala (kompilacja wymagałaby dodania dodatkowego crufta dla, object Main { def main(args: Array[String]) = { ... } }a ja po prostu nie mam nic z tego.


2
@epidemian Prawdopodobnie mógłbym sprawić, że będzie wyglądać bardziej jak normalne serce, ale źle oceniłem rozmiar kodu i byłem zbyt leniwy. Zamiast tego zrobiłem ogon. Lubię udawać, że to balon: p
KChaloux

12

Python 2, 117

drukuje dokładnie 20 loves poziomo.

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

wydajność:

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

Oszczędź niektóre znaki przez: użyj pojedynczego znaku zastępczego w ciągu 2 wiersza, a następnie replace()ich; w trzeciej linii printzmień jeden +na ,i 10 z 9; w ostatnim wierszu użyj wartości zmiennej x. pastebin.com/i1TSEZfE
manatwork

@manatwork Dziękujemy. Zmodyfikowałem teraz ciało do 121 znaków :-)
Wasi

Czy liczysz trzy pionowe loves po prawej stronie, które otrzymałeś przez przesunięcie poziomych loves?
Joshua Taylor

@JoshuaTaylor Dzięki, nie zauważyłem tych pionowych liter love. Wliczając te, loveliczba wyniesie 23: D
Wasi

11

Perl - 36 bajtów

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

Wydajność:

  LoveLove    LoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
        LoveLove

To trochę oszustwo; wypisze Loveraz na każde dwa znaki inne niż białe znaki w kodzie źródłowym. Przy wymaganej spacji do nadania kształtowi serca kod ma długość 61 bajtów: spłaszczony ma tylko 36 bajtów:

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

Perl - 60 bajtów

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

Wytwarza następujące:

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

Dokładnie 20 Love.


Krótkie wyjaśnienie
na żądanie

  • for'3h112a05e0n1l2j4f6b9'=~/./g
    To modyfikuje instrukcję print i iteruje każdy znak. Wyrażenie regularne /./oczywiście pasuje do jednego znaku, a w kontekście listy /./gzwróci listę wszystkich znaków w ciągu. Byłby to bardziej powszechny, ale nieco dłuższy sposób na napisanie tego for split//,'3h112a05e0n1l2j4f6b9'.
  • print$"x(15&ord),Love,$/x/\D/
    $"Domyślna zmienna domyślna to spacja. Ord inal wartość każdego znaku mod 16 sklepów przestrzenie number needed między sobą Lovepoprzez ciąg powtórzeń ( x). Na koniec, jeśli znak nie jest cyfrą ( /\D/), wartość $/, która domyślnie "\n"jest podana jest do końca.

twój drugi program zgłasza błąd: „błąd składni w -e wierszu 1, blisko” / \ D / for3h112a05e0n1l2j4f6b9 ” (próbował wywołać z wiersza poleceń przy użyciu -e)
Tomas

Z linii poleceń, trzeba będzie wymienić $"z ' ':perl -e "print' 'x(15&ord),Love,$/x/\D/for'3h112a05e0n1l2j4f6b9'=~/./g"
primo

OK, niezła sztuczka!
Tomas

Wersja 36-bajtowa tak naprawdę nie drukuje wymaganego wyjścia
Tobia

1
@simbabque gotowe.
primo

6

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

enter image description here


5

JavaScript - 147 141 137 133 133 znaków

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

Uwaga: zamieściłem inną odpowiedź, ale ta używa innego podejścia, a serce ma inny kształt.

Jak to działa :

enter image description here

Najpierw renderuję diament (równanie jest |x|+|y|), a następnie łączę dwa koła na górze. x wartości są dublowane (więc potrzebne jest tylko jedno koło).


1
Możesz skrócić swój kod, usuwając 0liczby zmiennoprzecinkowe i przypisując Math.absdo zmiennej.
Florent

Możesz także usunąć dwa bezużyteczne średniki od końca, aby zaoszczędzić kolejną parę bajtów.
VisioN

4

Sclipting - 28 znaków / 56 bajtów

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

Wydajność:

    LOVE    LOVE
  LOVELOVELOVELOVE
LOVELOVELOVELOVELOVE
  LOVELOVELOVELOVE
    LOVELOVELOVE
      LOVELOVE
        LOVE

(Lub 24 znakami: 긢꼙겱딧꽔밂各감啃갰啃긂밀⓶復냄뭖끐⓷復겠⓸復終- ale używa instrukcji, którą dodałem po opublikowaniu tego wyzwania, więc się nie liczy.)
Timwi

To jest 84 bajtów.
tobyink

Nie, ma 56 bajtów jako UTF-16.
Timwi

@ Timwi dla mnie mierzy 58 bajtów. Dziwny.
primo

@primo: To 56 bajtów. Jeśli zapisałeś go jako „Unicode” w Notatniku Windows, otrzymasz 58-bajtowy plik, który składa się z BOM UTF-16 (2 bajty) plus program 56-bajtowy.
Timwi

4

JavaScript - 136 121 115 113 znaków

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

Aby uruchomić: skopiuj wklej do konsoli przeglądarki (np .: Chrome lub Firefox)


["L","o","v","e"] => "Love"zapisze 11 bajtów.
VisioN

Naprawiony :). Dziękuję za sugestie.
tigrou

3

C, 116 znaków

(Nie wiem, czy ma on wystarczająco kształt serca ... wypełnia wnętrze trzech kółek, aby uzyskać efekt.)

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

Wydajność:

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

Wcześniej w trakcie gry w golfa, przed zastąpieniem stałych wyrażeń (zmień, Maby dostosować rozmiar):

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

Czułem się do tego zmuszony. : 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)];}

Jakiego rodzaju mistycznych opcji / kompilatora powinieneś użyć do jego skompilowania? All variables in C are typed en.wikibooks.org/wiki/C_Programming/Variables
Micka

1
@ Zmienne globalne @Micka są domyślnie zadeklarowane jako int, starsza funkcja zapożyczona z wersji wcześniejszej niż ANSI-C. Kompiluje mi się dobrze z clang foo.club gcc -std=c99 foo.c(z dużą ilością ostrzeżeń). Czy otrzymujesz jakieś błędy? Nie znam C na tyle dobrze, aby zagwarantować, że nie polegam na nieokreślonym zachowaniu, ale wierzę, że tego nie robię.
FireFly

1
Hmm, najwyraźniej nie jest to sankcjonowane przez żaden ze standardów - myślałem, że jest to legalne przynajmniej w C90, ale niestety tak nie jest. Pozostała więc tylko starsza rzecz z wersji wcześniejszej niż ANSI-C, którą większość kompilatorów i tak obsługuje (patrz [ten przypis] ( en.wikipedia.org/wiki/... na stronie wikipedia, np.)
FireFly

3

Ruby, 47 lub Golfscript, 41

Nudna odpowiedź.

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

Wersja golfa:

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

Wydajność:

 Love  Love
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
    Love

32
Lol, co za brzydkie serce! : D
Abbas

3

Ruby - 113 znaków

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

Wydajność:

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            

Aby być bardziej przejrzystym

enter image description here


3

Perl - 159 znaków

Niezbyt masywny golf ...

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)

To samo z dodaną białą spacją dla nieco lepszej czytelności ...

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
   )

Dane wyjściowe to ...

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

Pełne słowo „Miłość” jest zawarte (pionowo) 22 razy, a także liczne częściowe.


+1 za kreatywność. Nie pomyślałbym, żeby ustawić go pionowo.
Andrew Gies,

3

APL, 36 znaków / bajtów *

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

Należy to ocenić za pomocą ⎕IO←0 (wartość domyślna zależy od implementacji)

* APL można w razie potrzeby zapisać w jednym bajcie (o ile nie używasz żadnego innego znaku Unicode), więc N znaków = N bajtów do zliczania.

Wydajność:

Zawiera dokładnie 20 „Miłość”

  Love    Love
LoveLoveLoveLove
LoveLoveLoveLove
LoveLoveLoveLove
  LoveLoveLove
    LoveLove
      Love

2

Extended BrainFuck : 193 (liczony bez zbędnych białych znaków)

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

Przemienia się w:

Brainfuck: 264 (liczone bez zbędnych białych znaków)

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

Uruchamiasz go z dowolnym tłumaczem BF. Ubuntu ma bfi beefoba działają ładnie.

bf heart.bf

Dane wyjściowe (344 bajty):

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

Nieskluczony kod EBF:

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

Sformatowany:

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

Wydajność:

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

2

Python, 334 bajtów

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

wydajność:

enter image description here


1
Witamy w PPCG. To jest kod golfowy, więc w odpowiedzi podaj liczbę bajtów swojego kodu. Proszę również podać, jaki to język.
Martin Ender

@ MartinBüttner, jaki masz na myśli język? i to jest 334 bajty
Yanti

1
Język programowania, w którym napisałeś ten kod.
Martin Ender

Wiem ! To jest Python! Aha, możesz usunąć strpołączenie z powtórzeniami ciągów, ponieważ *ma wyższy priorytet niż +.
TuxCrafting,

W rzeczywistości ten kod ma 682 bajty.
TuxCrafting,

1

Perl - 97 znaków

Ta odpowiedź oparta jest na 121 znakowym rozwiązaniu Python @ Wasi.

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

Musisz uruchomić perla z -M5.010opcją włączenia funkcji specyficznych dla 5.10. Jest to najwyraźniej dozwolone .

Ciekawe funkcje:

  • Używam zmiennej $.do przechowywania słowa „miłość”. Dzieje się tak, ponieważ w razie potrzeby można natychmiast podać kolejne słowo. $.forjest jednoznacznie tokenizowany, $.po czym następuje for; $_fornie byłby tokenizowany w $_następujący sposób, forponieważ $_forsam jest legalną nazwą zmiennej.
  • $", używana jest wbudowana zmienna reprezentująca znak, z którym tablice zostaną połączone po interpolacji w łańcuch (i domyślnie jest to pojedynczy znak spacji) zamiast " " oszczędzania jednego znaku tu i tam.
  • Interpolacja ciągów znaków Perla .replaceznacznie przewyższa metodę Pythona w grze w golfa.
  • Perl for 0..4podobnie wygrywafor i in range(5)

1

CJam - 33 bajty

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

Wypróbuj online

Wydajność:

  Love    Love
LoveLoveLoveLove
LoveLoveLoveLove
LoveLoveLoveLove
  LoveLoveLove
    LoveLove
      Love

Wyjaśnienie:

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 bajtów

całkowicie kopia programuFOX'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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.