아이스크림 좀주세요


13

아이스크림 콘주세요

뉴 잉글랜드에는 수많은 아이스크림 가게가 있습니다. 대부분 겨울이 문을 닫습니다. 그래서 ...

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

목표 위의 아이스크림 콘을 정확하게 출력합니다. (또는 함수에서 반환)

이것은 코드 골프이므로 최단 답변이 이깁니다.


이것은 이상한 도전처럼 보입니다. 단순히 문자열 리터럴로 기술적으로 JS / Python과 같은 일부 해석 언어에 대한 솔루션을 실행하는 것이 아닙니까?
Jacob Persi

2
@JacobPersi 이것은 고전적인 kolmogorov- 복잡성 문제입니다. 목표는 가능한 한 주어진 문자열을 압축하는 것이며, 하드 코딩은 너무 골치 거리가 아닙니다
Mr. Xcoder

6
@MichaelDorgan 많은 언어 코드 골프를 위해 발명되었지만 생산 언어로 대답하는 것을 방해해서는 안됩니다. 흥미로운 답변을 찬성하는 것이 좋습니다. 답은 iCeCrEaMCoNe그중 하나가 아닙니다. 이 사이트는 도전보다 새로운 언어로 대답 할 수 없다는 규칙을 가지고 있었지만, "사소한 대답을 옹호하지 마십시오"로 대체되었습니다. 결국,이 골프 언어는 단지 재미를 위해 존재합니다 :)
dzaima

3
이해했다. 나는 최근에 팔 어셈블러에서 대답했습니다. 분명히 이길 수는 없지만 재미는 없습니다 :)
Michael Dorgan

1
@StevenH. 여기에 메타 게시물의 이 다소 오래된, 그러나 많은 사람들은 여전히 그것을 보지 못했다 -
dzaima

답변:




8

PowerShell , 85 바이트

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

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

또는

PowerShell , 85 바이트

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

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

선택해라. 두 경우 모두 처음 세 줄에는 PowerShell에서 압축을 수행하기에 충분한 바이트가 없습니다.

첫 번째 경우는 문자열 곱셈을 사용하여 10 개의 길이 =_선을 각각 생성 하고 두 번째 경우에는 루프 및 문자열 곱셈을 사용합니다. 어느 경우에도, 마지막 행은 원뿔 형태의 반복 15공백의 적절한 수를 출력하는 각 반복은 원추형 부분의 해당 개수 하였다.

이러한 모든 문자열은 파이프 라인에 남아 Write-Output있으며 프로그램 완료시 암시 적 으로 요소 사이에 줄 바꿈을 무료로 제공합니다.


7

V , 48 46 바이트

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

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

16 진 덤프 :

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

, 29 바이트

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

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 설명:

@-.⸿

첫 번째 줄의 오른쪽 절반을 인쇄하십시오.

E=-=⁺×ι⁺³κ)

각 문자 =-=에 대해 첫 번째 문자 에 대해 3 회 반복하고 각 후속 문자에 대해 추가 시간을 추가 한 다음을 추가하여 )각 결과를 자체 행에 인쇄하십시오.

×_⁵

5 _초를 인쇄합니다 .

P↙⁶

원뿔의 가장자리를 인쇄하십시오.

)⸿

최종을 인쇄하고 )원뿔 안에 커서를 놓습니다.

‖M←

반콘을 미러링합니다.

¤/\

콘의 몸체를 채우십시오.


7

파이썬 2 , 86 바이트

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

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

Lynn의 솔루션 작업 .


-2%n/4정말 멋집니다 :) 수동으로 그런 식을 검색합니까, 아니면 일종의 무차별 강제 검색을 실행합니까?
Lynn

1
@Lynn 나는 무차별 대결을 실행했습니다. 나는 또한 여러 자리 숫자를 알지 못했기 때문에 35/n*2발견했습니다 5*7/n*2.
xnor

1
오, 깔끔합니다. 소스 코드를보고 싶습니다!
Lynn


5

05AB1E , 42 바이트

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

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


1026344463000063444446355555 는 이제 아무도 아이스크림 번호를 사용하지 않았습니다.


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

풍선 껌 , 50 바이트

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

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


3

C, 171 바이트

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

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

C, 146 바이트

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

하드 코드 된 문자열 만 인쇄합니다.

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


1
내가 생각하는 것보다 더 잘할 수 있습니다 ...
cleblanc




2

펄 5 , 92 바이트

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

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


바이트 수를 향해 입력을 계산할 필요가 없습니까? 그렇지 않으면 그냥 전체 문자열을 입력하십시오 ...
cleblanc

입력이 없습니다. 그것은 내가하고있는 다른 일에서 남은 TIO였습니다.
Xcali

멋지다, 고마워
cleblanc

+1. RLE 디코딩을 사용하여 몇 가지를 저장할 수는 있지만 어떤 이유로 작업을위한 ;구분 기호로 사용할 수는 없습니다 s///. 모바일에서는 너무 많은 일을 할 수 없습니다! 온라인으로 사용해보십시오!
Dom Hastings


1

파이썬 3, 202 바이트

이것은 문자열을 정의하고 인쇄하는 것보다 더 많은 바이트입니다.

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

온라인 시도


6
\n별도의 print진술 대신 사용할 수 있습니다
Nissa

이 접근법을 사용하는 148 바이트
Mr. Xcoder

7
PPCG에 오신 것을 환영합니다!
AdmBorkBork

1

젤리 , 74 72 바이트

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

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

설명:

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

수학, 117 바이트

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


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

wolfram 샌드 박스 에서 테스트 할 수 있습니다 (사용하는 글꼴이 결과를 약간 손상시킬 수는 있지만)


흥미롭게 \/도 특별한 성격입니다. 내가 Mma.SE에 요청 정도 나는 그것이 사용되는 것을 찾을 수 없습니다 : mathematica.stackexchange.com/q/200673/61597을
lirtosiast




1

C 165 바이트

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

입체적 , 345 336 바이트

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

이 도구 를 통해 발견 되고 검색 및 교체를 통해 골프화되며 몇 가지 사용자 지정 최적화가 제공됩니다.

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


다른 방법 :

391 바이트 (큐브를 수정하지 않음)

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

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