Schaufel mir bitte ein Eis

13

Mach mir bitte eine Eistüte

Wir haben eine Menge großartiger Eisdielen hier in Neuengland. Die meisten von ihnen sind jetzt für den Winter geschlossen, so ...

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

ZIEL Den obigen Eistüte genau ausgeben. (oder von einer Funktion zurückgeben)

Dies ist Codegolf, also gewinnt die kürzeste Antwort

Cleblanc
quelle
Dies scheint eine seltsame Herausforderung zu sein, wäre es nicht einfach eine Lösung für einige interpretierte Sprachen wie JS / Python, dies als String-Literal auszuführen?
Jacob Persi
2
@JacobPersi Dies ist eine klassische Herausforderung der Kolmogorov-Komplexität , bei der das Ziel darin besteht, die angegebene Zeichenfolge so weit wie möglich zu komprimieren. Die Hardcodierung ist wahrscheinlich nicht zu golfig
Mr. Xcoder,
6
@MichaelDorgan Viele der Sprachen wurden für Codegolf erfunden, aber das sollte Sie nicht davon abhalten, in Produktionssprachen zu antworten. Hier wird empfohlen, interessante Antworten zu verbessern, und eine Antwort in iCeCrEaMCoNewäre keine von diesen. Diese Seite hatte sogar die Regel, dass man nicht in einer Sprache antworten kann (/ benutze ein Feature), die neuer ist als die Herausforderung, aber dies wurde ersetzt durch "Keine belanglosen Antworten". Immerhin gibt es diese
Golfsprachen
3
Verstanden. Ich antwortete vor kurzem in Arm Assembler. Offensichtlich nicht gewinnen, aber trotzdem Spaß :)
Michael Dorgan
1
@StevenH. Hier ist der Meta-Post - er ist etwas alt, aber viele haben ihn noch nicht gesehen
dzaima,

Antworten:

10

SOGL V0.12 , 24 Bytes

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

Probieren Sie es hier aus!

Eine einfache Komprimierungslösung:

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

Keine Komprimierungsversion - viel länger, da die SOGL-Komprimierung dafür gut funktioniert

dzaima
quelle
10

Python 2 , 95 Bytes

i=9;print'   .-@@-.'
while i:print['('+~i*3/4*2%22*'-=_='[i%4]+')','\/'*i][i<6].center(12);i-=1

Probieren Sie es online!

Lynn
quelle
8

PowerShell , 85 Byte

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

Probieren Sie es online!

ODER

PowerShell , 85 Byte

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

Probieren Sie es online!

Treffen Sie Ihre Wahl. In beiden Fällen verfügen die ersten drei Zeilen nicht über genügend Bytes, um eine Komprimierung in PowerShell durchzuführen.

Der erste Fall verwendet die String-Multiplikation, um jede der 10 Längen =und _Zeilen zu erzeugen , während der zweite Fall eine Loop- und String-Multiplikation verwendet. In beiden Fällen bildet die letzte Zeile den Kegel, der von 1bis umläuft5 jedem Durchlauf wird die entsprechende Anzahl von Leerzeichen gefolgt von der entsprechenden Anzahl von Kegelstücken ausgegeben.

Alle diese Zeichenfolgen Write-Outputverbleiben in der Pipeline, und der implizite Zeitpunkt der Programmbeendigung gibt uns kostenlos eine neue Zeile zwischen den Elementen.

AdmBorkBork
quelle
7

V , 48 46 Bytes

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

Probieren Sie es online!

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       (.-).(.=).(._)
DJMcMayhem
quelle
7

Kohle , 29 Bytes

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

Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:

@-.⸿

Drucken Sie die rechte Hälfte der ersten Zeile.

E=-=⁺×ι⁺³κ)

=-=Wiederholen Sie für jedes der Zeichen 3 Mal für das erste und ein weiteres Mal für jedes nachfolgende Zeichen und hängen Sie dann ein an ), wobei Sie jedes Ergebnis in einer eigenen Zeile ausgeben .

×_⁵

5 _s drucken .

P↙⁶

Drucken Sie den Rand des Kegels.

)⸿

Drucken Sie das Finale )und positionieren Sie den Cursor innerhalb des Kegels.

‖M←

Den halben Kegel spiegeln.

¤/\

Füllen Sie den Körper des Kegels.

Neil
quelle
7

Python 2 , 86 Bytes

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

Probieren Sie es online!

Wir arbeiten an Lynns Lösung .

