나에게 도미노를 그려


35

도전

두 자리에 0-9의 숫자가 입력되면 두면 에 핍 수 (점)가 있는 도미노 ( 더블-나인 도미노 세트에서 )를 출력합니다 . 가능한 10 개의면은 다음과 같습니다 (파이프로 구분).

     |     |    o|    o|o   o|o   o|o o o|o o o|o o o|o o o
     |  o  |     |  o  |     |  o  |     |  o  |o   o|o o o
     |     |o    |o    |o   o|o   o|o o o|o o o|o o o|o o o

또는 별도의 줄에 :

     
     
     
-----
     
  o  
     
-----
    o
     
o    
-----
    o
  o  
o    
-----
o   o
     
o   o
-----
o   o
  o  
o   o
-----
o o o
     
o o o
-----
o o o
  o  
o o o
-----
o o o
o   o
o o o
-----
o o o
o o o
o o o

입력 형식

다음을 포함하지만 이에 국한되지 않는 합리적인 형식으로 입력 할 수 있습니다.

  • 두 개의 개별 정수, 문자열 또는 싱글 톤 배열;
  • 0-99의 단일 정수;
  • 두 정수의 배열.
  • 두 자릿수의 문자열입니다.

출력 형식

  • 두면은 다음과 같이 파이프로 분리되어 가로로 정렬 될 수 있습니다.
    o|o   o
     |  o  
o    |o   o
  • 또는 다음과 같이 하이픈으로 구분하여 세로로 정렬 할 수 있습니다.
    o
     
o    
-----
o   o
  o  
o   o
  • 원하는 경우 도미노 주변에 테두리를 출력 할 수 있습니다.
  • 선리스트, 두면의리스트 또는 이들의 조합을 출력하도록 선택할 수도 있습니다.
  • 핍에 공백이 아닌 문자를 사용할 수 있습니다 (사용했습니다 o).
  • 당신이 정말로 원하는 경우, 당신이 사용할 수있는 0공백과 1의 주사위를 위해, 또는 False/ True(또는 언어의 상당) 배열을 출력합니다.
  • 열 사이의 공백을 제거 할 수 있습니다. 이것은 7, 7에 대한 유효한 출력입니다.
ooo|ooo
 o | o 
ooo|ooo
  • 모든면이 90도 회전 할 수 있습니다. 이것은 7, 7의 유효한 출력이기도합니다.
o   o|o o o
o o o|  o  
o   o|o o o
  • 출력의 주요 부분이 여전히 다른 제약 조건에 맞는 한 원하는만큼 선행 / 후행 공백이있을 수 있습니다.
  • 선이 비어 있어도 각면의 높이는 3 줄이어야합니다. 0, 1의 경우 다음을 출력 할 수 없습니다.
-----

  o

그러나 이것을 출력 할 수 있습니다 :




-----

  o

마찬가지로 두 줄 목록의 목록을 출력하는 경우에는 할 수 [["", "", ""], ["", " o", ""]]있지만 할 수는 없습니다 [[""], [" o "]].

채점

이것은 이므로 각 언어에서 가장 짧은 바이트 단위의 코드가 이깁니다.


따라서 input의 [2, 1]경우 출력 할 수 [[[0,0,1],[0,0,0],[1,0,0]],[[0,0,0],[0,1,0],[0,0,0]]]있습니까?
Dennis

@ 데니스 수정.
ETHproductions

2
면 사이의 구분 기호는 대시 여야합니까, 아니면 다른 일정한 값일 수 있습니까?
Jo King

@JoKing 이미 사용하고있는 것 이외의 다른 문자를 사용할 수 있다고 말씀 드리겠습니다.
ETHproductions

[0,5,21,29,31]여기에 중요한 친구들이 있습니다.
Magic Octopus Urn

답변:


14

파이썬 2 , 101 97 92 68 64 바이트

lambda*a:[[[n>3,n>5,n>1],[n>7,n%2,n>7],[n>1,n>5,n>3]]for n in a]

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

크레딧


@ Mr.Xcoder 다시 업데이트되었습니다.
Neil

1
서식은 선택 사항입니다. 한 쌍의 행렬을 반환하면 최소 22 바이트가 절약됩니다.
Dennis

1
형식이없는 68 바이트 ( Python에서는 0False동일하므로 괜찮음)
Jonathan Allan

