하트 모양 그리기


34

도전

하트 모양 그리기

여기에 이미지 설명을 입력하십시오

... ASCII 아트로!

당신의 예술은 나의 것과 똑같아 보일 필요는 없지만, 하트 모양처럼 보여야합니다.

마음의 내부에는 "사랑"이라는 단어가 적어도 20 번 들어 있어야합니다

규칙

  • 프로그램은 예술 작품을 콘솔에 써야합니다.
  • 가장 짧은 코드 (바이트, 모든 언어)가 이깁니다.

우승자는 2 월 14 일 발렌타인 데이에 선정됩니다.


2
나는이 맥락에 맞는 아스키 아트 트렌드를 좋아한다 . :)
Adam Maras

3
공정한 코드 골프가 되려면 출력에 대해 더 제한적으로 정의해야한다고 생각합니다.
Howard

3
누군가 생물학적으로 정확한 외모를 제출하기를 기다리고 있습니다. 누구든지 즉시 +1을받습니다.
Joe

2
@JoeStead 발렌타인 데이의 낭만적 인 속성에 대한 당신의 개념은 의심스러워 보인다:D
VisioN

3
이것은 많이로 더 좋았을 텐데popularity-contest
SztupY

답변:


53

자바 스크립트 [160 바이트]

다음 코드는 포맷되지 않은 160 바이트 인 것 같습니다 .

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

브라우저 콘솔 (예 : Firebug 또는 Chrome Dev Tools)에서이를 실행하면됩니다.


2
변경 /[lve]\d//../어레이 사용 ['','Love','\n']으로 이어지는 또 다른 10 바이트 저장됩니다 대신 개체를 150 바이트 총을하지만, 소스 마음이 아니라 더 이상 형성되지 않습니다:)
비전

3
!!!대단한 직업!!!
SpYk3HH

1
팻 화살표 기능을 사용하면 많은 바이트가 절약됩니다. 교체 function(c){return에 의해 c=>제거 }. 더 짧은 버전을 게시해야합니다!
Florent

2
EcmaScript 6.
Florent

1
@Florent 아! 내가 아는 한 ECMAScript 6은 여전히 ​​실험적이며 불행히도 작동 방식을 테스트하기는 여전히 어렵습니다. 내 코드가 ECMAScript 5와 호환된다고 가정 :)하겠습니다. 지적 해 주셔서 감사합니다! 곧 JavaScript가 골프 문제에서 Perl 및 Python과 경쟁하기를 희망하며 모든 사람들이 그것을 시도해 볼 수 있습니다.
VisioN

27

GolfScript : 62 57 54 자

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

산출:

    LOVE    LOVE
  LOVELOVELOVELOVE
LOVELOVELOVELOVELOVE
  LOVELOVELOVELOVE
    LOVELOVELOVE
      LOVELOVE
        LOVE

또는 약간의 사랑과 공백이 무의미한 남용 (84 자)을 위해 :

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

산출:

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

16

C-183 바이트

승자는 아니지만 많은 사랑을받습니다. 어떻게 작동하는지 알아낼 수 있습니까?

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

산출:

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

6
V바닥에 퍼팅 잘 했어 .
luser droog

1
심장 곡선의 좋은 사용! 여전히 몇 개의 문자를 저장하고 153으로 줄일 수 있습니다 (1 바이트 추가 비용으로 출력을 약간 변경했습니다). ideone.com/ELnkEE
reima

매우 시원합니다. 나는 바이트를 쥐어 짜는 데 능숙하지 않았습니다. 당신은 그것을 자신의 것으로 게시해야합니다 C! 심장 곡선은 공개 도메인입니다 :)

15

Python, 210 자

물론 이것은 코드 골프이기 때문에 이길 수는 없지만 창의력을 발휘하고 소스 코드에서 단어 를 사용 하지 않았습니다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'))

이것은 출력입니다.

   Love          Love
  LoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
      LoveLoveLove
          Love

