Vẽ hình trái tim


34

Thử thách

Vẽ hình trái tim

nhập mô tả hình ảnh ở đây

... như nghệ thuật ASCII!

Nghệ thuật của bạn không nhất thiết phải giống hệt tôi, nhưng nó phải giống hình trái tim.

Bên trong trái tim phải chứa dòng chữ "Yêu" ít nhất 20 lần

Quy tắc

  • Chương trình phải viết nghệ thuật vào bàn điều khiển.
  • Mã ngắn nhất (tính bằng byte, bất kỳ ngôn ngữ nào) sẽ thắng.

Người chiến thắng sẽ được chọn vào ngày 14 tháng 2 vào Ngày Valentine


2
Tôi thích xu hướng nghệ thuật ascii cụ thể theo ngữ cảnh này . :)
Adam Maras

3
Để trở thành một golf-code công bằng, tôi nghĩ bạn nên đưa ra một định nghĩa hạn chế hơn về đầu ra.
Howard

3
Tôi đang chờ đợi ai đó gửi một trái tim tìm kiếm chính xác về mặt sinh học. Bất cứ ai làm điều đó ngay lập tức nhận được +1 từ tôi.
Joe

2
@JoeStead Quan niệm của bạn về các thuộc tính lãng mạn của Ngày Valentine có vẻ đáng ngờ:D
VisioN

3
Điều này sẽ tốt hơn nhiều khipopularity-contest
SztupY

Câu trả lời:


53

JavaScript [160 byte]

Đoạn mã sau dường như là 160 byte không được định dạng.

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

Chỉ cần chạy cái này trong bảng điều khiển trình duyệt (ví dụ: trong Fireorms hoặc Chrome Dev Tools).


2
Thay đổi /[lve]\d/thành /../và sử dụng mảng ['','Love','\n']thay vì đối tượng sẽ tiết kiệm thêm 10 byte dẫn đến tổng cộng 150 byte , nhưng trái tim nguồn sẽ không còn được định hình nữa:)
VisioN

3
!!! Công việc tuyệt vời !!!
SpYk3HH

1
Sử dụng chức năng mũi tên chất béo sẽ tiết kiệm rất nhiều byte. Thay thế function(c){returnbằng c=>và loại bỏ }. Bạn nên đăng một phiên bản ngắn hơn!
Florent

2
Số EcmaScript 6.
Florent

1
@Florent Ah! Theo như tôi biết thì ECMAScript 6 vẫn đang thử nghiệm và thật không may, vẫn rất khó để kiểm tra cách thức hoạt động của nó. Giả sử mã của tôi tương thích ECMAScript 5 :)Nhưng cảm ơn bạn đã chỉ ra! Tôi hy vọng JavaScript sẽ sớm cạnh tranh với Perl và Python trong các vấn đề chơi gôn và mọi người sẽ có thể thử điều đó.
VisioN

27

GolfScript: 62 57 54 ký tự

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

Đầu ra:

    LOVE    LOVE
  LOVELOVELOVELOVE
LOVELOVELOVELOVELOVE
  LOVELOVELOVELOVE
    LOVELOVELOVE
      LOVELOVE
        LOVE

Hoặc, đối với một số tình yêu được thêm vào và lạm dụng bắt buộc không đáng kể khoảng trắng (đối với 84 ký tự):

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

Đầu ra:

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

16

C - 183 byte

Không phải là một người chiến thắng, mà là một tình yêu trọn vẹn. Bạn có thể tìm ra làm thế nào nó hoạt động?

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

Đầu ra:

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

6
Công việc tốt đẹp đặt Vở dưới cùng.
kẻ lừa đảo người lái xe

1
Đẹp sử dụng đường cong trái tim! Bạn vẫn có thể lưu một vài ký tự và giảm xuống 153 (Tôi cũng thay đổi đầu ra một chút với chi phí của một byte được thêm vào): ideone.com/ELnkEE
reima

Rất tuyệt. Tôi chưa bao giờ tuyệt vời khi vắt byte. Bạn nên đăng nó như của riêng bạn C! Đường cong trái tim là miền công cộng :)

15

Con trăn, 210 ký tự

Tất nhiên, điều này sẽ không thắng vì đây là môn đánh gôn, nhưng tôi muốn sáng tạo và tôi đã không sử dụng từ này Lovetrong mã nguồn của mình:

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