@JonathanAllan 매우 영리하고 업데이트되었습니다.
Neil

64 바이트 람다를 만들어야한다면 목록 이해력이 더 짧을 것입니다.
완전 인간

12

C (GCC) , 252 (242) 269 262 241 235 220 바이트

파이썬에서 소켓에 스택 오버플로가 발생했습니다.이 팝업이 표시되면 왜 그렇지 않습니까? 첫 번째 코드 골프이므로 규칙을 100 % 준수했는지 확실하지 않습니다. 'ㅇ'및 ''로 255 245 272 265 244 238 228 바이트. +48을 * 79 + 32로 교체하십시오.

#define Q(P,R)(R>>P&1)+48
char a[11];i=0;f(char*c){char b=c[0];a[3]=a[7]='\n';a[5]=Q(0,b);a[1]=a[9]=Q(3,b);a[2]=a[8]=Q(2,b)|a[1];a[0]=a[10]=Q(1,b)|a[2];a[4]=a[6]=a[1]|Q(2,b)&Q(1,b);puts(a);if(i++<1){puts("---");f(c+1);}}

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

작동 방식 :
비트 시프트와 비트 단위를 사용하여 스폿이 깨끗해야하는지 또는 핍인지 확인한 다음 0 또는 1을 올바른 ASCII 값으로 오프셋합니다. 4와 5를 망쳐 놓았으므로 약간의 수정이 필요했습니다. 실제로 몇 바이트를 추가했습니다. 마스크를 제거하고 1 (doh)을 사용하여 여러 바이트를 제거 할 수있었습니다.

여분의 #define
Changes : removed memset -21 bytes를 제거 하여 7 바이트 미만의 Xcoder 씨에게 특별한 감사를드립니다 . 6, 4, 2의 비트 로직을 각각 8 | 4 & 2, 8 | 4, 8 | 4 | 2에 따라 수정하십시오. -6 바이트 printf 대신 puts를 사용하여 줄 바꿈을 추가로 제거했습니다. 추가 할당을 제거하여 어레이를 11로 줄였습니다. -15 바이트 지금은 내가 할 수있는 최선이라고 생각합니다.


7
PPCG에 오신 것을 환영합니다!
얽히고 설킨

안녕하세요, PPCG에 오신 것을 환영합니다! 코드를 조금 더 단축 할 수 있습니다. 245 바이트
Mr. Xcoder

'\n'로 대체 할 수 있습니다 10. (C에서는 char 데이터 형식도 정수 데이터 형식이므로) 일부 char는로 대체 될 수 있습니다 int. (또는 완전히 생략)
user202729

여기 에서 184 바이트로 줄 었지만 현재 c 골프보다 더 많습니다.
앤드류 Baumher


10

젤리 , 20 바이트

“¤o.ƤẸʠṚ’B¬s5ŒBị@s€3

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

대체 버전, 원래 출력, 33 32 31 바이트

“¤o.ƤẸʠṚ’ṃ⁾ os5ŒBị@s€3K€€Zj€”|Y

1 바이트로 골프를 해준 @ user202729에게 감사합니다!

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

작동 원리

먼저, 이법“¤o.ƤẸʠṚ’ 베이스 250의 정수 리터럴은 반환 값을 1086123479729183으로 설정합니다 .

그런 다음 반환 값을 이진수로 변환하고 각 숫자의 논리 NOT을 가져 와서 배열을 만듭니다.

00001001000010110100101011110011101111101111100000

그런 다음 s5ŒB해당 배열을 길이가 5 인 청크로 분할 한 다음 각 청크 를 튀어 abcdeabcdedcba변환 하여

000010000 001000100 001010100 101000101 101010101

111000111 111010111 111101111 111111111 000000000

이제이 배열 ị@j 번째k 번째 항목을 검색합니다 . 여기서 j, k 는 프로그램의 첫 번째 인수입니다. 인덱싱은 1 기반이며 모듈 식이므로 0 번째 요소도 10 번째입니다.

마지막으로, s€3길이 9의 각 청크를 길이 3의 3 개의 청크로 나눕니다.


1
여전히 나에게는 마술처럼 보이지만 설명을 시도해 주셔서 감사합니다. 필자는 PHP 웹 개발자가 낮기 때문에 내 잘못이라고 인정할 것이다.
ArtisticPhoenix

3사용 0되지는 주사위에 대한 1모든 다른 사람처럼.
Jonathan Allan

