큐브를 만들어보십시오!


16

이것을 기반으로 : 나를 사각형으로 만드십시오!

이것을 출력해야합니다 :

  ####
 # # #
###  #
# # #
####

여기서 "#"은 입력으로 대체됩니다.

"A"를 입력하면

  AAAA
 A A A
AAA  A
A A A
AAAA

"&"를 입력하면

  &&&&
 & & &
&&&  &
& & &
&&&&

리더 보드

다음은 일반 리더 보드와 언어 별 수상자 개요를 생성하는 스택 스 니펫입니다.


5
글쎄, 이것은 이번에는 적어도 숯에서 3 바이트 답은 아니지만 다소 비슷합니다.
Neil

1
마지막 두 줄에 공백이있을 수 있고 결과에 줄 바꿈이있을 수 있습니까?
dzaima

3
B³S‖O↗그것은 숯불에서 10 바이트 답변에 매우 가깝지 만 ... 나는 언어를 잘 알지 못합니다 . 페이지 는 숯을 제외하고 는 실제로 필요합니다 .
Magic Octopus Urn

5
@AAlex 샌드 박스
xnor

6
나는 이것이 어떻게 정사각형의 속담인지 알지 못한다
Luis Mendo

답변:


19

당근 , 31 바이트

  ####
 # # #
###  #
# # #
####

#입력으로 대체됩니다.

기본적으로 포팅 이 답변 이 문제.


40
골프를하는데 몇 시간이 걸린 것 같습니다 ...
Cyoce

@KritixiLithos 200 당신이 멋진 언어를 만들었 기 때문에, 이것은 xD처럼 보이지 않습니다
Stephen

13

05AB1E , 16 15 바이트

ð‚•nxвΛ•2вèJ6ô»

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

설명

ð‚                # push the list [<input>,<space>]
  •nxвΛ•          # push the number 816342339
        2в        # convert to list of base 2 digits
          è       # index into the the 2-char string with this list
           J      # join to string
            6ô    # split into pieces of length 6
              »   # join on newlines

1
목록 / 번호 내에서 줄 바꿈을 인코딩하여 마지막 3 바이트를 저장할 수 있습니까?
Rod

@Rod 그것은 훨씬 더 큰 숫자, 최소한 6 바이트, 그리고리스트에 개행 문자를 포함시키기 위해 여분의 바이트 또는 2 바이트
ETHproductions

@Rod : 당신은 같은 것을 할 수있는 . 불행히도 그것은 조금 더 길어집니다. 그래도 좋은 생각입니다.
Emigna

1
•nxвΛ•bTRð¹ì‡6ô»... 주문 요구 사항으로 인해 약간 음역을 능가합니다. 암시 적으로 입력을 가져 와서 011 바이트로 문자열 을 생성하는 방법을 알아낼 수 있다면 13/14 바이트 솔루션입니다.
Magic Octopus Urn

1
@carusocomputing •nxвΛ•bT𹫇6ô»또는 ð«T•nxвΛ•br‡6ô»같은 길이입니다.
Emigna

10

Cubix , 62 바이트

./v<.o;.@?/;w.w;i:::::NrSs::SrSuUS::sN::rS:r:srNr:SrSsNs:::SSv

온라인으로 사용해보십시오! 그리고 시계 인터프리터!

이것은 4 큐브에 맞습니다 :

        . / v <
        . o ; .
        @ ? / ;
        . . w ;
i : : : : : N r S s : : S r S u
U S : : s N : : r S : r : s r N
r : S r S s N s : : : S S v . .
. . . . . . . . . . . . . . . .
        . . . .
        . . . .
        . . . .
        . . . .

나는 명령 포인터의 방향을 잘 다루지 못하므로 계속 시도하고 골프를 칠 것입니다. 모두이 내 대답 여기가 은 "안녕하세요, 세계를 기반으로! ' 예를 들어 ./v.o;@?/(3 큐브에서) 사용하여 스택의 문자를 재귀 적으로 인쇄하고 팝하므로 나머지 코드는 문자를 스택에 올바른 순서로 밀어 넣는 것입니다.

