Vui lòng cho tôi một icecream


13

Làm ơn cho tôi một hình nón icecream

Chúng tôi có một tấn các địa điểm kem tuyệt vời ở đây ở New England. Hầu hết trong số họ đã đóng cửa cho mùa đông, vì vậy ...

   .-@@-.
  (======)
 (--------)
(==========)
(__________)
 \/\/\/\/\/
  \/\/\/\/
   \/\/\/
    \/\/
     \/

GOAL Xuất chính xác hình nón trên. (hoặc trả lại từ một hàm)

Đây là mã golf nên câu trả lời ngắn nhất sẽ thắng


Đây có vẻ như là một thách thức kỳ lạ, đơn giản là sẽ không thực hiện nó như là một chuỗi theo nghĩa đen về mặt kỹ thuật là một giải pháp cho một số ngôn ngữ được giải thích như JS / Python?
Jacob Persi

2
@JacobPersi Đây là một thử thách phức tạp kolmogorov cổ điển , trong đó mục đích là nén chuỗi đã cho càng nhiều càng tốt, mã hóa cứng có lẽ không quá golf
Ông

6
@MichaelD tổ chức nhiều ngôn ngữ được phát minh cho môn đánh gôn, nhưng điều đó không làm bạn nản lòng khi trả lời bằng ngôn ngữ sản xuất - ở đây đề xuất đưa ra các câu trả lời thú vị và một câu trả lời iCeCrEaMCoNesẽ không phải là một trong những ngôn ngữ đó. Trang web này thậm chí đã từng có một quy tắc mà bạn không thể trả lời bằng ngôn ngữ (/ sử dụng một tính năng) mới hơn thách thức, nhưng điều đó đã được thay thế bằng "không đưa ra câu trả lời tầm thường". Rốt cuộc, những ngôn ngữ chơi gôn này tồn tại chỉ để giải trí :)
dzaima

3
Hiểu. Tôi đã trả lời gần đây trong Arm Assembler. Rõ ràng là sẽ không giành chiến thắng, nhưng vui không kém :)
Michael Dorgan

1
@StevenH. Đây là bài đăng meta - nó hơi cũ, nhưng nhiều người vẫn chưa thấy nó
dzaima

Câu trả lời:


10

SOGL V0.12 , 24 byte

u%⅝⁾⁷‰┘Η:⅛6s⁹№K⌠RΝīL°‘§╬

Hãy thử nó ở đây!

Một giải pháp nén đơn giản:

....‘    push "@-.¶===(¶----(¶=====(¶_____(¶\/\/\¶/\/\¶\/\¶/\¶\"
     §   pad with spaces and reverse horizontally
      ╬  palindromize with 0 overlap and mirroring the characters

Không có phiên bản nén - lâu hơn vì nén SOGL hoạt động tốt cho việc này



8

PowerShell , 85 byte

"   .-@@-.
  (======)
 (--------)
($('='*10))
($('_'*10))"
1..5|%{" "*$_+'\/'*(6-$_)}

Hãy thử trực tuyến!

HOẶC LÀ

PowerShell , 85 byte

"   .-@@-.
  (======)
 (--------)"
'=','_'|%{"($($_*10))"}
1..5|%{" "*$_+'\/'*(6-$_)}

Hãy thử trực tuyến!

Bạn chọn đi. Trong cả hai trường hợp, ba dòng đầu tiên không có đủ byte để thực hiện bất kỳ loại nén nào trong PowerShell.

Trường hợp đầu tiên sử dụng phép nhân chuỗi để tạo ra mỗi độ dài 10 =_dòng, trong khi trường hợp thứ hai sử dụng phép nhân vòng lặp và chuỗi. Trong cả hai trường hợp, dòng cuối cùng tạo thành hình nón, lặp từ 1đến 5và mỗi lần lặp xuất ra số lượng khoảng trống thích hợp theo sau là số lượng hình nón phù hợp.

Tất cả các chuỗi đó được để lại trên đường ống và ẩn Write-Outputkhi hoàn thành chương trình cung cấp cho chúng tôi một dòng mới giữa các yếu tố miễn phí.


7

V , 48 46 byte