“¤o.ƤẸʠṚ’작동해야합니다.
Jonathan Allan

@JonathanAllan 감사합니다! 어떻게
Dennis

8

젤리 , 13 바이트

⁽½ÑD<;ḂŒBs3µ€

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

결합 데니스 '사용의 아이디어 ŒB에서 (바운스) 이 대답Xcali 에서의 관찰' 이 답변은 13 바이트를 얻을 수 있습니다.


젤리 , 28 바이트

(예쁜 인쇄)

이제야 젤리 문자열 리터럴이 자동으로 종료된다는 것을 알고 있습니다 ...

⁽½ÑD<;ḂŒBị⁾o Ks6Yµ€j“¶-----¶

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


분명히 내 접근 ⁽½ÑDEriktheOutgolfer의 대답보다 bytecount는 리드 “¤¦¢¬‘ 여기
user202729

13 바이트 (outgolfing Dennis)가 최상위에 있고 더 쉽게 볼 수 있도록 함수를 재정렬하는 것이 가장 좋지 않습니까?
Zacharý

@ Zacharý 임시 솔루션. 나중에 고칠 것입니다.
user202729

6

PHP 155 , 150 바이트

function d($a){foreach($a as$n){$o="---";for($i=0;$x=2**$i,$i<9;++$i)$o.=([0,16,68,84,325,341,365,381,495,511])[$n]&$x?0:' ';echo chunk_split($o,3);}}

입력으로 정수 배열을 사용합니다. 시험용:

d([1,2]);

echo "=========\n";

d([0,1,2,3,4,5,6,7,8,9]);

출력 형식:

---

 0 

---
  0

0  

여기 에서 라이브 확인

내 솔루션

내 솔루션에는 비트 숫자 (2의 거듭 제곱) 로 구성된 행렬을 사용했습니다 . 다음과 같이 시각화 할 수 있습니다.

 1  |  2  |  4
 8  | 16  | 32
 64 | 128 | 256

그런 다음 각 도미노의 핍에 대한 비트 위치로 구성된 스토리지 배열은 번호가 매겨진 인덱스와 관련이 있습니다.

[0,16,68,84,325,341,365,381,495,511]

따라서 명확히하기 위해 :

  • 예 0 : 인덱스 0또는 값 0은 빈 도미노이며 항상 거짓입니다.
  • 예 1 : 인덱스 1또는 값 16은 숫자 1 도미노와 중앙에있는 행렬입니다 16.
  • 예 2 : 인덱스 2또는 값 68은 숫자 2 도미노이며 오른쪽 상단 4과 왼쪽 하단 64 또는4|64
  • 예 3 : 인덱스 5또는 값 341은 숫자 5 도미노와1|4|16|64|256
  • 예 4 : 인덱스 9또는 값 511은 9 번 도미노이며 매트릭스에서 모든 비트의 조합입니다.

이 성립되면 그 행렬에서의 9 개 위치에 대해 반복하고, 설정하는 매우 간단한 사정 $x2받는 의이$i

for($i=0;$x=2**$i,$i<9;++$i)

그런 다음 우리는 비트 단위 &로 그 지점을 반복합니다. 예를 들어 sake는 위의 예제 2를 사용하고 x대신 명확성을 위해 공백을 사용 합니다.

  • 반복 1, 68 & 1 ? 0 : 'x'결과'x'
  • 반복 2, 68 & 2 ? 0 : 'x'결과'x'
  • 반복 3, 68 & 4 ? 0 : 'x'결과0
  • 반복 4, 68 & 8 ? 0 : 'x'결과'x'
  • 반복 5, 68 & 16 ? 0 : 'x'결과'x'
  • 반복 6, 68 & 32 ? 0 : 'x'결과'x'
  • 반복 7 68 & 64 ? 0 : 'x'초래0
  • 반복 8, 68 & 128 ? 0 : 'x'결과'x'
  • 반복 9, 68 & 256 ? 0 : 'x'결과'x'

루프가 완료되면이 문자열로 감습니다 "xx0xxx0xx".

그런 다음 테두리 "---xx0xxx0xx"를 추가합니다 (실제로 테두리 로 시작하지만 무엇이든) .

그리고 마지막 으로 3에 대한 chunk_split () :

---
xx0
xxx
0xx

당신의 생각을 알려주세요.


