셔플 및 거래!


14

금요일이고 피곤합니다. 빨리 해봅시다! 입력하지 마십시오. 표준 카드 덱에서 13 개의 서로 다른 번호의 카드를 모두 출력해야합니다. Ace (Suit agnostic)를 통해 2를 출력해야합니다.

각 카드에는 공백 과 10 _및 다른 공백으로 표시되는 상단이 있습니다.

상단에서 두 번째 행은 a /와 10의 공백 과 a 로 표시됩니다 .\

세 번째 행은 카드 값을 나타내는 문자가 맨 오른쪽에 두 칸 (위에있는 경우) 또는 왼쪽에 두 칸 (가장 아래에있는 경우)을 나타내는 점을 제외하고 모든 중간 행과 동일합니다.

각각의 중간 열은 단순 |하고 10 개의 공백 이며 1 개 이상입니다.|

마지막 줄은 a \와 10 _이며 마지막으로/

값이 여러 자리 인 경우 카드 높이의 전체 너비가 변경되지 않아야합니다. (즉, 10은 카드의 측면을 넓 히지 않습니다)

왕 예 :

 __________ 
/          \
| K        |
|          |
|          |
|          |
|          |
|          |
|        K |
\__________/

9 예

 __________ 
/          \
| 9        |
|          |
|          |
|          |
|          |
|          |
|        9 |
\__________/

10 예

 __________ 
/          \
| 10       |
|          |
|          |
|          |
|          |
|          |
|       10 |
\__________/

최소에서 최대 순서로 출력합니다 (에이스가 높음).

이것은 코드 골프이므로 가장 짧은 코드가 승리합니다.

즐거운 주말 보내세요!


2
아래쪽 10이 오른쪽 가장자리에 붙어 있는지 여부를 확인하는 10 가지 예가 있습니까?
Sunny Pun

@SunnyPun 왜 물론
jacksonecac

1
카드를 세로, 가로 또는 정렬해야합니까?
DLosc

왼쪽에서 오른쪽 또는 위에서 아래로 플레이어 선택.
jacksonecac

답변:


10

PowerShell을 V2 +, 120 116 114 108 바이트