이제 큐브에 큐브를 만들었으므로 쉽게 쉬고 실제 작업을 수행 할 수 있습니다.


9

SOGL , 13 10 바이트

Βū&⁵'r⁹‘6n

설명:

Βū&⁵'r⁹‘    push "  ŗŗŗŗ ŗ ŗ ŗŗŗŗ  ŗŗ ŗ ŗ ŗŗŗŗ", where "ŗ" is replaced with input
        6n  split into lines of length 6

1
이것은 0에 어떻게 앉아 있습니까? 아마도 TIO가 부족하기 때문에 +1
Magic Octopus Urn

나는 (희망) 대부분의 1 이상 업데이트를 깨는 물건에있을거야가 있다고 생각하고 나는 일부 온라인 실행 일에 대해 생각하는 것
dzaima

6
골프 언어의 아들?
ETHproductions

@ETHproductions lol
dzaima

문자열 지향 골프 언어
a'_ '

9

MATL , 13 10 바이트

3 바이트를 제거하고 옥타브에서 인쇄 할 수없는 파일을 사용할 수 있음을 보여 준 Conor O'Brien에게 감사합니다.

코드에 인쇄 할 수없는 문자가 포함되어 있습니다. 온라인으로 사용해보십시오!

설명

'....'   % Push 5-char string (contains unprintables). Each char encodes a row
         % of the desired pattern
B        % Convert to binary. Gives a 5×6 binary matrix with the pattern
*        % Implicit input. Multiply element-wise (converts input to ASCII code)
c        % Convert to char. Implicitly display. Char 0 is shown as space

인쇄 할 수없는 경우이 10 바이트를 만들 수 있습니다. 온라인으로 사용해보십시오!
코너 오브라이언

@ ConorO'Brien 안녕하세요, 감사합니다! 나는 옥타브가 그것들에 대해 괜찮은지 확신하지 못했습니다 ... 어떻게 입력 했습니까?
Luis Mendo

솔직히 나는 숫자를 가져와 16 진수로 변환 한 다음했습니다 echo 0f15392a3c|xxd -r -p|clip. Windows clip에는 클립 보드가 있습니다. 그럼 난 단지 그들을 붙여 : P를 (당신이 명령 행에 있다면, 그건 ^O^U뿐만 아니라)
코너 오브라이언에게

@ ConorO'Brien 저의 머리 위에 있습니다. 당신은 정말로 당신의 답변으로 그것을 게시해야합니다
Luis Mendo

그것은 당신과 같은 전술을 사용하며, 값을 직접 사용하여 모듈로 64가 필요하지 않습니다.
코너 오브라이언


6

Japt , 20 바이트

"OUyj|"®c ¤Åd0S1U +R

온라인으로 테스트하십시오!

압축 기능이 내장되지 않은 언어에 대해서는 그리 나쁘지 않습니다 (소문자 문자열 압축 제외).

설명

이진에서 문자열의 다섯 문자는 다음과 같습니다.

O 1001111
U 1010101
y 1111001
j 1101010
| 1111100

1각각 에서 이니셜 을 잘라 내면 큐브의 패턴이 나타납니다.

"OUyj|"®   c ¤  Å  d0S1U +R
"OUyj|"mZ{Zc s2 s1 d0S1U +R}  // Expanded
                              // Implicit: U = input string
"OUyj|"mZ{                 }  // Replace each character Z in this string with this function:
          Zc                  //   Take the char-code of Z.
             s2               //   Convert to a binary string.
                s1            //   Slice off the first character (always a "1").
                   d0S1U      //   Replace "0"s with spaces and "1"s with the input.
                         +R   //   Append a newline.
                              // Implicit: output result of last expression

템플릿 기반 접근 방식 ( ll압축 가능)을 시도했지만 11 바이트가 더 깁니다.
Luke

좋은. 나는 그것의 공을 만들었다는 것을 깨닫기 전에 23 바이트로 떨어졌습니다!
Shaggy

6

LOLCODE, 202 170 바이트