나는 당신의 접근법을 좋아합니다 ^ _ ^
Navin

1
gzip을 사용하는 것은 실제로 독창적이지 않습니다 ...
nyuszika7h

15

스칼라-273 자

글쎄, 나는 간결하게 승리를 기대하지는 않지만 스칼라에서 그것을 할 수 있는지보고 싶었다. 똑똑한 골퍼는 아마도 몇 바이트를 깎을 수 있지만 여기에 내가 가진 것이 있습니다.

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}

또는 원하는 경우 (여전히 유효한 코드!)

  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}

화면에 두 개의 반원과 삼각형을 인쇄하여 꽤 괜찮은 마음의 팩스를 만듭니다.heart.scala 출력 그림

스칼라 통역사와 함께 실행해야합니다 (컴파일을 위해서는 여분의 주름을 추가해야하며 그중 object Main { def main(args: Array[String]) = { ... } }아무것도하지 않습니다.


2
@epidemian 아마 평범한 마음처럼 보이게 만들 수 있었지만 코드 크기를 잘못 판단하고 너무 게으르다. 그래서 대신 꼬리를 만들었습니다. 나는 그것이 풍선 인 척하고 싶다 : p
KChaloux

12

파이썬 2, 117

love가로로 정확히 20 초를 인쇄합니다 .

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

산출:

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

다음과 같은 방법으로 일부 문자를 교체하십시오. 두 번째 줄의 문자열에 단일 문자 자리 표시자를 사용하십시오 replace(). 3 선의의 print변경 일 +,9 10; 마지막 줄에서 변수 x의 값을 사용하십시오. pastebin.com/i1TSEZfE
manatwork

@manatwork 감사합니다. 본문을 121
Wasi

당신은 당신 love이 오른쪽에 세 가로 세로를 세고 가로 s 를 세고 love있습니까?
Joshua Taylor

@JoshuaTaylor 감사합니다, 나는 그 수직 loves를 보지 못했습니다 . 그것들을 포함하여 love카운트는 23 : D
Wasi

11

펄-36 바이트

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

산출:

  LoveLove    LoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
        LoveLove

이것은 약간의 속임수입니다. Love공백이 아닌 두 문자마다 소스 코드에서 한 번씩 인쇄됩니다 . 심장 모양을 만들기 위해 필요한 공백으로, 코드는 61 바이트의 길이 : 평평가 아니라 36 바이트 :

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

펄-60 바이트

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

다음을 출력합니다.

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

정확히 20 Love.


요청에 의한 간략한 설명

  • for'3h112a05e0n1l2j4f6b9'=~/./g
    이것은 인쇄 문을 수정 하고 각 문자를 반복합니다. 정규 표현식은 /./분명히 단일 문자와 일치하며 목록 컨텍스트 /./g에서 문자열의 모든 문자 목록을 반환합니다. 이것을 쓰는 것이 더 일반적이지만 약간 더 긴 방법은입니다 for split//,'3h112a05e0n1l2j4f6b9'.
  • print$"x(15&ord),Love,$/x/\D/
    특수 변수의 $"기본값은 공백입니다. ORD 각 문자 inal 값은 16 명을 저장 모드 사이에 각각 필요한 수의 스페이스 Love문자열 통해 반복 ( x). 마지막으로 문자가 숫자 ( /\D/) 가 아닌 경우의 값은 $/기본적으로 "\n"끝에 고정됩니다.

두 번째 프로그램에서 다음 오류가 발생합니다. "-e 행 1의 구문 오류,"/ \ D / for3h112a05e0n1l2j4f6b9 근처에 있음 " ( To를 사용하여 명령 줄에서 호출하려고 시도 함 -e)
Tomas

명령 행에서 다음 $"' '같이 바꿔야 합니다 .perl -e "print' 'x(15&ord),Love,$/x/\D/for'3h112a05e0n1l2j4f6b9'=~/./g"
primo

좋아, 좋은 트릭!
Tomas

36 바이트 버전은 실제로 필요한 출력을 인쇄하지 않습니다
Tobia

1
@simbabque 완료.
primo

6

볼프람 언어 (수학)-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}]