2..10+[char[]]'JQKA'|%{$z=' '*(8-!($_-10));$x='_'*10;$y=' '*10;" $x 
/$y\
| $_$z|";,"|$y|"*5;"|$z$_ |
\$x/"}

범위를 구성 2..10하고 char-array를 사용 하여 배열 연결을 수행 JQKA합니다. 루프에 넣습니다 |%{...}. 각 반복마다 $z적절한 수의 공백 (카드 사용 여부에 따라 10)을 설정 $x하고 10밑줄로 설정 $y하고 10공백으로 설정 합니다.

그런 다음 배치를 시작합니다. 우리는 기본값을 활용할 것입니다Write-Output파이프 라인 요소 사이에 줄 바꿈을 삽입하기 을 사용할 것이므로 파이프 라인에 내용을 가져와야합니다. 대부분의 경우 문자열을 닫았다가 다시 여는 대신 리터럴 개행 문자를 사용하여 몇 바이트를 절약합니다.

첫 번째는 $x공백 $y이 두 개이고 슬래시가 두 개이고| $_$z|" 있고 파이프, 공백, 적절한 수의 공백 및 다른 파이프가 있습니다. 이것은 가치 선까지 카드 상단을 형성합니다.

다음은 배열을 사용하므로 세미콜론을 사용해야합니다. 이 ,"|$y|"*5구성은 공백이있는 파이프의 쉼표 연산자로 문자열 배열을 생성합니다. 출력 시이 배열의 각 요소는 무료로 줄 바꿈을 얻습니다.

그런 다음 "|$z$_ |하단 값 표시에 $x대해 마지막 으로 카드 하단에 슬래시가 표시 됩니다.

출력 스 니펫

PS C:\Tools\Scripts\golfing> 2..10+[char[]]'JQKA'|%{$z=' '*(8,7)[$_-eq10];" $(($x='_'*10)) ";"/$(($y=' '*10))\";"| $_$z|";,"|$y|"*5;"|$z$_ |";"\$x/"}
 __________ 
/          \
| 2        |
|          |
|          |
|          |
|          |
|          |
|        2 |
\__________/
 __________ 
/          \
| 3        |
|          |
|          |
|          |
|          |
|          |
|        3 |
\__________/
 __________ 
/          \
| 4        |
...

1
PowerShell이 ​​승리하는 이상한 날입니다! 좋은 일 :)
Kade

@Shebang 감사합니다! Sub-100은 너무 가까이 붙어 있지만, 그것을 만들 수 있는지 확실하지 않습니다.
AdmBorkBork

[떨리는 주먹] 당신은 나를 3 바이트 꺾고 있습니다. 3 바이트 !!
Gabriel Benamy

6

파이썬 161 160 156 149 바이트

Shebang이 저장 한 1 바이트

이것은 약간의 작업을 사용할 수 있지만 여기에 있습니다 :

o=" ";v="_"*10
for x in map(str,range(2,11)+list("JKQA")):print o+v+"\n/",o*9+"\\\n|",x.ljust(8),"|"+("\n|"+o*10+"|")*5+"\n|",o*6+x.ljust(3)+"|\n\\"+v+"/"

설명

를 사용하여 모든 순위 목록을 순서대로 map(str,range(2,11)만듭니다. 그런 다음 각 순위를 반복하고 카드를 만듭니다.

print o+"_"*10+"\n/",o*9+"\\\n|",x.ljust(8),"|"+("\n|"+o*10+"|")*5+"\n|",o*6+x.ljust(3)+"|\n\\"+"_"*10+"/"

우리는 카드의 상단을 만듭니다 :

o+v+"\n"

그런 다음 순위가 왼쪽으로 이동합니다.

"/",o*9+"\\\n|",x.ljust(8),"|"

우리 는 길이가 길고 다른 모든 것이 하나 .ljust이기 때문에 사용 10합니다.

그런 다음 중간에 5 개의 행을 인쇄합니다.

"|"+("\n|"+o*10+"|")*5+"\n|"

그리고 최하위 :

"\n|",o*6+x.ljust(3)+"|\n"

마지막으로 카드 하단을 인쇄합니다.

"\\"+v+"/"

2
빠른 몰리
jacksonecac

당신의 바이트 카운트가 꺼져있는 것 같습니다 (155를 셉니다). 그러나 변수를 만들고 v="_"*10해당 인스턴스를 바꾸면 다른 바이트가 절약됩니다!
Kade

5

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

f=
_=>`2345678910JQKA`.replace(/.0?/g,s=>` __________
/          \\
| `+(s+=`   `+s).slice(0,4)+`     |
|     `.repeat(6)+s.slice(-4)+` |
\\__________/
`)
;
document.write('<pre>'+f());


@Emigna 고마워, 나는 다른 대답에서도 잊어 버렸다.
Neil

4

128 117 111 바이트

map{printf$"."_"x10 ."
/".$"x10 .'\
| %-9s|
'.("|".$"x10 ."|
")x5 ."|%9s |
\\"."_"x10 ."/
",$_,$_}2..10,J,Q,K,A

6 개의 리터럴 개행은 각각 1 바이트를 절약합니다. 백 슬래시를 이스케이프 처리하지 않아도 1 바이트를 절약하기 위해 2 행 및 4 행의 작은 따옴표로 인해 명령 행에서 직접 실행할 수 없습니다 .

편집 : 에이스를 처음에 넣었지만 마지막에 있어야합니다. 바이트 수는 변경되지 않습니다.

편집 2 : -11 바이트 : 불필요한 문장을 제거하고 또 다른 리터럴 줄 바꿈을 추가했습니다. 모든 것이 이제 단일 printf를 통해 출력됩니다.

@Ton Hospel 덕분에 3 : 5 바이트를 편집하십시오. 그러나 어떤 이유로 든 직장과 비교할 때 집에서 112 바이트 대신 111 바이트를 얻으므로 가정용 컴퓨터가 제공하는 바이트 수를 사용합니다.


_ x10대신 유효한 기호 이름 인 리터럴을 인용 할 필요는 없습니다 "_"x10. 또한 qw거의 유용하지 않습니다. 골프에서. J,Q,K,A대신 인용 부호 를 사용하십시오 (조차 제외 ())
Ton Hospel

밑줄 주위의 따옴표를 제거하면 인터프리터 오류가 발생합니다. Can't locate object method "_" via package "x10" (perhaps you forgot to load "x10"?) at shuffle.pl line 1. 이유를 모르지만 인터프리터와 싸우지 않습니다. (
Gabriel Benamy

1
좀 더 골프 ( \n실제 줄 바꿈으로 대체 ) :printf' %2$s\n/%3$10s\\n| %-9s|\n'.'|%3$10s|\n'x5 .'|%1$9s |\n\%s/\n',$_,"_"x10for 2..10,J,Q,K,A
Ton Hospel

4

PHP, 233 바이트

foreach([2,3,4,5,6,7,8,9,10,J,Q,K,A]as$k){for($c="",$i=0;$i<10;$i++)$c.=str_pad($i?$i>1&$i<9?"|":($i<2?"/":"\\"):" ",11,$i%9?" ":_).($i?$i>1&$i<9?"|":($i<2?"\\":"/"):" ")."\n";$c[113]=$c[28]=$k;$k>9&&$c[29]=$c[113]=0&$c[112]=1;echo$c;}

1
마지막 if은으로 대체되어 $k>9&&$c[29]=$c[113]=0&$c[112]=1;몇 바이트를 절약 할 수 있습니다 . 또한 메모장 ++은 코드의 길이가 실제로 241 바이트라고 말합니다. 나는 그 바이트 중 1 개가 줄 바꿈임을 알고 있습니다. 그러나 다른 하나는 나에게 미쳤습니다.
Ismael Miguel

3

///, 182180 바이트

/+/_____//*/# |
&//&/@@@@@|# //%/ |
\\\\++\\\/
//$/ ++
\\\/!\\\\
| //#/       //!/#   //@/|!|
/$2*2%$3*3%$4*4%$5*5%$6*6%$7*7%$8*8%$9*9%$10#|
@@@@@|#10 |
\\++\/
$J*J%$K*K%$Q*Q%$A*A%

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

m-chrzan 덕분에 -2 바이트


+단 5 _초 를 대신하여 +단일 바이트가 있는 곳에 2 바이트를 두어 2 바이트를 절약 할 수 있습니다 +.
m-chrzan

3

파이썬 3.5, 110 바이트

u='_'*10
for c in[*range(2,11),*'JQKA']:print(' %s\n/%%11s\n'%u%'\\'+'| %-6s%2s |\n'*7%(c,*' '*12,c)+'\%s/'%u)

인쇄물

  • 상위 두 줄 입니다' %s\n/%%11s\n'%u%'\\'u'_'*10
  • 가운데 7 줄 '| %-2s %2s |\n'은 각각 두 개의 문자열 형식화 슬롯이 있습니다. 첫 번째와 마지막은 카드 값으로 채워지고 나머지는 공백으로 채워집니다.
  • 결론 '\ % s /'% u

파이썬 3.5의 새로운 언 패킹 기능은 두 곳에서 사용됩니다. 레이블 목록은 [*range(2,11),*'JQKA']숫자와 문자를 하나의 목록으로 압축 해제합니다. 그리고 튜플은 (c,*' '*12,c)12 개의 공백을 중앙으로 풉니 다.


2

스칼라, 161 바이트

val a=" "*7
val u="_"*10
((2 to 10)++"JQKA")map(_+"")map{x=>val p=" "*(2-x.size)
s" $u \n/$a   \\\n| $x$p$a|\n" + s"|$a   |\n" * 5 + s"|$a$p$x |\n\\$u/\n"}

2

배치, 236 바이트

@echo off
for %%v in (2 3 4 5 6 7 8 9 10 J Q K A)do call:v %%v
exit/b
:v
set s=%1       %1
echo  __________
echo /          \
echo ^| %s:~0,8% ^|
for /l %%l in (1,1,5)do echo ^|          ^|
echo ^| %s:~-8% ^|
echo \__________/

나는 이것을 세 가지 다른 방법으로 골프를 시도했지만 매번 같은 바이트 수로 끝났습니다 ...


2

05AB1E , 71 70 68 66 65 64 바이트

용도의 CP-1252 인코딩을 .

TL¦"JQKA"S«vð'_TשððT×…/ÿ\9yg-ð×y"| ÿÿ|"ÂðT×…|ÿ|5×sT‡®…\ÿ/JTä»,

다음과 같이 약간 수정 된 링크 ÿTIO atm에서 작동하지 않는

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

설명

TL¦"JQKA"S« 목록을 푸시 [2,3,4,5,6,7,8,9,10,J,Q,K,A]

그런 다음 각 카드 값을 v

ð'_Tשðconstructs " __________ "
ðT×…/ÿ\constructs "/ \"
9yg-ð×y"| ÿÿ|"Â는 카드 값이있는 2 개의 행을 구성합니다 (두 번째 행은 첫 번째 순서 임).
ðT×…|ÿ|5× 형태의 5 개 행을 구성"| |"

그럼 우리

s     # move the 2nd card value row after the 5 "middle rows"
 T‡  # and replace 1 with 0 and vice versa

®…\ÿ/ 맨 아래 줄을 구성

J       # join everything into 1 string
 Tä     # split into 10 parts
   »,   # merge by newline and print with newline

2

V , 87 바이트

i ±_ 
/± \Ypr|$.Y6P3|r2Lhhr2o\±_/
H8ñy}GP2j6j? _ñ2j$X6jxG"04p/9
rJn.nrQn,nrKn.nrAn.

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

여기에는 인쇄 할 수없는 것이 포함되어 있으므로 다음은 16 진 덤프입니다.

0000000: 6920 b15f 200a 2fb1 205c 1b59 7072 7c24  i ._ ./. \.Ypr|$
0000010: 2e59 3650 337c 7232 4c68 6872 326f 5cb1  .Y6P3|r2Lhhr2o\.
0000020: 5f2f 0a1b 4838 f179 7d47 5032 6a01 366a  _/..H8.y}GP2j.6j
0000030: 013f 205f f132 6a24 5836 6a78 4722 3034  .? _.2j$X6jxG"04
0000040: 702f 390a 724a 6e2e 6e72 516e 2c6e 724b  p/9.rJn.nrQn,nrK
0000050: 6e2e 6e72 416e 2e                        n.nrAn.

2

PHP, 135 131 158 134 바이트

바라건대, 나는 이것을 조금 더 단축시키는 방법을 찾을 수 있습니다.

foreach([2,3,4,5,6,7,8,9,10,J,Q,K,A]as$C)printf(" %'_9s
/%12s| %-8s|%s
|%8s |
\\%'_9s/
",_,'\
',$C,str_repeat('
|         |',5),$C,_);

이것은 printf여러 문자를 반복하고 모든 것을 멋지게 형식화하는 이점을 이용 합니다.


구 버전:

정확히 아름다움의 조각이 아니라 작동합니다!

$L=__________;$S='        ';foreach([2,3,4,5,6,7,8,9,10,J,Q,K,A]as$C)echo" $L
/  $S\
| $C".($P=substr($S,$C>9))."|
",str_repeat("|  $S|
",5),"|$P$C |
\\$L/
";

덕분에 르그 Hülsermann 버그를 검출 나를하여 감소 그의 코드의 일부를 사용 해줘서 4 바이트를! 치명적인 버그를 발견했습니다.


10은 이상하게 보입니다. 추가 작업을해야한다고 생각합니다.
Jörg Hülsermann

@ JörgHülsermann 당신이 맞아요. 는 10도청한다. 어레이를 사용해도 괜찮습니까? [2,3,4,5,6,7,8,9,10,J,Q,K,A]그 분할 대신 사용하면 4 바이트가 절약됩니다. 승인하지 않으면 이해하겠습니다.
Ismael Miguel

가져. PHP에서 더 나은 방법을 만들었고 필요한 것을 모두 지원합니다.
Jörg Hülsermann

@ JörgHülsermann 감사합니다. 귀하의 답변을보고 있으며 바이트를 깎을 곳을 찾고 있습니다.
Ismael Miguel

대신에 $C$S $C".($P=substr($S,$C>9))."공백 값 (10)와 대신 처리하는 $S$C당신이 필요$P$C
요 르그 Hülsermann

1

루비, 115 바이트

을 매우 간단하게 사용 printf합니다.

([*(?2.."10")]+%w{J Q K A}).map{|e|printf" #{u=?_*10} 
/%11s
| %-9s|
#{(?|+' '*10+"|
")*5}|%9s |
\\#{u}/
",?\\,e,e}

1

라켓 327 바이트

(let*((ms make-string)(p #\space)(e? equal?)(sa string-append)(f(λ(s)(display(sa" "(ms 10 #\_)" \n""/"(ms 10 p)"\\\n""| "s
(ms(if(e? s"10")7 8)p)"|\n"(apply sa(for/list((i 6))"|          |\n"))"| "(ms(if(e? s"10")6 7)p)s" |\n"
"\\"(ms 10 #\_)"/\n")))))(for((i(range 2 11)))(f(number->string i)))(for((i'("J""Q""K""A")))(f i)))

언 골프 드 :

(define (main)
(let* ((ms make-string)
       (e? equal?)
       (sa string-append)
      (f(lambda(s)
  (display
   (sa
    " "
    (ms 10 #\_)
    " \n"
    "/"
    (ms 10 #\space)
    "\\\n"
    "| " s   (ms (if(e? s "10") 7 8) #\space)   "|\n"
    (apply sa (for/list ((i 6)) "|          |\n"))
    "| "  (ms (if(e? s "10") 6 7) #\space)  s " |\n"
    "\\" (ms 10 #\_) "/\n")
   ))))
(for ((i(range 2 11)))
  (f (number->string i)))
(for ((i '("J" "Q" "K" "A")))
  (f i))
))

테스트 :

(main)

산출:

 __________ 
/          \
| 2        |
|          |
|          |
|          |
|          |
|          |
|          |
|        2 |
\__________/
 __________ 
/          \
| 3        |
|          |
|          |
|          |
|          |
|          |
|          |
|        3 |
\__________/
 __________ 
/          \
| 4        |
|          |
|          |
|          |
|          |
|          |
|          |
|        4 |
\__________/
 __________ 
/          \
| 5        |
|          |
|          |
|          |
|          |
|          |
|          |
|        5 |
\__________/
 __________ 
/          \
| 6        |
|          |
|          |
|          |
|          |
|          |
|          |
|        6 |
\__________/
 __________ 
/          \
| 7        |
|          |
|          |
|          |
|          |
|          |
|          |
|        7 |
\__________/
 __________ 
/          \
| 8        |
|          |
|          |
|          |
|          |
|          |
|          |
|        8 |
\__________/
 __________ 
/          \
| 9        |
|          |
|          |
|          |
|          |
|          |
|          |
|        9 |
\__________/
 __________ 
/          \
| 10       |
|          |
|          |
|          |
|          |
|          |
|          |
|       10 |
\__________/
 __________ 
/          \
| J        |
|          |
|          |
|          |
|          |
|          |
|          |
|        J |
\__________/
 __________ 
/          \
| Q        |
|          |
|          |
|          |
|          |
|          |
|          |
|        Q |
\__________/
 __________ 
/          \
| K        |
|          |
|          |
|          |
|          |
|          |
|          |
|        K |
\__________/
 __________ 
/          \
| A        |
|          |
|          |
|          |
|          |
|          |
|          |
|        A |
\__________/

1

자바 7, 287 바이트

String c(){String r="",l="__________",c=(" "+l+" \n/s\\\n| z       |\nxxxxxx|       y|\n\\"+l+"/\n").replace("x","|s|\n").replace("s","          ");for(int i=0;i++<13;r+=c.replace("z",i==10?"10":(l=i<2?"A ":i>12?"K ":i>11?"Q ":i>10?"J ":i+" ")).replace("y",i==10?"10 ":" "+l));return r;}

좋아, 이것은 못 생겼고 매우 효율적이지는 않지만 작동합니다. 10상단과 하단 위치에 공간이있는 특별한 경우로 실제로 모든 사람들과 조여집니다 ..

언 골프 및 테스트 코드 :

여기에서 시도하십시오.

class M{
  static String c(){
    String r = "",
           l = "__________",
           c = (" " + l + " \n/s\\\n| z       |\nxxxxxx|       y|\n\\" + l + "/\n")
                 .replace("x", "|s|\n")
                 .replace("s", "          ");
    for(int i = 0; i++ < 13; r += c
        .replace("z", i == 10
                       ? "10"
                       : (l = i < 2
                               ? "A "
                               : i > 12
                                  ? "K "
                                  : i > 11
                                     ? "Q "
                                     : i > 10
                                        ? "J "
                                        : i+" "))
        .replace("y", i == 10
                       ? "10 "
                       : " "+l));
    return r;
  }

  public static void main(String[] a){
    System.out.println(c());
  }
}

산출:

 __________ 
/          \
| A        |
|          |
|          |
|          |
|          |
|          |
|          |
|        A |
\__________/
 __________ 
/          \
| 2        |
|          |
|          |
|          |
|          |
|          |
|          |
|        2 |
\__________/
 __________ 
/          \
| 3        |
|          |
|          |
|          |
|          |
|          |
|          |
|        3 |
\__________/
 __________ 
/          \
| 4        |
|          |
|          |
|          |
|          |
|          |
|          |
|        4 |
\__________/
 __________ 
/          \
| 5        |
|          |
|          |
|          |
|          |
|          |
|          |
|        5 |
\__________/
 __________ 
/          \
| 6        |
|          |
|          |
|          |
|          |
|          |
|          |
|        6 |
\__________/
 __________ 
/          \
| 7        |
|          |
|          |
|          |
|          |
|          |
|          |
|        7 |
\__________/
 __________ 
/          \
| 8        |
|          |
|          |
|          |
|          |
|          |
|          |
|        8 |
\__________/
 __________ 
/          \
| 9        |
|          |
|          |
|          |
|          |
|          |
|          |
|        9 |
\__________/
 __________ 
/          \
| 10       |
|          |
|          |
|          |
|          |
|          |
|          |
|       10 |
\__________/
 __________ 
/          \
| J        |
|          |
|          |
|          |
|          |
|          |
|          |
|        J |
\__________/
 __________ 
/          \
| Q        |
|          |
|          |
|          |
|          |
|          |
|          |
|        Q |
\__________/
 __________ 
/          \
| K        |
|          |
|          |
|          |
|          |
|          |
|          |
|        K |
\__________/

1

R, 175 바이트

for(x in c(2:10,"J","Q","K","A")){r=c("|"," ",x,rep(" ",9-nchar(x)),"|");cat(" __________ \n/          \\\n",r,"\n",rep("|          |\n",5),rev(r),"\n\\__________/\n",sep="")}

이번에는 R에서 경쟁이 치열한 대답으로 아스키 아트 도전에 대한 것이며 골프를 타야합니다.

R 바이올린에서 사용해보십시오

언 골프 및 설명

for(x in c(2:10,"J","Q","K","A")){          # For each card in vector 1,...,10,J,Q,K,A
    r=c("|"," ",x,rep(" ",9-nchar(x)),"|")  # Create variable for 3rd row called "r".
    ;cat(" __________ \n/          \\\n",   # Print: hardcoded top two rows,
    r,"\n",                                 # 3rd row,
    rep("|          |\n",5),                # Repeat middle section 5 times,
    rev(r),                                 # Reversed 3rd row,
    "\n\\__________/\n",                    # Hardcoded bottom row
    sep="")                                 # Set separator to empty string
}

몇 바이트가 저장되는 가장 흥미로운 측면은 세 번째 행의 할당입니다.

r=c("|"," ",x,rep(" ",9-nchar(x)),"|")

8카드 값을 나타내는 문자와 최종 문자 사이에 공백 이 있기 때문에 |(10 ) 반복 할 수 있습니다9 하고 현재 인쇄 된 카드의 문자 수를 뺄 .

3rd행의 각 문자를 문자열 벡터의 고유 요소로 저장 r하여 벡터를 뒤집어 9th행에 재사용 할 수 있습니다 .


1

C #, 385 바이트

나의 첫번째 ASCII Art 도전 – 재미 있었다!

골프 :

string D(){var d=new string[15];for(int i=2;i<15;i++){var a=i>10?new Dictionary<int,string>(){{ 11,"J"},{12,"Q"},{13,"K"},{14,"A"},}[i]:i+"";var r="|          |";d[i]=string.Join("\n",new string[]{" __________",@"/          \",a.Length>1?"| "+a+"       |":"| "+a+"        |",r,r,r,r,r,a.Length>1?"|       " + a +" |" : "|        "+a+" |",@"\__________/"});}return string.Join("\n",d);}

언 골프 드 :

public string D()
{
  var d = new string[15];

  for (int i = 2; i < 15; i++)
  {
    var a = i > 10 ? new Dictionary<int, string>() {
    { 11, "J" },
    { 12, "Q" },
    { 13, "K" },
    { 14, "A" },
    }[i] 
      : i+"";

    var r = "|          |";

    d[i] = string.Join("\n", new string[] {
      " __________",
      @"/          \",
      a.Length > 1 ? "| " + a + "       |" : "| " + a + "        |",
      r,
      r,
      r,
      r,
      r,
      a.Length > 1 ? "|       " + a +" |" : "|        " + a +" |",
      @"\__________/"});
  }

  return string.Join("\n", d);
}

1

실제로 91 바이트

"JQKA"#9⌐2x+`;k' ;'_9u*@++'\' 9u*'/++"| {:<9}|"5'|;' 9u*@++n"|{:>9} |"'/'_9u*'\++kp@'
jf`Mi

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

설명

1 부 : 얼굴 값 목록 설정 :

"JQKA"#9⌐2x+`PART 2 CODE`Mi
       9⌐2x                  range(2,11) ([2, 10])
"JQKA"#    +                 extend with ["J", "Q", "K", "A"]
            `PART 2 CODE`M   do Part 2 for each item in list
                          i  flatten resulting list and implicitly print

2 부 : 카드 작성 ( \n가독성 을 위해 줄 바꾸기로 대체 ) :

;k' ;'_9u*@++'\' 9u*'/++"| {:<9}|"5'|;' 9u*@++n"|{:>9} |"'/'_9u*'\++kp@'\njf
;k                                                                            duplicate the face value, push both copies to a list
  ' ;'_9u*@++                                                                 construct the top line
             '\' 9u*'/++                                                      construct the second line
                        "| {:<9}|"                                            create a format string to place the value in a left-aligned 9-width field in the top left of the card, one space away from the edge
                                  5'|;' 9u*@++n                               create 5 copies of the blank middle section
                                               "|{:>9} |"                     like before, but right-align the face value
                                                         '/'_9u*'/++          construct the bottom of the card
                                                                    kp@'\nj   push entire stack to a list, pop the list containing the face values out of that list, and join the rest (the card strings) with newlines
                                                                           f  format the card with the face values
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.