php.net/manual/en/language.operators.arithmetic.php** 대신 PHP 5.6에 도입 된 지수 연산자를 사용하면 더 단축 할 수 있습니다.pow()
Daniel

@Daniel-고맙습니다 5 바이트를 절약했습니다! 나는 그들이 추가했다는 것을 몰랐다, 나는 항상 ^비트 XOR 을 사용하려고 노력 하지만 ... lol
ArtisticPhoenix

여분의 테두리를 인쇄 할 수 없다고 생각합니다.
12Me21

OP에서 원격으로 힌트를주는 곳을 보여주세요.
ArtisticPhoenix

나는 이것이 더 짧아 질 것이라고 생각한다 $argv. PHP의 함수 오버 헤드는 보통 13 바이트입니다.
Titus

6

Perl 5 , 107 76 70 + 1 ( -a) = 70 바이트

펄 5 , 70 바이트

$,="
---
";say map{$_='351
7 7
153'=~s/\d/$_>$&||0/ger=~s/ /$_%2/er}<>

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

공백에는 0을, 핍에는 1을 사용합니다. 아주 간단한 방법 : 숫자가 올라갈 때 핍이 "온"되면 중간에있는 숫자를 제외하고는 "오프"되지 않습니다. 중간 위치에서는 모든 홀수에 대해 켜져 있습니다. 따라서 각 위치에 대해 숫자가 마지막 숫자보다 큰지 확인하는 것은 간단합니다. 이 ||0조건이 거짓 인 경우에 출력을 생성한다. Perl에서 false는 undef널로 출력되는 것입니다.


4

자바 스크립트 (ES6), 79 78 바이트

@ETHproductions 덕분에 1 바이트 절약

카레 구문으로 입력을 (a)(b)받고 세로 ASCII 도미노를 출력합니다.

a=>b=>(g=n=>`351
707
153`.replace(/./g,d=>' o'[(+d?n>d:n)&1]))(a)+`
---
`+g(b)

데모


수평 버전, 80 79 바이트

@ETHproductions 덕분에 1 바이트 절약

입력을 2 개의 정수 배열로 취하여 가로 ASCII 도미노를 출력합니다.

a=>`240|351
686|797
042|153`.replace(/\d/g,d=>' o'[(d<8?(x=a[d&1])>(d|1):x)&1])

데모


좋아, 내가 가진 것과 매우 비슷합니다. 하나와 바이트를 저장 n>d|0또는(+d?n>d:n)&1
ETHproductions



2

자바 스크립트 (ES6), 87 바이트

a=>b=>[(s=n=>[[n>3,n>5,n>1],[n>7,n%2,n>7],[n>1,n>5,n>3]].map(c=>c.map(b=>+b)))(a),s(b)]

f=a=>b=>[(s=n=>[[n>3,n>5,n>1],[n>7,n%2,n>7],[n>1,n>5,n>3]].map(c=>c.map(b=>+b)))(a),s(b)]
<div oninput="o.innerText=JSON.stringify(f(a.value)(b.value))"><input id=a type=number min=1 max=9 value=1><input id=b type=number min=1 max=9 value=1><pre id=o>


니스 도미노 ...
Esolanging 과일

2

하스켈-88 자

map$zipWith(zipWith($))[[(>4),(>5),(>1)],[(>7),odd,(>7)],[(>1),(>5),(>3)]].repeat.repeat

면을 나타내는 두 개의 숫자 목록을 가져 와서 bool 목록 목록을 리턴합니다. 그렇게 짧지는 않지만 해결책이 흥미 롭습니다.


당신은 사용할 수있는 map대신 repeatzipWith: map$(<$>[[(>4),(>5),(>1)],[(>7),odd,(>7)],[(>1),(>5),(>3)]]).map.flip($)온라인으로보십시오!
Laikoni

Non-pointfree는 2 바이트를 더 절약합니다 : 온라인으로 사용해보십시오!
Laikoni

2

, 32 27 24 21 바이트

@DLosc 덕분에 -3 바이트

FcgP[Yc>_M3517c%2RVy]

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

설명:

F                      For each
 c                       character $c
  g                      in the list of inputs:
   P                     Print
    [               ]      an array consisting of
                             an array of bits representing whether
      c>                       $c is greater than
        _M                       each of
          3517                     3, 5, 1, and 7
     Y                       (call this bit array $y),
              c%2            $c mod 2,
                 RV          and the reverse
                   y           of $y.