i\/5ñ>GÄXa/\ñS³ .-@@-.
  (¶=)
 (¸-)
(±=)
(±_)

Hãy thử trực tuyến!

Hexdump:

00000000: 695c 2f1b 35f1 3e47 c458 612f 5cf1 53b3  i\/.5.>G.Xa/\.S.
00000010: 202e 2d40 402d 2e0a 2020 28b6 3d29 0a20   .-@@-..  (.=). 
00000020: 28b8 2d29 0a28 b13d 290a 28b1 5f29       (.-).(.=).(._)

7

Than , 29 byte

@-.⸿E=-=⁺×ι⁺³κ)×_⁵P↙⁶)⸿‖M←¤/\

Hãy thử trực tuyến! Liên kết là phiên bản dài dòng của mã. Giải trình:

@-.⸿

In nửa bên phải của dòng đầu tiên.

E=-=⁺×ι⁺³κ)

Đối với mỗi ký tự =-=, lặp lại 3 lần cho lần đầu tiên và thêm thời gian cho mỗi ký tự tiếp theo, sau đó nối thêm một ), in từng kết quả trên dòng riêng của nó.

×_⁵

In 5 _giây.

P↙⁶

In cạnh của hình nón.

)⸿

In cuối cùng )và định vị con trỏ bên trong hình nón.

‖M←

Gương nửa hình nón.

¤/\

Làm đầy cơ thể của hình nón.


7

Python 2 , 86 byte

n=10
while n:print['\/'*n,'('+35/n*2*'-=_='[n%4]+')','.-@@-.'][-2%n/4].center(12);n-=1

Hãy thử trực tuyến!

Làm việc với giải pháp của Lynn .


-2%n/4thật tuyệt vời :) Bạn có tìm kiếm các biểu thức như thế bằng tay hoặc chạy một số loại tìm kiếm vũ phu?
Lynn

1
@Lynn Tôi chạy một bác sĩ vũ phu. Tôi cũng đã làm điều 35/n*2đó 5*7/n*2vì nó không được biết đến vì số nhiều chữ số.
xnor

1
Ồ, thật là gọn gàng. Tôi rất thích xem mã nguồn!
Lynn

5

Perl 6 , 115 95 94 92 90 byte

3 byte được lưu bởi AlexDaniel trong # perl6 trên irc.freenode.net

say "   .-@@-.
  (======)
 (--------)
({"="x 10})
({"_"x 10})";say(' 'x++$,'\/'x$--+5)xx 5

Hãy thử trực tuyến!


5

05AB1E , 42 byte

•3[ÜAʒg‰ŽÎ<\¦•6¡εS"-.@(=_"sèJ∞}'\∞5LRׂ˜.C

Hãy thử trực tuyến!


1026344463000063444446355555 hiện là Số Icecream b / c không ai khác đã sử dụng nó.


