Rummikub를하자!


11

참고 : 이것은 게임 Rummikub 의 변형과 관련이 있습니다


배경 및 규칙

Rummikub 는 타일 기반 게임입니다. 빨강, 주황, 파랑 및 검정의 네 가지 색상이 있습니다. 각 색상에는 13 개의 타일 (1에서 13까지 레이블이 있음)이 있으며 색상에 독립적 인 2 개의 조커가 있으므로 총 54 개의 조각이 있습니다. Rummikub의이 변형에서 각 플레이어는 14 개의 타일을 받고 타일 수를 일정하게 유지하기 위해 각 타일을 하나 더 가져와 한 라운드마다 다른 타일을 떨어 뜨려야합니다. 플레이어는 서로의 타일을 볼 수 없습니다. 모든 조각이 하나 이상의 그룹에 속하도록 타일을 그룹화하는 것이 목표입니다 (아래 참조). 플레이어가 모든 조각을 그룹화하면 타일 보드를 떨어 뜨리고 조각을 공개합니다. 그런 다음 다른 조합은 모든 조합이 유효한지 확인하고, 유효한 경우 플레이어가 라운드에서 승리합니다.

타일은 어떻게 그룹화 할 수 있습니까?

두 가지 유형의 그룹 만 있습니다.

  • 다색 그룹 :

    • 타일은 3 개 또는 4 개의 타일로 구성됩니다.
    • 그들은 같은 번호의 타일 만 포함합니다.
    • 모든 타일은 다른 색상입니다.
    • 예 : RED 9, BLUE 9, BLACK 9.
  • 단색 그룹 :

    • 최소 3 개의 타일로 구성됩니다.
    • 타일은 13 개를 초과 할 수 없습니다.
    • 오름차순으로 연속 된 번호가 다른 타일 만 포함합니다.
    • 모든 타일의 색상이 동일합니다.
    • 레이블이 붙은 타일은 레이블이 붙은 타일 ​​뒤의 장소 1 가 아닐 수 있습니다 13.
    • 예 : RED 5, RED 6, RED 7.

잠깐, 조커는 무엇을합니까?

조커는 게임의 모든 부분을 대체 할 수 있습니다. 예를 들어, 우리의 첫 번째 예는 될 수있다 JOKER, BLUE 9, BLACK 9, RED 9, JOKER, BLACK 9또는 RED 9, BLUE 9, JOKER. 다른 예에서도 마찬가지입니다. 그러나 같은 그룹에 두 명의 조커를 배치 하지 못할 수도 있으므로 JOKER, ORANGE 8, JOKER금지되어 있습니다.


직무

Rummikub 타일 그룹이 주어 졌는지 확인하십시오. 2 개의 조커를 제외하고 중복 타일이 표시되지 않으며 입력으로받은 타일이 유효 함을 보장합니다 (예 : 60표시되지 않음).

입출력

표준 방법으로 입력하고 출력 할 수 있습니다.

유효한 입력 형식 : 문자열 목록, 튜플 목록, 중첩 목록, 문자열 또는 기타 적합한 것으로 입력 된 형식. 색상은 문자열 (예 :) "Blue","Red", etc., 문자열 약어 (파란색 및 검은 색 타일을 구별 가능하게 함) 또는 색상에 대응하는 정수로 사용할 수 있습니다. 조커와 관련하여 프로그램이 입력을받는 방식을 언급해야합니다. Strings를 선택 RED 9, JOKER, ...하면 튜플을 선택 (9,"RED"), ("JOKER")하거나 이와 동등한 것을 선택할 수 있습니다 . 도움이되는 경우 해당 조커에 대한 색상을받을 수 있습니다 (프로그램 출력에 영향을 미치지 않아야 함). 예를 들어, 당신은 할 수 있습니다 ("JOKER","RED")또는 ("JOKER","BLUE"), 그러나 그것은 어떤 식 으로든 출력에 영향을주지해야한다.

출력과 관련하여 대한 표준 규칙이 적용됩니다.

작동 예

이해하기 쉽도록 예를 들어 봅시다. 다음과 같이 그룹이 주어지면 각 튜플은 타일을 나타냅니다.

[(9, "RED"), (9, "ORANGE"), ( "JOKER"), (9, "BLACK")]