1
Pip 현상금을 축하합니다! 현상금 기간이 끝났으므로 다음과 같이 말할 수 있습니다. 3517list 대신 스칼라에 매핑하여 3 바이트를 절약 하십시오 [3 5o7]. ;)
DLosc

1

> <> , 57 + 3 = 60 바이트

>{:3)$:5)$:1)$:7)$:2%$\ao \
\?%cl999)3$)5:$)1:$)7:/nnn<rp

온라인으로 사용해보십시오 . 다음과 같이 점은 1, 공백은 0, 구분자는 9로 세로 도미노로 출력합니다.

001
000
100
999
111
111
111

기술적으로 이것은 입력 된 값을 최대 12 개까지 확장 할 수 있습니다.

구 버전:

> <> , 76 + 3 = 79 바이트

>{:3)$:5)$:1)$a$:7)$:2%$:7)\&?o~?!n\
\?(*a3la"---"a)3$)5:$)1:$a$/$&:)9::<r~p

온라인으로 사용해보십시오 . 다음과 같이 점이 1이고 공백이 0 인 세로 도미노로 출력합니다.

001
000
100
---
111
111
111

1

, 46 44 43 39 바이트

EE²℅§@APQTUVW^_NE⪪E⁹§ o÷ιX²↔⁻⁴λ³⪫λ M⁵↑⁵

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

EE²℅§@APQTUVW^_N

두 개의 정수를 읽고 찾아보기 테이블에 맵핑하십시오. 그런 다음 결과를 매핑하십시오. (이는 일시적으로 결과를 효과적으로 캡처합니다.)

  E⁹                Loop `l` (!) from 0 to 8
            ⁻⁴λ     Subtract from 4
           ↔        Absolute value
         X²         Power of 2
       ÷ι           Divide into the looked-up value `i`
    § o             Convert to space or o
 ⪪             ³    Split into (3) groups of 3
E                   Map over each group
                ⪫λ  Join the 3 characters with spaces

그런 다음 결과가 중첩되므로 각면 사이에 빈 줄이 추가되어 결과가 별도의 줄에 암시 적으로 인쇄됩니다.

M⁵↑⁵

면 사이로 나누기 선을 위로 그리고 그립니다.

이전 43 바이트 가로 버전 :

↶P³M⁷←FE²℅§@APQTUVW^_NF⁹«F¬﹪κ³⸿⸿§ o÷ιX²↔⁻⁴κ

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

수직으로 일하십시오.

P³

분할 선을 인쇄하십시오.

M⁷←

첫 번째면의 시작 위치입니다.

FE²℅§@APQTUVW^_N

두 개의 정수를 읽고 찾아보기 테이블에 맵핑하십시오.

F⁹«

최대 9 o초 출력 준비

F¬﹪κ³⸿⸿

그러나 3 o초 마다 새로운 열을 시작하십시오 .

§ o÷ιX²↔⁻⁴κ

ASCII 코드의 하위 5 비트를 이진으로 변환 한 다음 나머지 4 o초 동안 출력을 미러링합니다 .


출력 형식은 다소 자유롭기 때문에 몇 바이트를 절약해야합니다.
Dennis

1
이 마법은 무엇입니까
ArtisticPhoenix

@Dennis 실제로 원래 출력 형식이 가장 유용합니다. 자동으로 분할 선을 그릴 공간이 생깁니다.
Neil

맙소사, 두 개의 닐이 있습니다.
Zacharý

2
@ Zacharý 실제로 사용자 페이지에 따르면 이름이 Neil을 포함하는 사람들을 포함하면 8 또는 40이 있습니다 ...
Neil

1

젤리 , 16 바이트

>⁽¤xb8¤;ḂŒḄs3
Ç€

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

사용 닐의 전략 과 값을 생성하는 기본 압축 해제; 이진 배열로 출력합니다. 목록을 입력으로 사용합니다.

설명:

Ç€
 € for €ach input,
Ç  execute the previous line.

>⁽¤xb8¤;ḂŒḄs3
 ⁽¤xb8¤       the array [3, 5, 1, 7]
>             1 if the input is greater than each element, 0 otherwise
       ;Ḃ     append input % 2
         ŒḄ   bounce array
           s3 split into chunks of 3

0

APL + WIN, 49 47 바이트