Full program: •3[ÜAʒg‰ŽÎ<\¦•6¡εS"-.@(=_"sèJ∞}'\∞5LRׂ˜.C
current >> •  ||  stack: []
current >> 6  ||  stack: [1026344463000063444446355555]
current >> ¡  ||  stack: [1026344463000063444446355555, '6']
current >> ε  ||  stack: [['102', '3444', '30000', '344444', '355555']]
For each: S"-.@(=_"sèJ∞
Full program: S"-.@(=_"sèJ∞
current >> S  ||  stack: ['102']
current >> "  ||  stack: [['1', '0', '2']]
current >> s  ||  stack: [['1', '0', '2'], '-.@(=_']
current >> è  ||  stack: ['-.@(=_', ['1', '0', '2']]
current >> J  ||  stack: [['.', '-', '@']]
current >> ∞  ||  stack: ['.-@']
stack > ['.-@@-.']
Full program: S"-.@(=_"sèJ∞
current >> S  ||  stack: ['3444']
current >> "  ||  stack: [['3', '4', '4', '4']]
current >> s  ||  stack: [['3', '4', '4', '4'], '-.@(=_']
current >> è  ||  stack: ['-.@(=_', ['3', '4', '4', '4']]
current >> J  ||  stack: [['(', '=', '=', '=']]
current >> ∞  ||  stack: ['(===']
stack > ['(======)']
Full program: S"-.@(=_"sèJ∞
current >> S  ||  stack: ['30000']
current >> "  ||  stack: [['3', '0', '0', '0', '0']]
current >> s  ||  stack: [['3', '0', '0', '0', '0'], '-.@(=_']
current >> è  ||  stack: ['-.@(=_', ['3', '0', '0', '0', '0']]
current >> J  ||  stack: [['(', '-', '-', '-', '-']]
current >> ∞  ||  stack: ['(----']
stack > ['(--------)']
Full program: S"-.@(=_"sèJ∞
current >> S  ||  stack: ['344444']
current >> "  ||  stack: [['3', '4', '4', '4', '4', '4']]
current >> s  ||  stack: [['3', '4', '4', '4', '4', '4'], '-.@(=_']
current >> è  ||  stack: ['-.@(=_', ['3', '4', '4', '4', '4', '4']]
current >> J  ||  stack: [['(', '=', '=', '=', '=', '=']]
current >> ∞  ||  stack: ['(=====']
stack > ['(==========)']
Full program: S"-.@(=_"sèJ∞
current >> S  ||  stack: ['355555']
current >> "  ||  stack: [['3', '5', '5', '5', '5', '5']]
current >> s  ||  stack: [['3', '5', '5', '5', '5', '5'], '-.@(=_']
current >> è  ||  stack: ['-.@(=_', ['3', '5', '5', '5', '5', '5']]
current >> J  ||  stack: [['(', '_', '_', '_', '_', '_']]
current >> ∞  ||  stack: ['(_____']
stack > ['(__________)']
current >> '  ||  stack: [['.-@@-.', '(======)', '(--------)', '(==========)', '(__________)']]
current >> ∞  ||  stack: [['.-@@-.', '(======)', '(--------)', '(==========)', '(__________)'], '\\']
current >> 5  ||  stack: [['.-@@-.', '(======)', '(--------)', '(==========)', '(__________)'], '\\/']
current >> L  ||  stack: [['.-@@-.', '(======)', '(--------)', '(==========)', '(__________)'], '\\/', '5']
current >> R  ||  stack: [['.-@@-.', '(======)', '(--------)', '(==========)', '(__________)'], '\\/', [1, 2, 3, 4, 5]]
current >> ×  ||  stack: [['.-@@-.', '(======)', '(--------)', '(==========)', '(__________)'], '\\/', [5, 4, 3, 2, 1]]
current >> ‚  ||  stack: [['.-@@-.', '(======)', '(--------)', '(==========)', '(__________)'], ['\\/\\/\\/\\/\\/', '\\/\\/\\/\\/', '\\/\\/\\/', '\\/\\/', '\\/']]
current >> ˜  ||  stack: [[['.-@@-.', '(======)', '(--------)', '(==========)', '(__________)'], ['\\/\\/\\/\\/\\/', '\\/\\/\\/\\/', '\\/\\/\\/', '\\/\\/', '\\/']]]
current >> .  ||  stack: [['.-@@-.', '(======)', '(--------)', '(==========)', '(__________)', '\\/\\/\\/\\/\\/', '\\/\\/\\/\\/', '\\/\\/\\/', '\\/\\/', '\\/']]
   .-@@-.
  (======)
 (--------)
(==========)
(__________)
 \/\/\/\/\/
  \/\/\/\/
   \/\/\/
    \/\/
     \/
stack > ['   .-@@-.\n  (======)\n (--------)\n(==========)\n(__________)\n \\/\\/\\/\\/\\/\n  \\/\\/\\/\\/\n   \\/\\/\\/\n    \\/\\/\n     \\/']

•3[ÜAʒg‰ŽÎ<\¦•               | Pushes 1026344463000063444446355555 to the stack.
-----------------------------+-------------------------------------------------
6¡                           | Split on 6's.
-----------------------------+-------------------------------------------------
  ε             }            | Loop on each piece to create the top of the icecream...
   S                         | Split into single chars.
    "-.@(=_"sè               | Substitute in the correct symbol for each number.
              J∞             | Join, then mirror.