입력이 유효하기 때문에 정확한 값을 반환해야합니다. 이 경우 Joker는를 대체 (9, "BLUE")하고 여러 가지 색상 그룹을 형성합니다.

다음과 같은 그룹이 주어진다면 :

[(9, "BLUE"), (9, "ORANGE"), (9, "RED"), (9, "BLACK"), ( "JOKER")]

유효하지 않으므로 다중 색상 그룹의 최대 카드 수가 4 개이므로 조커가 대체 할 항목이 없기 때문에 프로그램이 잘못된 값을 반환해야합니다.

추가 테스트 사례

다음은 가능한 모든 상황을 다루는 확장 테스트 스위트를위한 것입니다.

입력-> 출력 

[(1, "BLUE"), (2, "BLUE"), (3, "BLUE"), (4, "BLUE"), (5, "BLUE"), (6, "BLUE")]- > 진실

[(6, "BLUE"), (6, "RED"), (6, "BLACK)]-> 진실

[(5, "BLACK"), (6, "BLACK"), (7, "BLACK"), (8, "BLACK"), (9, "BLACK"), (10, "BLACK"), ( "JOKER"), (12, "BLACK")]-> 진실 

[( "JOKER"), (3, "BLUE"), (3, "RED")]-> 진실

[(8, "BLACK"), (2, "RED"), (13, "BLUE")]-> 거짓

[(4, "RED"), (3, "RED"), (5, "RED")]-> 거짓

[(5, "BLACK"), (6, "BLACK)]-> 거짓

[( "JOKER"), (5, "RED"), ( "JOKER")]-> 거짓

[(4, "RED"), (5, "RED"), (6, BLUE ")]-> 거짓

[(4, "RED"), ( "JOKER"), (5, "RED")]-> 거짓

[(12, "BLACK"), (13, "BLACK), (1,"BLACK ")]-> 거짓

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



도둑질은 rummikub의 가장 중요한 부분입니다. 그것 없이도 이것은 재미있는 도전처럼 보입니다.
요시야

[]가 유효한 입력입니까?
V. Courtois

@ V.Courtois 물론입니다.
Mr. Xcoder

1
@ V.Courtois 하나는 같은 그룹에 두 개의 조커를 배치 할 수 없으므로 두 개의 조커를 포함하는 두 개의 입력은 거짓입니다.
Mr. Xcoder

답변:


6

APL (Dyalog) , 58 바이트

색상 목록 (1-4)을 오른쪽 인수로, 숫자 목록을 왼쪽 인수로 사용합니다. 조커의 번호는 그 중 하나 일 수 있음을 나타내는 (⍳4)것과 동일 (1 2 3 4)하게 표시됩니다. 마찬가지로, 색상은 (⍳13)1에서 13 사이의 숫자 일 수 있음을 나타냅니다.

{(3≤≢⍺)∧((s⍵)∧⍺≡∪⍺)∨((s←{1∊≢∘∪¨⊃,¨/⍵})⍺)∧∨/∊(⊃,¨/⍵)⍷¨⊂⍳13}

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

연산

세 가지 조건이 있으며 마지막 두 조건에는 각각 두 가지 조건이 있습니다.

  1. 런의 길이는 3보다 크거나 같아야합니다.

그리고 그

    1. 단일 숫자 AND

    2. 독특한 색상

또는

    1. 단색 AND
    2. 일련 번호

실행이 유효하기 위해.

읽기 순서

3≤3은 ≢⍺타일 ​​수 보다 작거나 같습니다

   s⍵ 모든 숫자는 같습니다

  

   ⍺≡∪⍺ 색깔은 독특하다

또는

   1∊1은 ≢∘∪¨독특한 ⊃,¨/확장  색상 의 수입니다

  

   ∨/모든 ⊃,¨/⍵확장 번호 중 하나 이상이 존재합니다 ⍷¨⊂.⍳131에서 13까지

전체 코드 설명

{… 왼쪽 인수이고 오른쪽 인수 인 } 익명 함수

3.2.

⍳13 1부터 13까지의 숫자

()⍷¨다음 각 런의 시작 위치를 찾으십시오.

  ,¨/⍵ 숫자의 각 요소를 결합하십시오 (각 Joker 값에 대한 런을 만듭니다)

   공개 ( /순위를 낮추기 때문에 )

  ε NLIST (편평한)

∨/ 또는 감소 (즉, 사실입니까?)

()∧ 그리고 :

3.1

  ()⍺ 색상 목록에 다음 기능을 적용한 결과 :

   s←{... } (대한 다음 익명 함수입니다 AME) ( 인수)

    ,¨/⍵ 각 요소를 결합합니다 (각 조커 값에 대한 실행을 만듭니다).

     공개 ( /순위를 낮추기 때문에 )

    ≢∘∪¨ 각리스트의 고유 한 요소 수

    1∊ 멤버입니까? (즉, 동일한 목록이 있습니까?)

()∨또는 :

2.2.

  ∪⍺ 독특한 색상

  ⍺≡ 색상과 동일합니다 (즉, 고유합니다).

  ()∧ 그리고 :

2.1.

   s⍵ 숫자는 모두 같습니다

  ()∧그리고

1.

   ≢⍺ 색상 수 (예 : 타일 수)

   3≤ 3은 그보다 작거나 같다


1
와우, APL은이 도전에 대한 훌륭한 도구 인 것 같습니다
Mr. Xcoder

3

젤리 , 41 40 38 36 바이트

EȧI=1ȦȯE
0,W€yµZç/ɓQ⁼⁸ȧ
L>2ȧ4p13ðç€Ṁ

온라인으로 사용해보십시오! (테스트 스위트 바닥 글 제공)

(color, value)일반 타일과 0조커 에 대한 배열로 입력을 받습니다. 색상은 정수로 표시됩니다 (현재 코드와 관련이 있는지 확실하지는 않지만).

출력 1(거친) 또는 0(거짓)

설명

L>2ȧ4p13ðç€Ṁ    Main link, checks if a sequence is valid. Args: sequence
L                 Get the length of the sequence.
 >2               Check if it's at least 3 tiles.
   ȧ4             And: yield 4 if it is, 0 otherwise.
     p13          Cartesian product: yield all possible tiles if
                  result was 4, empty array otherwise.
        ð         Begin a new dyadic chain with args (tiles, sequence).
         ç€       Call the first helper link for each tile with args (tile, sequence).

0,W€yµZç/ɓQ⁼⁸ȧ    First helper link, checks if a sequence is valid if jokers
                  are substituted for the given tile. Args: tile, sequence
0,                  Make a pair [0, tile].
  W€                Turn that into [[0], [tile]].
    y               Map all 0's (jokers) into tile in the sequence.
     µ              Begin a new monadic chain with args (sequence).
      Z             Transpose to get list [colors, values].
       ç/           Call the second helper link with args (colors, values).
         ɓ          Begin a new dyadic chain with args (sequence, valid).
          Q         Remove duplicate tiles from the sequence.
           ⁼⁸       Check if the sequence is unchanged (i.e. there were no duplicates).
             ȧ      And with the output of the second helper.

EȧI=1ȦȯE    Second helper link, checks if a sequence is valid assuming no duplicates.
            Args: colors, values
E             Check if all the colors are the same.
 ȧ            Logical and with the values array.
              Yields the values if they were, 0 if not.
  I           Find the differences between each value.
              Yields [] if the colors differed.
   =1         See if each difference is equal to 1.
              Yields [] if the colors differed.
     Ȧ        Check if the list was nonempty and all values were truthy.
              Yields 1 for valid mono-colors, 0 otherwise.
      ȯ       Logical or with the values array.
              Yields 1 for valid mono-colors, the values otherwise.
       E      Check if all the values are the same. For valid mono-colors
              this tests if all items of [1] are equal (obviously true).
              Yields 1 for valid sequences, 0 otherwise.

나는 당신이 일관된 진실 / 거짓을 출력해야한다고 생각합니다.
Adám

@ Adám Edited, 다행히도 바이트 수에는 영향을 미치지 않았습니다.
PurkkaKoodari

2

파이썬 2 , 3713703623624129325 바이트

  • Mr.Xcoder @ 1 바이트를 저장 : str.split()대신list literal
  • 8 바이트 저장 : 단축 len(x)-1
  • 19 바이트 저장 : J O BK B R 대한 Joker, Orange, Black, Blue, Red리터럴
  • @ Mr.Xcoder는 또 다른 12 바이트를 저장했습니다. 감사합니다 !!
  • @ Mr.Xcoder 덕분에 또 다른 4 바이트
def f(x):
 j=sum("J"in i for i in x);z=len(x)-1
 if j>1or z<2:return False
 if j<1:return(all(i[0]==x[0][0]for i in x)and sum(i[1]==x[0][1]for i in x)<2)or(all(i[1]==x[0][1]for i in x)and sum(int(x[m+1][0])==int(x[m][0])+1for m in range(z))==z)
 return any(f([[k,(i+1,j)]["J"in k]for k in x])for j in'RBbO'for i in range(13))

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




1
이것은 실제로 내가 생각했던 것보다 훨씬 더 많은 바이트를 절약합니다 : 329 .
Mr. Xcoder

1
325 바이트 . 매우 늦은 개선에 대해 죄송합니다 .
Mr. Xcoder

1

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

var testcases = [[{n:1,c:"BLUE"},{n:2,c:"BLUE"},{n:3,c:"BLUE"},{n:4,c:"BLUE"},{n:5,c:"BLUE"}, {n:6,c:"BLUE"}],[{n:6,c:"BLUE"},{n:6,c:"RED"},{n:6,c:"BLACK"}],[{n:5,c:"BLACK"},{n:6,c:"BLACK"},{n:7,c:"BLACK"},{n:8,c:"BLACK"},{n:9,c:"BLACK"},{n:10,c:"BLACK"},{n:0,c:"JOKER"},{n:12,c:"BLACK"}],[{n:0,c:"JOKER"},{n:3,c:"BLUE"},{n:3,c:"RED"}],[{n:8,c:"BLACK"},{n:2,c:"RED"},{n:13,c:"BLUE"}],[{n:4,c:"RED"}, {n:3,c:"RED"}, {n:5,c:"RED"}],[{n:5,c:"BLACK"}, {n:6,c:"BLACK"}],[{n:0,c:"JOKER"},{n:5,c:"RED"},{n:0,c:"JOKER"}],[{n:4,c:"RED"},{n:5,c:"RED"},{n:6,c:"BLUE"}],[{n:4,c:"RED"},{n:0,c:"JOKER"},{n:5,c:"RED"}],[{n:12,c:"BLACK"},{n:13,c:"BLACK"},{n:1,c:"BLACK"}],[{n:11,c:"BLACK"},{n:12,c:"BLACK"},{n:0,c:"JOKER"}],[{n:1,c:"BLACK"},{n:2,c:"BLACK"},{n:3,c:"BLACK"},{n:1,c:"BLUE"},{n:2,c:"BLUE"},{n:3,c:"BLUE"}]];

g=a=>a.length
j=a=>a.n==0
l=(x,y)=>x.c==y.c||j(x)||j(y)
a=s=>g(s)>2&&([q=[0],x=s[0],s.map(y=>q[0]+=x==y||((l(x,y)||x.n==y.n)&&!(j(x)&&j(y)))&&(([n=s.indexOf(y),n<1||([x=s[n-1],!l(x,y)||y.n>0&&x.n<y.n])[1]||(n<g(s)-1&&x.n+1<s[n+1].n)||(n==g(s)-1&&y.n==0&&x.n<13)])[1])?1:0)])[0][0]==g(s)

testcases.forEach(H=>console.log(a(H)));

(위의 테스트 사례에는 질문에 포함되지 않은 2 개의 추가 테스트 사례가 포함되어 있습니다. 각 테스트 사례는 각각 true 및 false입니다. 가독성은 골프 용 버전을 참조하십시오).

거친 과정 :

 Using first tile x:
   For each tile y:
     count for x: can group with y
 return: x matches n tiles, where n is the number of tiles

조커는 0숫자 값으로 음수 를 사용하여 표시됩니다 (음수도 작동 함). 이렇게하면 입력 구조체가 일관되게 유지되며 (색상과 값이 모두 있음) c=="JOKER"7 바이트를 절약 하고 확인해야 할 필요가 없습니다 .

일부 괄호가 제거 될 수 q있으며 배열로 상자에 넣지 않을 수 있습니다 (시도하고 값은 0으로 유지되거나 코 악마를 일으켰 습니다 ).

언 골프 드 :

var testcases = [
[{n:1,c:"BLUE"},{n:2,c:"BLUE"},{n:3,c:"BLUE"},{n:4,c:"BLUE"},{n:5,c:"BLUE"}, {n:6,c:"BLUE"}],//true
[{n:6,c:"BLUE"},{n:6,c:"RED"},{n:6,c:"BLACK"}],//true
[{n:5,c:"BLACK"},{n:6,c:"BLACK"},{n:7,c:"BLACK"},{n:8,c:"BLACK"},{n:9,c:"BLACK"},{n:10,c:"BLACK"},{n:0,c:"JOKER"},{n:12,c:"BLACK"}],//true
[{n:0,c:"JOKER"},{n:3,c:"BLUE"},{n:3,c:"RED"}],//true
[{n:8,c:"BLACK"},{n:2,c:"RED"},{n:13,c:"BLUE"}],//false
[{n:4,c:"RED"}, {n:3,c:"RED"}, {n:5,c:"RED"}],//false
[{n:5,c:"BLACK"}, {n:6,c:"BLACK"}],//false
[{n:0,c:"JOKER"},{n:5,c:"RED"},{n:0,c:"JOKER"}],//false
[{n:4,c:"RED"},{n:5,c:"RED"},{n:6,c:"BLUE"}],//false
[{n:4,c:"RED"},{n:0,c:"JOKER"},{n:5,c:"RED"}],//false
[{n:12,c:"BLACK"},{n:13,c:"BLACK"},{n:1,c:"BLACK"}],//false
[{n:11,c:"BLACK"},{n:12,c:"BLACK"},{n:0,c:"JOKER"}],//true
[{n:1,c:"BLACK"},{n:2,c:"BLACK"},{n:3,c:"BLACK"},{n:1,c:"BLUE"},{n:2,c:"BLUE"},{n:3,c:"BLUE"}]
];

g=a=>a.length
i=(a,v)=>a.indexOf(v)
j=x=>x.n==0
m=(x,y)=>
       (l(x,y)||x.n==y.n)
    &&!(j(x)&&j(y))
l=(x,y)=>x.c==y.c||j(x)||j(y)
c=(a,v)=>([n=i(a,v),
      n<1
    ||([x=a[n-1],!l(x,v)||v.n>0&&x.n<v.n])[1]
    ||(n<g(a)-1&&x.n+1<a[n+1].n)
    ||(n==g(a)-1&&v.n==0&&x.n<13)])[1]
a=s=>g(s)>2&&([q=[0],x=s[0],s.map(y=>q[0]+=x==y||m(x,y)&&c(s,y)?1:0)])[0][0]==g(s)

testcases.forEach(H=>console.log(a(H)));

버전은 논리를 올바르게하기 위해 노력했습니다. 일회용 람다는 인라인되었습니다. 해당 기능은 다음과 같습니다.

g() -> string.length
i() -> indexof
j() -> isJoker
m() -> do tiles match
l() -> do colors match
c() -> same-color isConsecutiveOrder
a() -> main lambda

1

C # (. NET 코어) , 198 바이트

using System.Linq;(C,N)=>{int l=C.Length,j=C.Count(x=>x<1),c=C.Distinct().Count(),n=N.Distinct().Count(),u=N.Min();foreach(var x in N)u*=0<(u&x)?2:0;return l>2&((u>0&n==l&c<2+j)|(n<2+j&c==l&l<5));};

타일의 색상과 숫자를 별도의 정수 목록으로 취합니다. 각 색상의 정수가 다르고 조커가 0으로 표시되는 한 해당 매핑의 세부 사항은 중요하지 않습니다.

숫자 입력 형식은 매우 특별합니다. 숫자로 입력해야하는 숫자 n는 대신 2 ^ n이며, 조커를 나타내는 데 사용되는 숫자는 (2 ^ 14) -1이어야합니다. 이것은 비트 단위와u&x 타일 ​​x의 값이 u이거나 조커 인 경우 로 u를 평가할 수 있습니다.

C # (. NET 코어) , 200 바이트

using System.Linq;(C,N)=>{int l=C.Length,j=N.Count(x=>x<1),c=C.Distinct().Count(),n=N.Distinct().Count(),u=N.Min();foreach(var x in N)u=u==x|x<1?u+1:0;return l>2&((u>0&n==l&c<2+j)|(n<2+j&c==l&l<5));};

입력에 대해 선택하지 않은 2 바이트 더 긴 솔루션. 그들이 다루기가 어려웠던 한곳에서 농담 자들을 위해 특별한 사례를 사용하는 것이 나 자신이 자랑스럽게 생각하는 영리한 비트 연산보다 훨씬 길지 않은 것으로 나타났습니다. 여기서 조커는 (0,0)이고 다른 숫자는 예상대로이며 색상은 C #의 기본 비교 (특히 LinqDistinct() 연산은 '고유하지 않음'과 동일한 색상의 값을 고려해야합니다. 다른 색상의 값은 '명확한').

다른 언어에 u*=!u++^x*x사용될 수 u=u==x|x<1?u+1:0있는 것은 일부 언어 와 동일합니다 . u ^ x는 0 iff u == x이고 int가 0 배인 0 배이므로 C #이 비트 연산을 우선 순위보다 낮게하지 않으면 u ^ x * x는 u == x 또는 x == 0에 대해 0이됩니다. 수학적 것들. C #은 명시 적 캐스팅없이 int를 부울로 해석 할 수 없습니다. 열심히 시도가 유형의 작품은 값을 변환 할 수 있도록하는 언어 0not 0falsetrue적용하기 전에 !int로 다시 갈 때 다음하지만 그들에게, 그리고 해석 !false1로하고 !true, 내가 다른 언어를 보장 할 수 없습니다 말했다 0 모든 예정대로 실제로 것 알고리즘의 나머지 부분에서 이익을 얻지 못할 수도 있습니다.


1

스칼라, 491 477 자, 491 477 바이트

이 도전은 재미있었습니다. 감사.

var c=Seq("O","B","b","R")
t match{case _ if t.length<3=>false
case _ if t.exists(x=>x._1==0)=>{var b=false
if(t.filter(q=>q._1!=0).exists(q=>q._1==0))b else{for(y<-1 to 13)for(u<-c)b=b|f(t.takeWhile(q=>q._1!=0)++:(y,u)+:t.reverse.takeWhile(q=>q._1!=0).reverse)
b}}
case _::(x,_)::_ if t.forall(_._1==x)=>true
case _ if t.forall(_._2==c(0))|t.forall(_._2==c(1))|t.forall(_._2==c(2))|t.forall(_._2==c(3))=>(t(0)._1 to t(0)._1+t.length-1).toList equals t.map(_._1)
case _=>false}

따라서 f4 번째 줄에는 "JOKER"를 다른 모든 타일로 바꾸려고하는 재귀 호출이 있습니다. 코드를보다 명확하게 보려면 tio 를 참조하십시오 . t코드로 호출 된 2 튜플 (Int, String) 시퀀스를 입력으로 선택했습니다. tio를 "JOKER"는 2 튜플 (0, "JOKER")로 표시됩니다.

편집 : 주석 덕분에 14 바이트가 절약되었습니다 .ORANGE BLACK BLUE RED에 대해 OB b R을 사용합니다.

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

편집 : -2 바이트, s의 (조건 주위에서 쓸모없는 삭제case _ if


사용할 수 없습니다 O,B,b,RORANGE,BLUE,BLACK,RED바이트를 저장 대신 ? 스칼라가 어떻게 작동하는지 모르겠지만 할 수 있다고 생각합니다.
Mr. Xcoder

나는 시도했다; 사실 그것은이 방법으로 바이트를 절약합니다 (문자열 시퀀스). 총 49 바이트에 대해 수행 var (O,B,b,R)=("ORANGE","BLACK","BLUE","RED")하고 호출 O B b R합니다. 어디서 var c=Seq("ORANGE","BLACK","BLUE","RED")호출하면 c(...)총 58 바이트가됩니다. 그러나 첫 번째 경우는 허용합니다for(u<-c) 대신에for(u<-Seq(O,B,b,R)) 되므로 비용은 -9가 아니라 +2입니다. 그래도 감사합니다.
V. Courtois

@ V.Courtois Mr. Xcoder가 제안한 것은 var c=Seq("O","B","b","R")색상에 대한 전체 문자열이 아닌 입력으로 해당 문자를 사용 하고 취하는 것입니다. 원래 게시물에서 언급했듯이 "색상은 ... 문자열 약어로 사용할 수 있습니다".
Kamil Drakari

오 ~ 무슨 말인지 알 겠어요. 둘 다 @ 감사합니다
V. Courtois
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.