Đây là đầu ra:

   Love          Love
  LoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
      LoveLoveLove
          Love

Tôi thích cách tiếp cận của bạn ^ _ ^
Navin

1
Sử dụng gzip không thực sự sáng tạo ...
nyuszika7h

15

Scala - 273 nhân vật

Chà, tôi chắc chắn không mong đợi chiến thắng cho sự ngắn gọn, nhưng tôi muốn xem liệu tôi có thể làm điều đó ở Scala không. Một người chơi golf thông minh hơn có thể có thể loại bỏ một vài byte, nhưng đây là những gì tôi có:

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}

Hoặc, nếu bạn thích (vẫn còn mã hợp lệ!)

  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}

In ra hai hình bán nguyệt và một hình tam giác trên màn hình, tạo ra một bản sao khá đẹp của một trái tim.Hình ảnh đầu ra của heart.scala

Cần phải được chạy với trình thông dịch scala (biên dịch sẽ yêu cầu thêm một số hành trình bổ sung cho object Main { def main(args: Array[String]) = { ... } }và tôi chỉ không có điều đó.


2
@epidppy Có lẽ tôi đã có thể làm cho nó trông giống một trái tim bình thường hơn, nhưng tôi đã đánh giá sai kích thước của mã và quá lười biếng. Vì vậy, tôi đã làm một cái đuôi thay thế. Tôi thích giả vờ rằng đó là một quả bóng bay: p
KChaloux

12

Con trăn 2, 117

in chính xác 20 lovegiây theo chiều ngang.

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

đầu ra:

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

Thay thế một số ký tự bằng cách: sử dụng một trình giữ chỗ một chữ cái trong chuỗi của dòng thứ 2 sau đó replace()chúng; trong dòng thứ 3 printthay đổi một +thành ,10 và 9 bằng 9; trong dòng cuối cùng sử dụng giá trị của biến x. pastebin.com/i1TSEZfE
manatwork

@manatwork Cảm ơn bạn. Chỉnh sửa cơ thể bây giờ xuống còn 121 ký tự :-)
Wasi

Bạn đang đếm ba loves dọc ở bên phải mà bạn có bằng cách so le các loves ngang ?
Joshua Taylor

@JoshuaTaylor Cảm ơn, tôi đã không nhận thấy những loves dọc . Bao gồm cả những người loveđược tính sẽ là 23: D
Wasi

11

Perl - 36 byte

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

Đầu ra:

  LoveLove    LoveLove
LoveLoveLoveLoveLoveLove
  LoveLoveLoveLoveLove
    LoveLoveLoveLove
        LoveLove

Đây là một chút gian lận; nó sẽ in Lovemột lần cho mỗi hai ký tự khoảng trắng trong mã nguồn. Với khoảng trắng cần thiết để tạo hình trái tim, mã có độ dài 61 byte: làm phẳng nó chỉ có 36 byte:

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

Perl - 60 byte

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

Đầu ra như sau:

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

Chính xác là 20 Love.


Giải thích ngắn gọn
theo yêu cầu

  • for'3h112a05e0n1l2j4f6b9'=~/./g
    Điều này sửa đổi câu lệnh in và lặp lại qua từng ký tự. Regex /./rõ ràng khớp với một ký tự và trong ngữ cảnh danh sách /./gsẽ trả về một danh sách tất cả các ký tự trong chuỗi. Một cách phổ biến hơn, nhưng hơi dài hơn để viết này sẽ là for split//,'3h112a05e0n1l2j4f6b9'.
  • print$"x(15&ord),Love,$/x/\D/
    Các biến đặc biệt $"mặc định cho một không gian. Các ord giá trị inal của mỗi nhân vật mod 16 cửa hàng không gian số cần thiết giữa mỗi Lovethông qua chuỗi sự lặp lại ( x). Cuối cùng, nếu ký tự không phải là một chữ số ( /\D/), giá trị của $/, mặc định "\n"được xử lý đến cuối.

chương trình thứ hai của bạn đưa ra một lỗi: "lỗi cú pháp ở -e dòng 1, gần" / \ D / for3h112a05e0n1l2j4f6b9 " (đã cố gắng gọi từ dòng lệnh bằng cách sử dụng -e)
Tomas