I HAS A c
GIMMEH c
VISIBLE"  "AN c AN c AN c AN c AN":) "AN c AN" "AN c AN" "AN c AN":)"AN c AN c AN c AN"  "AN c AN":)"AN c AN" "AN c AN" "AN c AN":)"AN c AN c AN c AN c

LOLCODE에서는 골프를 많이하지 않습니다 ...

변수 c를 입력으로 설정하고 줄 :)바꿈을 포함하여 거대한 연결된 문자열을 만듭니다 . 그게 다야.


expected HAI at: I tio.run/nexus/…
eush77

또한 VISIBLE암시 적으로 연결되므로 SMOOSH tio.run/nexus/lolcode#@@/…
eush77

우선, HAI 나 KTHXBYE를 필요로하지 않는 통역사가 있습니다 (예 : REPL.it). 두 번째로 감사합니다!
OldBunny2800

5

sed, 40 자

s/./  &&&&\
 & & &\
&&&  &\
& & &\
&&&&/

도전 설명으로 거의 속임수에 거의 문자 그대로 포함되어 있습니다.

샘플 실행 :

bash-4.4$ sed 's/./  &&&&\
 & & &\
&&&  &\
& & &\
&&&&/' <<< 'C'
  CCCC
 C C C
CCC  C
C C C
CCCC

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



5

Z80 어셈블리, 37 바이트 머신 코드

메모리 맵핑 된 I / O 장치를 가정하십시오.

; 공백을 입력하지 마십시오. 무한 루프 인쇄 공간 및 줄 바꿈에 들어가게됩니다!

3A xx xx ld a, (입력); 입력 문자를 얻을
110A 20 ld de, 200ah; 공간 및 개행
21 yy yy ld hl, 출력; 출력 주소를 얻다
4F d c, a; 문자를 c에 넣다
고리:
72 d1 (hl), d; 출력 공간 * 2 | 출력 문자 * 2
72 ld (hl), d
77 d1 (hl), a; 출력 문자 | 출력 문자
71 d1 (hl), c; 출력 문자 * 2 | 출력 공간 * 2
71 ld (hl), c
77 d1 (hl), a; 출력 문자 | 출력 문자
73 ld (hl), e; 줄 바꿈 출력 | 줄 바꿈 출력
72 d1 (hl), d; 출력 공간 | 출력 문자
71 d1 (hl), c; 출력 문자 | 출력 공간
72 d1 (hl), d; 출력 공간 | 출력 문자
71 d1 (hl), c; 출력 문자 | 출력 공간
72 d1 (hl), d; 출력 공간 | 출력 문자
B9 cp c; 제로 플래그를 첫 번째로 설정 | 두 번째 클리어
20 06 jr nz, 끝; 끝으로 건너 뛰기
77 d1 (hl), a; 출력 문자
73 ld (hl), e; 줄 바꿈 출력
4A d1 c, d; c에 공간을 두다
57 dd, a; 문자를 d에 넣다
28 FB jr z, 루프; 두 번째 시간으로 루프
종료:
73 ld (hl), e; 줄 바꿈 출력
77 d1 (hl), a; 출력 문자 * 4
77 ld (hl), a
77 ld (hl), a
77 ld (hl), a
76 정지; 또는 C9 ret


4

PHP, 72 바이트

이미 더 나은 PHP 답변이 있기 때문에 재미를 위해 이것을 만들었습니다.

for($i=0;$i<27;)echo('00'.decbin(64349871))[$i]?$argn:' ',++$i%6?'':'
';

큐브는로 64349871연결된 이진 값을 가져와 그려집니다 '00'.
이것은 다음을 반환합니다.

0011110101011110011010101111

6 번째 문자마다 줄 바꿈을 출력하여 다음과 같은 결과를 얻습니다.

001111
010101
111001
101010
1111

그리고을 표시하는 대신 0공백이 표시됩니다.

  1111
 1 1 1
111  1
1 1 1 
1111

4

, 17 16 바이트