여기에 이미지 설명을 입력하십시오


5

자바 스크립트 - 147 141 137 133 자

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

참고 : 다른 답변을 게시했지만이 방법은 다른 접근 방식을 사용하고 심장의 모양은 다릅니다.

작동 방식 :

여기에 이미지 설명을 입력하십시오

먼저 다이아몬드를 (수식은 |x|+|y|) 렌더링 한 다음 두 개의 원을 맨 위에 결합합니다. x 값이 미러링되므로 하나의 원만 필요합니다.


1
0부동 소수점 숫자 를 제거하고 Math.abs변수에 할당 하여 코드를 줄일 수 있습니다 .
Florent

또한 두 개의 쓸모없는 세미콜론을 끝에서 제거하여 다른 몇 바이트를 절약 할 수도 있습니다.
VisioN

4

클리핑 — 28 자 / 56 바이트

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

산출:

    LOVE    LOVE
  LOVELOVELOVELOVE
LOVELOVELOVELOVELOVE
  LOVELOVELOVELOVE
    LOVELOVELOVE
      LOVELOVE
        LOVE

(또는 24 자) : 긢꼙겱딧꽔밂各감啃갰啃긂밀⓶復냄뭖끐⓷復겠⓸復終이 과제를 게시 한 후에 추가 한 지침을 사용 하므로 계산에 포함되지 않습니다.
Timwi

84 바이트입니다.
tobyink

아니요, UTF-16으로 56 바이트입니다.
Timwi

@Timwi는 58 바이트를 측정합니다. 이상한.
primo

@primo : 56 바이트입니다. Windows 메모장에서 "유니 코드"로 저장 한 경우 UTF-16 BOM (2 바이트)과 56 바이트 프로그램으로 구성된 58 바이트 파일이 생성됩니다.
Timwi

4

자바 스크립트 - 136 121 115 113 자

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

실행하려면 : 붙여 넣기를 브라우저 콘솔에 복사합니다 (예 : Chrome 또는 Firefox)


["L","o","v","e"] => "Love"11 바이트를 절약합니다.
VisioN

고정 :). 제안 해 주셔서 감사합니다.
tigrou

3

C, 116 자

(이것이 충분히 심장 모양인지는 모르겠습니다 ... 출력을 생성하기 위해 세 개의 원 안쪽을 채 웁니다.)

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

산출:

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

상수 식을 바꾸기 전에 골프 프로세스 초기에 ( M크기 조정으로 변경 ) :

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

나는 또한이 일을 강요 당했다고 느꼈다. :피

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

어떤 종류의 신비한 옵션 / 컴파일러를 컴파일해야합니까? All variables in C are typed en.wikibooks.org/wiki/C_Programming/Variables
Micka

1
@Micka 전역 변수는 암시 적 int으로 ANSI-C 이전에서 빌린 레거시 기능 으로 선언됩니다 . 그것은 clang foo.cgcc -std=c99 foo.c( 또는 많은 경고와 함께)를 위해 잘 컴파일됩니다 . 오류가 있습니까? 나는 정의되지 않은 행동에 의존하지 않는다는 것을 보증 할만 큼 C를 잘 모른다. 그러나 나는 그렇게하지 않는다고 믿는다 .
FireFly

1
Hrm, 분명히 그것은 어떤 표준에서도 제재되지 않았습니다. 적어도 그것이 C90에서는 합법적이라고 생각했지만 아쉽습니다. 그것은 대부분의 컴파일러 어쨌든 지원하는지 미리 ANSI-C에서 왼쪽 다만 기존의 일이 그래서 ([이 각주 (참조 en.wikipedia.org/wiki/... ) 위키 피 디아 예에 있습니다.
반딧불

3

루비 (47) 또는 골프 스크립트 (41)

지루한 답변.

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

골프 스크립트 버전 :

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

산출:

 Love  Love
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
    Love

32
롤, 못 생겼어! : D
Abbas

3

루비-113 자

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

산출:

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            

더 명확하게

여기에 이미지 설명을 입력하십시오


3

펄-159 자

대규모 골프는 아닙니다 ...

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)

약간 더 나은 가독성을 위해 공백이 추가 된 것과 동일합니다 ...

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
   )