Từ dòng lệnh, bạn sẽ cần thay thế $"bằng ' ':perl -e "print' 'x(15&ord),Love,$/x/\D/for'3h112a05e0n1l2j4f6b9'=~/./g"
primo

OK, mẹo hay đấy!
Tomas

Phiên bản 36 byte không thực sự in đầu ra cần thiết
Tobia

1
@simbabque xong.
Primo

6

Ngôn ngữ Wolfram (Mathicala) - 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}]

nhập mô tả hình ảnh ở đây


5

Javascript - 147 141 137 133 ký tự

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

Lưu ý: Tôi đã đăng một câu trả lời khác, nhưng câu trả lời này sử dụng cách tiếp cận khác và trái tim có hình dạng khác.

Làm thế nào nó hoạt động :

nhập mô tả hình ảnh ở đây

Đầu tiên, tôi vẽ một viên kim cương (phương trình là |x|+|y|) sau đó, tôi kết hợp hai vòng tròn trên đỉnh. giá trị x được nhân đôi (vì vậy chỉ cần một vòng tròn).


1
Bạn có thể rút ngắn mã của mình bằng cách xóa các 0số nổi trước và gán Math.abscho một biến.
Florent

Ngoài ra, bạn có thể muốn xóa hai dấu chấm phẩy vô dụng từ cuối để lưu một vài byte khác.
VisioN

4

Đánh bóng - 28 ký tự / 56 byte

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

Đầu ra:

    LOVE    LOVE
  LOVELOVELOVELOVE
LOVELOVELOVELOVELOVE
  LOVELOVELOVELOVE
    LOVELOVELOVE
      LOVELOVE
        LOVE

(Hoặc trong 24 ký tự: 긢꼙겱딧꽔밂各감啃갰啃긂밀⓶復냄뭖끐⓷復겠⓸復終- nhưng điều này sử dụng hướng dẫn, mà tôi đã thêm sau khi thử thách này được đăng, vì vậy nó không được tính.)
Timwi

Đây là 84 byte.
tobyink

Không, đó là 56 byte dưới dạng UTF-16.
Timwi

@Timwi đối với tôi nó đo 58 byte. Kì lạ
primo

@primo: Đó là 56 byte. Nếu bạn đã lưu nó dưới dạng Unicode Unicode Unicode trong Windows Notepad, bạn sẽ nhận được tệp 58 byte bao gồm UTF-16 BOM (2 byte) cộng với chương trình 56 byte.
Timwi

4

JavaScript - 136 121 115 113 ký tự

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

Để chạy: sao chép dán vào bảng điều khiển trình duyệt (ví dụ: Chrome hoặc Firefox)


["L","o","v","e"] => "Love"sẽ tiết kiệm 11 byte.
VisioN

Đã sửa :). Cảm ơn đã gợi ý.
tigrou

3

C, 116 ký tự

(Tôi không biết điều này có đủ hình trái tim không ... lấp đầy bên trong ba vòng tròn để tạo đầu ra.)

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

Đầu ra:

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

Trước đó trong quá trình chơi gôn, trước khi thay thế các biểu thức không đổi (thay đổi Mđể điều chỉnh kích thước):

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

Tôi cũng cảm thấy bắt buộc phải làm điều này. : 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)];}

Những loại tùy chọn / trình biên dịch bí ẩn nào bạn nên sử dụng để biên dịch nó? All variables in C are typed vi.wikibooks.org/wiki/C_Programming/Variabled
Micka

1
Các biến toàn cầu @Micka được khai báo ngầm là int, một tính năng kế thừa được mượn từ tiền ANSI-C. Nó biên dịch tốt cho tôi với clang foo.choặc gcc -std=c99 foo.c(mặc dù, với rất nhiều cảnh báo). Bạn có nhận được bất kỳ lỗi? Tôi không biết rõ về C đủ để đảm bảo rằng tôi không phụ thuộc vào hành vi không xác định, nhưng tôi tin rằng tôi không làm điều đó.
FireFly