SβGH7+↗→³β→G↓↙³β

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. "큐브"가 키보다 크거나 깊기 때문에 내가 원하는 것보다 더 길다. 다행스럽게도 일부 다 방향 문자는 PolygonHollow와 함께 작동하므로 3 바이트를 절약 할 수 있습니다. 편집 : T ↑ 대신 +를 사용하여 추가 바이트를 저장했습니다. 설명:

Sβ          Input the character
GH7+↗→³β    Draw the left half. 7 becomes ←↙ and + becomes →↓←↑.
→           Move right one character.
G↓↙³β       Draw the right half.

도전 당시 q변수가 상세 모드에서 작동하지 않았습니다. 그렇지 않으면이 14 바이트 버전을 만들 수 있습니다.

GH7+↗→³θ→G↓↙³θ

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


3

스택 형 , 31 바이트

' '\+$'9*<'#.2 tb[6 dpad]map#

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

다음은 16 진수 덤프입니다.

λ xxd try-to-make-a-cube.stk
00000000: 2720 275c 2b24 270f 1539 2a3c 2723 2e32  ' '\+$'..9*<'#.2
00000010: 2074 625b 3620 6470 6164 5d6d 6170 23     tb[6 dpad]map#

문자 배열을 이진수로 변환하고 각 행을 length 6로 채우고 문자열에 따라 색인화합니다.' ' input +



2

JS (ES6), 64 60 52 바이트

