Bana bir dondurma al lütfen


13

Bana bir dondurma konisi yap lütfen

New England'da bir sürü harika dondurma yerimiz var. Çoğu kış için kapalı, bu yüzden ...

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

HEDEF Yukarıdaki dondurma konisini tam olarak çıktılayın. (veya bir işlevden döndürür)

Bu kod golf çok kısa cevap kazanır


Bu garip bir meydan okuma gibi görünüyor, sadece bir dize hazır bilgisi olarak teknik olarak JS / Python gibi bazı yorumlanmış diller için bir çözüm olarak yürütmek değil mi?
Jacob Persi

2
@JacobPersi Bu, verilen dizeyi olabildiğince sıkıştırmak olduğu klasik bir kolmogorov-karmaşıklık mücadelesi, hardcoding muhtemelen çok golf değil
Bay

6
@MichaelDorgan dillerin birçoğu edildi kod golf için icat, ama bu üretim dillerinde yanıtlayan sizi vazgeçirmek olmamalıdır - burada ilginç cevaplar upvote önerilir, ve bir cevap iCeCrEaMCoNeonlardan biri olmazdı. Bu site, meydan okumadan daha yeni bir dilde cevaplayamayacağınız (/ bir özelliği kullanamayacağınız) bir kurala sahipti, ancak bunun yerine "önemsiz cevapları yok etme" denildi. Sonuçta, bu golf dilleri sadece eğlence için var :)
dzaima

3
Anladım. Geçenlerde Arm Assembler'da yanıtladım. Açıkçası kazanamayacak, ama eğlenceli hiçbiri daha az :)
Michael Dorgan

1
@StevenH. İşte meta yazı - biraz eski, ama çoğu hala görmedi
dzaima

Yanıtlar:


10

SOGL V0.12 , 24 bayt

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

Buradan Deneyin!

Basit bir sıkıştırma çözümü:

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

Sıkıştırma sürümü yok - SOGLs sıkıştırması bunun için iyi çalıştığı için çok daha uzun



8

PowerShell , 85 bayt

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

Çevrimiçi deneyin!

VEYA

PowerShell , 85 bayt

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

Çevrimiçi deneyin!

İstediğini al. Her iki durumda da, ilk üç satırın PowerShell'de herhangi bir sıkıştırma yapmak için yeterli baytı yoktur.

İlk durumda 10 uzunluk =ve _çizgilerin her birini üretmek için dize çarpımı kullanılır , ikincisi ise döngü ve dize çarpımı kullanır. Her iki durumda da, son satır, koni oluşturur gelen döngü 1için 5ve boşluklar uygun sayıda çıkış, her yineleme konik parçaların uygun numarası.

Tüm bu dizeler ardışık düzende bırakılır ve Write-Outputprogramın tamamlanmasındaki örtük öğeler için ücretsiz bir satırsonu verir.


7

V , 48 46 bayt

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

Çevrimiçi deneyin!

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

Kömür , 29 bayt

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

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı versiyonudur. Açıklama:

@-.⸿

İlk satırın sağ yarısını yazdırın.

E=-=⁺×ι⁺³κ)

Karakterlerin her biri =-=için, ilk kez 3 kez ve sonraki her karakter için ek bir kez tekrarlayın, ardından )her sonucu kendi satırına yazdırarak a ekleyin .

×_⁵

5 _sn yazdırın .

P↙⁶

Koninin kenarını yazdırın.

)⸿

Finali yazdırın )ve imleci koninin içine konumlandırın.

‖M←

Yarım koniyi aynalayın.

¤/\

Koninin gövdesini doldurun.


7

Python 2 , 86 bayt

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

Çevrimiçi deneyin!

Kapalı çalışma Lynn'in çözümü .


-2%n/4çok havalı :) Böyle ifadeleri manuel olarak mı arıyorsunuz yoksa bir tür kaba kuvvet araması mı yapıyorsunuz?
Lynn

1
@Lynn Brute-forcer koştum. Bunu , çok haneli sayıları bilmediği 35/n*2için buldum 5*7/n*2.
xnor

1
Ohh, bu temiz. Kaynak kodunu görmek isterim!
Lynn

5

Perl 6 , 115 95 94 92 90 bayt

AlexDaniel tarafından # perl6 içinde irc.freenode.net adresinde kaydedilen 3 bayt

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

Çevrimiçi deneyin!


5

05AB1E , 42 bayt

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

Çevrimiçi deneyin!


1026344463000063444446355555 , şimdi başka hiç kimsenin kullanmadığı Dondurma Sayısı b / c'dir.


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

Sakız , 50 bayt

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                                     ..

Çevrimiçi deneyin!


3

C, 171 bayt

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

Çevrimiçi deneyin!

C, 146 bayt

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

Sadece sabit kodlu dizeyi yazdırır.

Çevrimiçi deneyin!






2

Perl 5 , 92 bayt

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

Çevrimiçi deneyin!


Girdiyi bayt sayısına doğru saymanıza gerek yok mu? Aksi takdirde tüm dizeyi girin ...
cleblanc

Hiçbir girdi yok. Bu sadece yaptığım başka bir şeyden kalan bir TIO artıydı.
Xcali

iyi, teşekkürler.
cleblanc

+1. RLE kod çözme kullanarak bir çift kaydedebilirsiniz, ama nedense çalışmak için ;bir sınırlayıcı olarak kullanmak alamadım s///. Mobilde çok fazla bir şey yapamazsınız! Çevrimiçi deneyin!
Dom Hastings

2

Ruby , 97 bayt

i=-1
puts ['   .-@@-.']+123455543.digits.map{|n|(i+=1;i<4?"(#{'=-=_'[i]*n*2})":'\/'*n).center 12}

Çevrimiçi deneyin!

İlk kez hiç Ruby kullanarak, bu yüzden ipuçları çok açıktır.


1

Python 3, 202 bayt

Bu oldukça korkunç, sadece dizeyi tanımlamak ve hatta yazdırmaktan daha fazla bayt.

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

Çevrimiçi Deneyin


6
\nAyrı printifadeler yerine kullanabilirsiniz
Nissa

Bu yaklaşımı kullanan 148 bayt
Bay Xcoder

7
PPCG'ye Hoşgeldiniz!
AdmBorkBork

1

Jöle , 74 72 bayt

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

Çevrimiçi deneyin!

Açıklama:

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

C, 138 bayt

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

Çevrimiçi deneyin!


Öner j=6;--j;puts(""))for(i=7;--i;)printf(&L"⽜ "[i>j]yerinej=1;++j<7;i=puts(""))for(;i<7;)printf(i++<j?" ":"\\/"
ceilingcat


1

C 165 bayt

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

Kübik olarak , 345 336 bayt

⇒@@@
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@

Bu araç aracılığıyla bulundu ve birkaç özel optimizasyonla arama ve değiştirme yoluyla golf oynadı.

Çevrimiçi deneyin!


Alternatif yöntem:

391 bayt (küpü değiştirmez)

+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@

1

C (gcc) , 137 136 bayt

Ceilingcat sayesinde -1 bayt

main(i){for(puts("   .-@@-.\n  (======)\n (--------)\n(==========)\n(__________)");8<printf("%*c%s\n",++i,92,"/\\/\\/\\/\\/\\/"+i*2););}

Çevrimiçi deneyin!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.