1
Hrm, rõ ràng nó không bị xử phạt bởi bất kỳ tiêu chuẩn nào - tôi nghĩ rằng ít nhất nó là hợp pháp trong C90, nhưng than ôi, không phải vậy. Vì vậy, đó chỉ là một di sản còn sót lại từ trước ANSI-C mà hầu hết các trình biên dịch đều hỗ trợ (xem [chú thích này] ( en.wikipedia.org/wiki/ phỏng trên wikipedia, v.v.)
FireFly

3

Ruby, 47, hoặc Golfscript, 41

Chán câu trả lời.

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

Phiên bản golf:

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

Đầu ra:

 Love  Love
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
LoveLoveLove
    Love

32
Lol, thật là một trái tim xấu xí! : D
Abbas

3

Ruby - 113 Nhân vật

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

Đầu ra:

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            

Để rõ ràng hơn

nhập mô tả hình ảnh ở đây


3

Perl - 159 ký tự

Không chơi golf ồ ạt ...

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)

Tương tự với khoảng trắng được thêm vào để dễ đọc hơn một chút ...

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
   )

Đầu ra là ...

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

Toàn bộ từ "Tình yêu" được chứa trong (theo chiều dọc) 22 lần, cộng với nhiều phần.


+1 cho sự sáng tạo. Tôi sẽ không nghĩ làm cho nó thẳng đứng.
Andrew Gies

3

APL, 36 ký tự / byte *

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

Phải được đánh giá với ⎕IO←0(mặc định thay đổi theo cách thực hiện)

* APL có thể được viết trong bộ ký tự một byte nếu cần (miễn là bạn không sử dụng bất kỳ ký tự Unicode nào khác) vì vậy N chars = N byte cho mục đích đếm.

Đầu ra:

Chứa chính xác 20 "Tình yêu"

  Love    Love
LoveLoveLoveLove
LoveLoveLoveLove
LoveLoveLoveLove
  LoveLoveLove
    LoveLove
      Love

2

BrainFuck mở rộng : 193 (được tính không có khoảng trắng không cần thiết)

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

Trở thành:

Brainfuck: 264 (tính không có khoảng trắng không thiết yếu)

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

Bạn chạy nó với bất kỳ trình thông dịch bf. Ubuntu có bfbeefcả hai hoạt động độc đáo.

bf heart.bf

Đầu ra (344 byte):

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

Mã EBF không được cấp phép:

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

Định dạng:

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

Đầu ra:

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

2

Python, 334 byte

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

đầu ra:

nhập mô tả hình ảnh ở đây


1
Chào mừng đến với PPCG. Đây là mã golf, vì vậy vui lòng bao gồm số byte của mã của bạn trong câu trả lời. Xin vui lòng cho biết đây là ngôn ngữ gì.
Martin Ender

@ MartinBüttner bạn có ý nghĩa ngôn ngữ gì? và đây là 334 byte
Yanti

1
Ngôn ngữ lập trình bạn đã viết mã này.
Martin Ender

Tôi biết ! Đây là Python! Oh và bạn có thể loại bỏ strcuộc gọi với sự lặp lại chuỗi, bởi vì *có độ ưu tiên cao hơn +.
Thiền từ

Trên thực tế, mã này dài 682 byte.
Thiền từ

1

Perl - 97 ký tự

Câu trả lời này dựa trên giải pháp Python 121 ký tự của @ Wasi's.

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

Bạn cần chạy perl với -M5.010tùy chọn để bật các tính năng dành riêng cho 5.10. Điều này rõ ràng là cho phép .

Các tính năng thú vị:

  • Tôi sử dụng biến $.để lưu trữ từ "tình yêu". Điều này là bởi vì nó có thể được theo sau bởi một từ khác nếu cần thiết. $.forđược mã hóa rõ ràng $.theo sau for; $_forsẽ không được mã hóa $_theo sau bởi for$_forbản thân nó là một tên biến hợp pháp.
  • $", một biến tích hợp đại diện cho ký tự mà các mảng sẽ được nối với khi được nội suy thành một chuỗi (và mặc định là một ký tự khoảng trắng) được sử dụng thay vì " "tiết kiệm một ký tự ở đây và ở đó.
  • Nội suy chuỗi của Perl đánh bại con trăn .replace phương pháp đáng kể trong việc đánh gôn.
  • for 0..4Chiến thắng tương tự của Perlfor i in range(5)

1

CJam - 33 byte

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

Dùng thử trực tuyến

Đầu ra:

  Love    Love
LoveLoveLoveLove
LoveLoveLoveLove
LoveLoveLoveLove
  LoveLoveLove
    LoveLove
      Love

Giải trình:

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 byte

hoàn toàn là một bản sao của chương trìnhFOX :)

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.