i=>`  ####
 # # #
###  #
# # #
####`.replace(/#/g,i)

이것을 향상시킬 수 있습니까?

i=>`  ${y=i+i+i+i}
 # # #
###  #
# # #
${y}`.replace(/#/g,i)

1
y=i+i+i+i다음보다 짧음y=i.repeat(4)
Stephen

2
... 그리고 ####더 짧습니다.
Arnauld

1
실제로 템플릿없이 전체 길이가 더 짧습니다. Fiddle
Stephen

1

C (gcc) , 90 84 바이트

i;v;f(g){for(i=32;i--;)putchar((v="####*@#@#@#*#@@###*#@#@#@*####@@"[i])&1?g:v-32);}

온라인으로 사용해보십시오! f문자를 받는 함수 를 정의합니다 g. 테이블을 직접 인코딩하는 것이 너무 짧습니다 ...

이전 버전, 90 바이트

(여전히 골프를 타려고하지만)

하나의 putcharidk 를 가지려고합니다 . 인쇄 할 수없는 것이 있으므로 다음은 16 진수 덤프입니다.

λ xxd try-to-make-a-cube.c
00000000: 693b 6a3b 6628 6729 7b63 6861 722a 6b3d  i;j;f(g){char*k=
00000010: 220f 1539 2a3c 223b 666f 7228 693d 303b  "..9*<";for(i=0;
00000020: 693c 353b 7075 7463 6861 7228 3130 292c  i<5;putchar(10),
00000030: 692b 2b29 666f 7228 6a3d 3332 3b6a 3b6a  i++)for(j=32;j;j
00000040: 2f3d 3229 7075 7463 6861 7228 6b5b 695d  /=2)putchar(k[i]
00000050: 266a 3f67 3a33 3229 3b7d                 &j?g:32);}

이는 큐브를 이진 조회 테이블로 인코딩합니다. 여기서 1비트는 입력을 0나타내고 비트는 공백을 나타냅니다. 온라인으로 사용해보십시오!


81 바이트 동안 몇 바이트를 줄일 수 있습니다.
gastropner

인쇄 할 수없는 것들을 73 바이트 로 압축 할 수 있습니다 .
gastropner


1

스위프트-82 바이트 + 기초 (18 바이트)?

var f={"  ####\n # # #\n###  #\n# # #\n####".replacingOccurrences(of:"#",with:$0)}

기본적으로 Xcode-Swift 프로젝트에는 Whole-Module Optimization 이 있으므로 import Foundation람다와 같은 간단한 함수에는 필요하지 않습니다. 그러나 온라인 환경에서 실행하려면 18 바이트가 추가 될 수 있습니다.

확인 해봐!



0

CJam, 23 바이트

"pjFUC"{i2b(;}%rS+ff=N*

나는 아직도 이것을 골프 수 있다고 생각합니다.

"pjFUC" e# String literal:          │ "pjFUC"
{       e# For each:                │ 'p
  i     e#   Get code point:        │ 112
  2b    e#   To binary:             │ [1 1 1 0 0 0 0]
  (;    e#   Delete first:          │ [1 1 0 0 0 0]
}%      e# End                      │ [[1 1 0 0 0 0] [1 0 1 0 1 0] [0 0 0 1 1 0] [0 1 0 1 0 1] [0 0 0 0 1 1]]
r       e# Read token:              │ [[1 1 0 0 0 0] [1 0 1 0 1 0] [0 0 0 1 1 0] [0 1 0 1 0 1] [0 0 0 0 1 1]] "&"
S       e# Push space:              │ [[1 1 0 0 0 0] [1 0 1 0 1 0] [0 0 0 1 1 0] [0 1 0 1 0 1] [0 0 0 0 1 1]] "&" " "
+       e# Concatenate:             │ [[1 1 0 0 0 0] [1 0 1 0 1 0] [0 0 0 1 1 0] [0 1 0 1 0 1] [0 0 0 0 1 1]] "& "
ff=     e# Vectorized array lookup: │ ["  &&&&" " & & &" "&&&  &" "& & & " "&&&&  "]
N*      e# Join with newlines       │ "  &&&&
        e#                          │   & & &
        e#                          │  &&&  &
        e#                          │  & & & 
        e#                          │  &&&&  "
e# Implicit output

0

dc , 70 바이트

약간의 최적화로 시퀀스를 직접 인코딩합니다.

8224PdPdPdPdP10Pd8192+ddPPP10PdPdPdP8224PdP10Pd256*32+ddPPP10PdPdPdPdP

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


145 바이트 (골프가 아닌)의 극단으로 촬영 :

27065671941896667324298575455432398417474802390765222440949482848513*56759961956005660143530475805610581704254588701249011343446231795984498688+P

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

이 계산하여 A*x+B, A입력 문자의 인코딩 위치 B인코딩 나머지 모든 :

A = 256 0 + 256 1 + 256 2 + 256 3 + 256 5 + 256 7 + 256 9 + 256 11 + 256 14 + 256 15 + 256 16 + 256 18 + 256 20 + 256 22 + 256 25 + 256 26 + 256 27 + 256 28

B = 10 × 256 4 + 32 × 256 6 + 32 × 256 8 + 10 × 256 10 + 32 × 256 12 + 32 × 256 13 + 10 × 256 17 + 32 × 256 19 + 32 × 256 21 + 32 × 256 23 + 10 × 256 24 + 32 × 256 29 + 32 × 256 30

P 명령은 결과 숫자를 바이트 스트림으로 인쇄합니다.



0

Windows 배치, 79 바이트

@echo   %1%1%1%1
@echo  %1 %1 %1
@echo %1%1%1  %1
@echo %1 %1 %1
@echo %1%1%1%1

특별 숯. 안전한 97 바이트 :

@echo   ^%1^%1^%1^%1
@echo  ^%1 ^%1 ^%1
@echo ^%1^%1^%1  ^%1
@echo ^%1 ^%1 ^%1
@echo ^%1^%1^%1^%1

줄 바꿈을 사용할 수 있습니까?.. %1%1%1%1\n %1 %1 %1...
TheLethalCoder

라인 피드는 배치에서 지원되지 않습니다
stevefestl

그들이 있는지 여부를 테스트 할 수 없는지 기억할 수 없었습니다. :)
TheLethalCoder

미안하지만 혼란스러워 반복 할 수 있습니까?
stevefestl

나는 당신이 그들을 사용하거나 수없는 경우 기억하지 못했습니다 내가 할 수 당신이 아직도 생각했을 그래서 나는 글을 남겼습니다 그래서 댓글을 달았 시간에하지 테스트
TheLethalCoder

0

Tcl, 60 바이트

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