-----------------------------+-------------------------------------------------
                 '\∞         | Push \/.
                    5LR      | Push [5,4,3,2,1]
                       ×     | Multiply '\/' by each 5,4,3,2 and 1.
                        ‚˜   | Join top to bottom.
                          .C | Center w/ newlines.

3

Bong bóng , 50 byte

00000000: 5350 50d0 d375 70d0 d5e3 5250 d0b0 0503  SPP..up...RP....
00000010: 4d2e 050d 5d28 d0e4 020b c224 34e2 e100  M...](.....$4...
00000020: a82a 461f 0681 9a91 980a 0896 0284 0161  .*F............a
00000030: 0100                                     ..

Hãy thử trực tuyến!


3

C, 171 byte

i;p(c,n,o){for(printf("%*c",o,i?32:40);n--;)printf(c);puts(i?"":")");}f(){p(".-@@-.",i=1,3);--i;p("=",6,3);p("-",8,2);p("=",10,1);p("_",10,1);for(i=6;--i;)p("\\/",i,6-i);}

Hãy thử trực tuyến!

C, 146 byte

f(){puts("   .-@@-.\n  (======)\n (--------)\n(==========)\n(__________)\n \\/\\/\\/\\/\\/\n  \\/\\/\\/\\/\n   \\/\\/\\/\n    \\/\\/\n     \\/");}

Chỉ cần in chuỗi mã hóa cứng.

Hãy thử trực tuyến!


1
Bạn có thể làm tốt hơn thế này tôi nghĩ ...
cleblanc




2

Perl 5 , 92 byte

say'   .-@@-.
  (======)
 (--------)
(==========)
(__________)';$_='\/'x6;say while s%\\/% %

Hãy thử trực tuyến!


Bạn không cần phải đếm đầu vào theo số byte? Nếu không, chỉ cần nhập toàn bộ chuỗi ...
cleblanc

Không có đầu vào. Đó chỉ là một TIO còn sót lại từ những thứ khác mà tôi đang làm.
Xcali

tuyệt, có nó cảm ơn.
cleblanc

+1. Bạn có thể lưu một cặp vợ chồng bằng cách sử dụng giải mã RLE, nhưng tôi không thể sử dụng ;như một dấu phân cách để s///làm việc vì một số lý do. Trên di động nên không thể làm gì quá nhiều! Hãy thử trực tuyến!
Dom Hastings


1

Python 3, 202 byte

Điều này là khá khủng khiếp, nhiều byte hơn là chỉ xác định chuỗi và in mà thậm chí.

print("   .-@@-.")
print("  ("+"="*6+")")
print(" ("+"-"*8+")")
print("("+"="*10+")")
print("("+"_"*10+")")
print(" "+"\/"*5)
print("  "+"\/"*4)
print("   "+"\/"*3)
print("    "+"\/"*2)
print("     \/")

Dùng thử trực tuyến


6
Bạn có thể sử dụng \nthay vì các printcâu lệnh riêng biệt
Nissa

148 byte sử dụng phương pháp này
Ông Xcoder

7
Chào mừng đến với PPCG!
admBorkBork

1

Thạch , 74 72 byte

5RU⁾\/ẋ
5R×⁶ż¢Y
3,6,8,10,10j1ż“ “.-@@-.¶  (“=“)¶ (“-“)¶(“=“)¶(“_“)¶”P€;¢

Hãy thử trực tuyến!

Giải trình:

5RU⁾\/ẋ    Link 1. Generate list of "\/"s for cone.
5RU        Range 5, reverse. Gets [5,4,3,2,1].
   ⁾\/     Literal string "\/".
      ẋ    Repeat. Gets ["\/\/\/\/\/","\/\/\/\/","\/\/\/","\/\/","\/"].

5R×⁶ż¢Y    Link 2. Generate rest of cone.
5R         Range 5. Gets [1,2,3,4,5].
  ×⁶       Repeat " " that many times. Gets [" ","  ","   ","    ","     "]
    ż¢     Zip that with the ¢ones. Gets a list of alternating space and cones.
      Y    Join with newlines. This puts it all together for the big cone.

3,6,8,10,10j1ż“ “.-@@-.¶  (“=“)¶ (“-“)¶(“=“)¶(“_“)¶”P€;¢    Link 3. Generate the top and put it on the cone.
10,10,8,6j1;1U                                                Generate list 3,1,6,1,8,1,10,1,10. Does this by joining [10,10,8,6] with ones, appending a one, and reversing.
               “   .-@@-.¶  (“=“)¶ (“-“)¶(“=“)¶(“_“)¶”        List of strings. This separates the completed parts from the non completed parts.
              ż                                               Zip 'em together. Gets [number, string, number, string, ...]
                                                      P€      Get the product of €ach. This completes the non completed strings by repeating them.
                                                        ;¢    Attach the ¢one to the end.

1

Toán học, 117 byte

Column[Join[{".-@@-."},"("<>#<>")"&/@{"="~(T=Table)~6,"-"~T~8,"="~T~10,"_"~T~10},T[""<>T["\/",i],{i,5,1,-1}]],Center]


Đầu ra
nhập mô tả hình ảnh ở đây

bạn có thể kiểm tra nó trên hộp cát wolfram (mặc dù các phông chữ họ sử dụng có thể phá hủy kết quả một chút)


Điều thú vị \/là một nhân vật đặc biệt. Tôi không thể tìm thấy những gì nó được sử dụng cho nên tôi hỏi về Mma.SE: mathematica.stackexchange.com/q/200673/61597
lirtosiast


1

C, 138 byte

f(i,j){puts("   .-@@-.\n  (======)\n (--------)\n(==========)\n(__________)");for(j=1;++j<7;i=puts(""))for(;i<7;)printf(i++<j?" ":"\\/");}

Hãy thử trực tuyến!


Đề xuất j=6;--j;puts(""))for(i=7;--i;)printf(&L"⽜ "[i>j]thay vìj=1;++j<7;i=puts(""))for(;i<7;)printf(i++<j?" ":"\\/"
trần mèo


1

C 165 byte

y,x,z;f(){for(puts("   .-@@-.");y++<9;)for(;x=++x%14;)z=y+3-y/4,putchar(x<13?y<5?x-7^z-1?7-x^z?abs(x-7)<z?y<4?y&1?61:45:95:32:40:41:x+y>16|y-x>3?32:x+y&1?92:47:10);}

1

Về cơ bản , 345 336 byte

⇒@@@
RU+30f1+3-00@-2+3@+4@@-4@+2-3@-110@+31-4@@+2-4@+10f1f1-3+0@-400@+31-4@+2-4@+3-10f1f1@@-4+1@-400@+11@+10f1f1f1@-3+0@-400@+11@+4110@f1f1f1-22@-400@+31-4@+220@-43@+43@-43@+43@-43@+43@-43@+43@-43@-4000@+31-4@@+220@-43@+43@-43@+43@-43@+43@-43@-4000@+31-4f1+220@-43@+43@-43@+43@-43@-4000@+31-4f1@+220@-43@+43@-43@-4000@+31-4f1@@+220@-43@

Tìm thấy thông qua công cụ này và đánh gôn thông qua tìm kiếm và thay thế, với một vài tối ưu hóa tùy chỉnh.

Hãy thử trực tuyến!


Phương pháp luân phiên:

391 byte (không sửa đổi khối)

+5/1+3@@@:1/1+5@5.0+2@@5.0-2@-4@:5/1+3@@:4/1+4@:5+2/1+51@@@@@@:5/1+4@:1/1+1@:5/1+3@:4/1+4@5.05.05.05.05.05.05.05.0:5/1+4@:1/1+1@:4/1+4@:5+2/1+51@@@@@@@@@@:5/1+4@:1/1+1@:4/1+4@:5/1+55@@@@@@@@@@-51@:1/1+1@:5/1+3@:2/1+55@-5@+5@-5@+5@-5@+5@-5@+5@-5@:1/1+1@:5/1+3@@:2/1+55@-5@+5@-5@+5@-5@+5@-5@:1/1+1@:5/1+3@@@:2/1+55@-5@+5@-5@+5@-5@:1/1+1@:5/1+3@@@@:2/1+55@-5@+5@-5@:1/1+1@:5/1+3@@@@@:2/1+55@-5@

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.