4⌽'|',⌽⍉6 3⍴,⍉(9⍴2)⊤(+\∊0 241 52 24 114,¨16)[⎕]

인덱스 원점 0으로 실행되도록 Adam의 의견에 따라 편집했습니다.

각면에 대해 정수 벡터로 화면 입력을 프롬프트합니다.

출력 형식은 다음과 같습니다.

1 1 1 | 0 0 1    0 0 0 | 1 0 1
0 1 0 | 0 1 0    0 0 0 | 0 1 0
1 1 1 | 1 0 0    0 0 0 | 1 0 1

의 입력 용 7 30 5

설명:

(+\∊0 241 52 24 114,¨16) create a vector of integers whose binaries
                         represent the dots on the domino faces

[1+⎕] take input integers as indices to select from above vector

⍉6 3⍴,⍉(9⍴2)⊤ convert selected integers to a 9x2 binary matrix and reshape
              to match the orientation of the domino faces

4⌽'|',⌽ rotate, concatenate centre line markers and rotate again to centre 

⎕IO←0자신을 구하기 위해 사용하지 1+않습니까?
Adám

@Adam 참으로 게으른 게 아니라;)
Graham

0

파이썬 2 , 121 바이트

lambda x,y,d="001155777702020202570044557777":[("%03d"%int(bin(int(o))[2:]),"---")[o=="3"]for o in d[x::10]+"3"+d[y::10]]

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

돌아가서 규칙을 다시 읽은 후 람다를 사용하여 121로 줄였습니다. 이제 줄 목록을 출력합니다.

멋진 형식의 출력이있는 이전 버전 :

파이썬 (2) , 156 (153) 147 141 바이트

x,y=input()
d="001155777702020202570044557777"
a=["%03d"%int(bin(int(o))[2:])for o in d[x::10]+d[y::10]]
for x in a[:3]+["---"]+a[3:]:print x

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

@NieDzejkob 덕분에 -3

입력을 2 개의 정수로 취하고 0 = space 및 1 = dot 인 세로 형식으로 출력합니다.



0

PYT , 220 154 바이트

두 번째 시도 (154 바이트)

46281ᴇ8264áĐ9ř3%¬Đ¬2⁵*⇹1ᴇ*+03Ș←Đ3Ș≥Đ6²⁺3**⇹¬2⁵*+⇹9ř5=⇹2%*9²2-*+⇹9ř9<*Ž⇹ŕ⇹9ř3%¬Đ¬2⁵*⇹1ᴇ*+03Ș←Đ3Ș≥Đ6²⁺3**⇹¬2⁵*+⇹9ř5=⇹2%*9²2-*+⇹9ř9<*Ž⇹ŕ5⑴9△*Ƈǰ⇹Ƈǰ64ȘƇǰ6↔ŕ↔ŕ↔

설명:

46281ᴇ8264áĐ                                    Pattern matching for every cell but the middle
9ř3%¬Đ¬2⁵*⇹1ᴇ*+03Ș                              Non-pip characters
←Đ3Ș≥Đ6²⁺3**⇹¬2⁵*+⇹9ř5=⇹2%*9²2-*+⇹9ř9<*Ž⇹ŕ⇹     Make top cell
9ř3%¬Đ¬2⁵*⇹1ᴇ*+03Ș                              Non-pip characters
←Đ3Ș≥Đ6²⁺3**⇹¬2⁵*+⇹9ř5=⇹2%*9²2-*+⇹9ř9<*Ž⇹ŕ      Make bottom cell
5⑴9△*Ƈǰ⇹Ƈǰ64ȘƇǰ6↔ŕ↔ŕ↔                          Make boundary and combine



첫 번째 시도 (220 바이트) :