출력은 ...

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

"사랑"이라는 완전한 단어는 (수직으로) 22 번에 여러 부분이 포함되어 있습니다.


창의력 +1 나는 그것을 수직으로 생각하지 않았을 것입니다.
Andrew Gies

3

APL, 36 자 / 바이트 *

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

로 평가해야합니다 ⎕IO←0(기본값은 구현에 따라 다름)

* 필요한 경우 (다른 유니 코드 문자를 사용하지 않는 한) APL은 단일 바이트 문자 세트로 작성 될 수 있으므로 계산을 위해 N 문자 = N 바이트입니다.

산출:

정확히 20 "사랑"을 포함

  Love    Love
LoveLoveLoveLove
LoveLoveLoveLove
LoveLoveLoveLove
  LoveLoveLove
    LoveLove
      Love

2

확장 된 BrainFuck : 193 (필수 공백이없는 것으로 계산)

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

로 바뀝니다 :

Brainfuck : 264 (필수 공백이없는 것으로 계산)

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

BF 인터프리터로 실행하십시오. 우분투는이 bfbeef둘 다 잘 작동합니다.

bf heart.bf

출력 (344 바이트) :

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

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

형식화 :

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

산출:

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

2

파이썬, 334 바이트

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

산출:

여기에 이미지 설명을 입력하십시오


1
PPCG에 오신 것을 환영합니다. 이것은 코드 골프이므로 답에 코드의 바이트 수를 포함하십시오. 이 언어가 무엇인지 설명하십시오.
Martin Ender 2013

@ MartinBüttner 무슨 언어를 의미합니까? 그리고 이것은 334 바이트입니다
Yanti

1
이 코드를 작성한 프로그래밍 언어.
Martin Ender

알아 ! 이것은 파이썬입니다! 아 보다 우선 순위가 높 str으므로 문자열 반복을 사용 하여 호출을 제거 할 수 있습니다 . *+
TuxCrafting 2016 년

실제로이 코드의 길이는 682 바이트입니다.
TuxCrafting 2016 년

1

펄-97 자

이 답변은 @Wasi의 121 자 Python 솔루션을 기반으로합니다.

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

-M5.0105.10 관련 기능을 활성화 하려면 옵션으로 perl을 실행해야 합니다. 이것은 분명히 허용 됩니다.

흥미로운 기능 :

  • 변수 $.를 사용하여 "love"라는 단어를 저장합니다. 필요한 경우 즉시 다른 단어가 올 수 있기 때문입니다. 다음 $.for과 같이 명확하게 토큰 화 $.됩니다 for. 그 자체가 유효한 변수 이름 이기 때문에 뒤에 나오는 $_for것처럼 토큰 화되지 않습니다 .$_for$_for
  • $", 문자열에 삽입 될 때 배열이 결합되는 문자를 나타내는 내장 변수 (기본값은 단일 공백 ​​문자)가 대신 사용됩니다. " " 여기 저기 하나의 문자를 저장 .
  • 펄의 문자열 보간법 .replace은 코드 골프에서 파이썬 방법보다 훨씬 뛰어납니다.
  • Perl for 0..4도 마찬가지로 이깁니다for i in range(5)

1

CJam-33 바이트

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

온라인으로 사용해보십시오

산출:

  Love    Love
LoveLoveLoveLove
LoveLoveLoveLove
LoveLoveLoveLove
  LoveLoveLove
    LoveLove
      Love

설명:

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

배쉬, 170 바이트

programFOX의 전체 사본 :)

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.