xnor
quelle
-2%n/4is so cool :) Suchst du manuell nach solchen Ausdrücken oder machst du eine Art Brute-Force-Suche?
Lynn
1
@Lynn Ich habe einen Brute-Forcer geführt. Ich habe auch das gemacht 35/n*2, wofür es gefunden hat, 5*7/n*2da es keine mehrstelligen Zahlen kennt.
xnor 18.11.17
1
Ohh, das ist ordentlich. Ich würde gerne den Quellcode sehen!
Lynn
5

Perl 6 , 115 95 94 92 90 Bytes

3 Bytes von AlexDaniel in # perl6 auf irc.freenode.net gespeichert

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

Probieren Sie es online!

Luke
quelle
5

05AB1E , 42 Bytes

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

Probieren Sie es online!


1026344463000063444446355555 ist jetzt die Icecream Number b / c, die noch niemand benutzt hat.


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.
Magic Octopus Urn
quelle
3

Bubblegum , 50 Bytes

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

Probieren Sie es online!

ovs
quelle
3

C 171 Bytes

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

Probieren Sie es online!

C 146 Bytes

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

Druckt einfach die fest codierte Zeichenfolge.

Probieren Sie es online!

Steadybox
quelle
1
Sie können es besser machen, denke ich ...
Cleblanc
2

Python 2 , 125 120 119 116 106 Bytes

print"   .-@@-.\n  (======)\n "+"(%s)\n"*3%("-"*8,"="*10,"_"*10),
for _ in 5,4,3,2,1:print" "*(6-_)+_*"\/"

Probieren Sie es online!

Jonathan Frech
quelle
2

Perl 5 , 92 Bytes

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

Probieren Sie es online!

Xcali
quelle
Müssen Sie die Eingabe nicht auf die Byteanzahl angerechnet werden? Ansonsten geben Sie einfach die gesamte Zeichenfolge ein ...
cleblanc
Es erfolgt keine Eingabe. Das war nur ein TIO-Überbleibsel von etwas anderem, was ich tat.
Xcali
cool, habe es danke.
Cleblanc
+1. Sie können ein paar mit RLE-Decodierung speichern, aber ich konnte aus irgendeinem Grund nicht ;als Begrenzer für die s///Arbeit verwenden. Auf dem Handy kann man also nicht zu viel machen! Probieren Sie es online!
Dom Hastings
2

Ruby , 97 Bytes

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

Probieren Sie es online!

Ich benutze Ruby zum ersten Mal, daher sind Tipps sehr willkommen.

Justin Mariner
quelle
1

Python 3, 202 Bytes

Das ist ziemlich schrecklich, es sind mehr Bytes als nur die Zeichenfolge zu definieren und diese sogar zu drucken.

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

Probieren Sie es online

Ben
quelle
6
Sie können \nanstelle von separaten printAnweisungen verwenden
Nissa
148 Bytes mit diesem Ansatz
Mr. Xcoder
7
Willkommen bei PPCG!
AdmBorkBork
1

Jelly , 74 72 Bytes

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

Probieren Sie es online!

Erläuterung:

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.
Genosse SparklePony
quelle
1

Mathematica, 117 Bytes

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


Ausgänge
Bildbeschreibung hier eingeben

Sie können es auf einer Wolfram-Sandbox testen (obwohl die verwendeten Schriftarten das Ergebnis ein wenig verfälschen können).

J42161217
quelle
Interessanterweise \/ist ein besonderer Charakter. Ich konnte nicht finden, wofür es verwendet wird, also fragte ich bei Mma.SE: mathematica.stackexchange.com/q/200673/61597
lirtosiast
1

C 138 Bytes

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

Probieren Sie es online!

Colera Su
quelle
Schlagen Sie j=6;--j;puts(""))for(i=7;--i;)printf(&L"⽜ "[i>j]stattdessen vorj=1;++j<7;i=puts(""))for(;i<7;)printf(i++<j?" ":"\\/"
ceilingcat
1

VimL, ​​76 Bytes

a   .-@@-.␤  ␤ ␛k6A=␛j8A-␛o␛10A=␛o␛10A_␛qaI(␛A)␛kq3@aGo ␛5A\/␛qayypxxI ␛q3@a

Animierte mit vimanim.py .

bodqhrohro
quelle
1

C 165 Bytes

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);}
PrincePolka
quelle
1

Kubisch , 345 336 Bytes

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

Über dieses Tool gefunden und per Suchen und Ersetzen mit einigen benutzerdefinierten Optimierungen abgegolft.

Probieren Sie es online!


Alternative Methode:

391 Bytes (Würfel wird nicht geändert)

+5/1+3@@@:1/[email protected]+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/[email protected]: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@
MD XF
quelle
1

C (GCC) , 137 136 Bytes

-1 Bytes dank Ceilingcat

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

Probieren Sie es online!

Cleblanc
quelle