2`↔←Đ4≥Đ6²⁺3**⇹¬5«+2⁵⇹3ȘĐ6≥Đ6²⁺3**⇹¬5«+2⁵⇹3ȘĐ2≥Đ6²⁺3**⇹¬5«+1ᴇ⇹3ȘĐ8≥Đ6²⁺3**⇹¬5«+2⁵⇹3ȘĐ2%Đ6²⁺3**⇹¬5«+2⁵⇹3ȘĐ8≥Đ6²⁺3**⇹¬5«+1ᴇ⇹3ȘĐ2≥Đ6²⁺3**⇹¬5«+2⁵⇹3ȘĐ6≥Đ6²⁺3**⇹¬5«+2⁵⇹3Ș4≥Đ6²⁺3**⇹¬5«+1ᴇ9△ĐĐĐĐ1ᴇ↔⁻łŕ↔ŕŕŕŕŕŕáƇǰ

설명:

2                           Push 2 (this is how many 'cells' to make)
`     ... ł                 While the top of the stack is not zero, loop
↔                           Flip the stack (useless at the beginning, undoes the flip at the end of the loop)
←Đ4≥Đ6²⁺3**⇹¬5«+            Set top-left pip
2⁵⇹3Ș                       Space
Đ6≥Đ6²⁺3**⇹¬5«+             Set top-middle pip
2⁵⇹3Ș                       Space
Đ2≥Đ6²⁺3**⇹¬5«+             Set top-right pip
1ᴇ⇹3Ș                       New line
Đ8≥Đ6²⁺3**⇹¬5«+             Set middle-left pip
2⁵⇹3Ș                       Space
Đ2%Đ6²⁺3**⇹¬5«+             Set center pip
2⁵⇹3Ș                       Space
Đ8≥Đ6²⁺3**⇹¬5«+             Set middle-right pip
1ᴇ⇹3Ș                       New line
Đ2≥Đ6²⁺3**⇹¬5«+             Set bottom-left pip
2⁵⇹3Ș                       Space
Đ6≥Đ6²⁺3**⇹¬5«+             Set bottom-middle pip
2⁵⇹3Ș                       Space
4≥Đ6²⁺3**⇹¬5«+              Set bottom-right pip
1ᴇ                          New line
9△ĐĐĐĐ                      Add 5 dashes
1ᴇ                          New line
↔⁻ł                         Decrement counter (if >0, loop; otherwise, exit loop)
ŕ↔ŕŕŕŕŕŕ                    Remove all unnecessary items on the stack
áƇǰ                         Push stack to an array, get characters at unicode codepoints given by values in the array, join characters with empty string


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


0

05AB1E , 34 바이트

•ΩõIº•R2ô¹2÷è¹È-bDg5s-ú.∞3ô»TR„ o‡

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


05AB1E에 패딩이 잘못 되었기 때문에 어려움이있었습니다.


기본 설명 :

  • 여기에는 2, 4, 6 및 8의 4 가지 중요한 패턴이 있습니다.
  • 3, 5, 7 및 9는 다른 패턴에 1을 더한 값입니다.
  • 1은 대칭으로 인해 중요하지 않습니다. 입력이 짝수이면 1을 빼서 중간 비트를 토글하십시오.
  • LSB를 토글하면 미러링으로 인해 중간 비트가 뒤집힐 수 있습니다.

0

SmileBASIC, 92 69 바이트

INPUT N,M
DEF Q?N>3;N>5;N>1?N>7;1AND N;N>7?N>1;N>5;N>3
END
Q?777N=M
Q

예:

? 7,2
111
010
111
777
001
000
100

이것은 규칙이 엄격하지 않은 경우에 발생합니다.


0

거짓, 116 80 78 70 69 66 63 61 59 58 바이트

[$3[>_$.\$]$p:!5p;!1p;!"
"7p;!%1&.."
"..."
"]$s:!"---
"s;!

아직도이 일을하고 있습니다 ...


0

,142 135 바이트

! CvDvB
>v-]-x.
|Z-]-]e
|Z]xe|
|ZR(-'
|Zx.AD
|Zxx]x.
|Zx^-]e
|Z<,(-.
|Zx]xe|
|Zx-]-]e
|Zx-]-x'
|Z<C^D^B
|>x~s
|Zx.
|Zx<
|Zxb
|Z+^~f
`zd

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

입력은 문자열입니다. 핍으로 0을 사용합니다. 한 숫자의 핍을 그리고 다음 입력 바이트를 읽습니다. 다음 바이트가 없으면 종료하고 그렇지 않으면 분배기를 그리고 시작으로 이동하십시오.

Z(또는 z)는 출력의 한 문자에 해당하며 위에서 아래로 순서대로 발사되도록 배치됩니다. 대문자 A, B, C,과 D입력의 낮은 4 비트에 해당합니다 (우리가 보는 모든, 그래서 "34" == "CD" == "st" ...). 소문자 b, d, e, f출력 다양한 비트에 대응한다.

무한 길이 도미노도 만들 수 있습니다. 0123456789입력으로 해보십시오 .



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