Karıştır ve Anlaş!


14

Cuma ve ben yoruldum, bu yüzden hızlı bir tane yapalım! Girdi almayın, ancak on üç farklı numaralı kartın tümünü standart bir kart destesinde çıkarmalısınız. Ace ile 2 çıktısı (Suit agnostic).

Her kartın bir boşluk ve on _ve başka bir boşluk ile gösterilen bir üstü vardır .

Üstteki ikinci satır a /ve on boşluk ve bir\

Üçüncü satır, tüm orta-satır satırlarının, kart değerini gösteren karakter (ler), sağda iki boşluk (üstte ise) veya solda iki boşluk (altta ise) göründüğü gibi, aynıdır.

Her orta-ish sıra basit |ve on boşluk ve bir tane daha|

Sonunda son satır bir \ve on _ve son olarak bir/

Değer çok basamaklıysa, kartın yüksekliğine göre toplam genişlik değişmemelidir. (örneğin, 10 kartın kenarlarını genişletmez)

Kral Örneği:

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

9 Örnek

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

10 Örnek

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

Bunları en azdan en büyüğe doğru sıralayın (Aslar yüksektir!).

Bu kod golf yani kısa kod kazanır.

Eğlenin ve eğlenceli bir hafta sonu geçirin!


2
Alt 10'un sağ kenara yapışıp yapışmadığını görmek için 10 Örneğimiz olabilir mi?
Güneşli Pun

@SunnyPun neden tabii ki
jacksonecac

1
Kartlar dikey mi, yatay mı düzenlenmeli yoksa önemli mi?
DLosc

Soldan sağa veya yukarıdan aşağıya oyuncu seçimi.
jacksonecac

Yanıtlar:


10

PowerShell V2 +, 120 116 114 108 bayt

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

Bir aralık oluşturur 2..10ve char-array ile dizi birleştirme yapar JQKA. Bunu bir döngüye besler |%{...}. Her yineleme, set $zuygun bir (Karta ister mekanların sayısına eşit 10ya da değil), resim grubu $xiçin 10çizgi ve set $yiçin 10boşluklar.

Sonra yerleşimlerimize başlıyoruz. Write-OutputBoru hattı öğeleri arasına yeni bir satır eklemek için varsayılandan yararlanacağız, bu yüzden sadece malzemeleri boru hattına almamız gerekiyor. Çoğu yerde, birkaç bayt tasarruf etmek için dizelerimizi kapatmak ve yeniden açmak yerine gerçek bir satırsonu kullandığımızı unutmayın.

Birincisi sadece $xiki boşluk, sonra $yiki eğik çizgi, sonra | $_$z|"boru, bir boşluk, uygun sayıda boşluk ve başka bir boru ile. Bu, değer çizgisine kadar ve değer çizgisini içeren kartların üstünü oluşturur.

Bir sonraki dizi bir dizi kullandığından, burada noktalı virgül kullanmalıyız. ,"|$y|"*5Boşluklu boru, virgül operatörü ile, bir şerit-dizisi oluşturur - çıkış, bu dizisinin her bir elemanı için ücretsiz bir yeni satır alır.

Daha sonra, "|$z$_ |alt değer işareti için ve son $xolarak kartın alt kısmı için eğik çizgilerle.

Çıktı Snippet'i

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'in kazandığı garip bir gün! İyi iş :)
Kade

@Shebang Teşekkürler! Sub-100 çok yakın ama bunu başarabileceğimden emin değilim.
AdmBorkBork

Beni üç bayt dövüyorsun. ÜÇ BYT !!
Gabriel Benamy

6

Python, 161 160 156 149 bayt

Shebang tarafından kaydedilen bir bayt

Bu biraz iş kullanabilir ama işte burada:

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+"/"

açıklama

Kullanarak tüm sıralamaların bir listesini yaparız map(str,range(2,11). Sonra her bir rütbe arasında geçiş yaparız ve bir kart yaparız.

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

Kartın üst kısmını yapıyoruz:

o+v+"\n"

Sonra rütbe sola gider:

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

Biz kullanıyoruz .ljustçünkü 10iki uzun ve diğer ikisi de geniş.

Sonra ortadaki 5 satırı yazdırırız:

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

ve alt sıra:

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

Son olarak kartın alt kısmını yazdırıyoruz:

"\\"+v+"/"

2
Hızlı Holy Moly
jacksonecac

Bayt sayınız kapalı (155 sayıyorum). Ancak, bir değişken yaparsanız v="_"*10ve bu örnekleri değiştirirseniz, size başka bir bayt kazandırır!
Kade

5

JavaScript (ES6), 151 bayt

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


@Emigna Teşekkürler, diğer cevabımda da unuttum.
Neil

4

Perl, 128 117 111 bayt

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

6 gerçek satır, her biri 1 bayt tasarruf sağlar. Bir ters eğik çizgiden kaçmak zorunda kalmadan 1 bayt kaydetmek için satır 2 ve 4'teki tek tırnak işareti nedeniyle doğrudan komut satırından çalıştırılamaz .

Edit: Ben başında Ace koymak, ama sonunda olması gerekiyordu. Bayt sayısını değiştirmez.

Düzenleme 2: -11 bayt: Bazı gereksiz ifadelerden kurtuldum ve başka bir gerçek satırsonu ekledi. Artık her şey tek bir printf aracılığıyla çıktılanıyor.

Düzenleme 3: @Ton Hospel sayesinde -5 bayt. Ama nedense, işyerine kıyasla evde 112 yerine 111 bayt alıyorum, bu yüzden ev bilgisayarımın bana verdiği bayt sayısı ile gidiyorum.


Bunun _ x10yerine , geçerli bir sembol adı olan değişmez değerleri alıntılamak zorunda değilsiniz "_"x10. Ayrıca qwneredeyse hiç işe yaramaz. Golf Kullanım tırnak içine J,Q,K,Ayerine (hatta dışarıda bırakarak ())
Ton Hospel

Can't locate object method "_" via package "x10" (perhaps you forgot to load "x10"?) at shuffle.pl line 1.
Alt çizginin

1
Biraz daha golf ( \ngerçek satırsonu yerine ):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 Bayt

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
Birkaç bayt kaydetmek için sonuncu ifile değiştirilebilir $k>9&&$c[29]=$c[113]=0&$c[112]=1;. Ayrıca, Notepad ++ kodunuzun aslında 241 bayt uzunluğunda olduğunu söylüyor. Bu baytlardan 1'inin yeni satırdan geldiğini biliyorum. Ama diğeri benim için bir puslu.
Ismael Miguel

3

///, 182180 bayt

/+/_____//*/# |
&//&/@@@@@|# //%/ |
\\\\++\\\/
//$/ ++
\\\/!\\\\
| //#/       //!/#   //@/|!|
/$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%

Çevrimiçi deneyin!

M-chrzan sayesinde -2 bayt


+Yalnızca 5 _sn yerine iki bayt kaydedebilir ve sonra +tekli +s bulunduğunuz yerde iki s kaydedebilirsiniz .
m-chrzan

3

Python 3.5, 110 bayt

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

Baskılar

  • En iyi iki satır olduğunu' %s\n/%%11s\n'%u%'\\'u'_'*10
  • '| %-2s %2s |\n'Her biri iki dize biçimlendirme yuvasına sahip orta 7 satır . İlk ve sonuncusu kart değeriyle, geri kalanı ise boşluk bırakmadan boşlukla doldurulur
  • Sonuçta '\% s /'% u

Python 3.5'in yeni açma özellikleri iki yerde kullanılıyor. Etiket listesi [*range(2,11),*'JQKA'], sayıları ve harfleri tek bir listede açar. Ve, demet (c,*' '*12,c)merkezdeki oniki boşluk girişini açar.


2

Scala, 161 bayt

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

Toplu, 236 bayt

@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 \__________/

Bu üç farklı şekilde golf çalıştı ama her seferinde aynı bayt sayısı ile sona erdi ...


2

05AB1E , 71 70 68 66 65 64 bayt

CP-1252 kodlamasını kullanır .

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

TIO atm'de çalışmadığı için biraz değiştirilmiş bağlantı ÿ.

Çevrimiçi deneyin!

açıklama

TL¦"JQKA"S« listeyi zorlar [2,3,4,5,6,7,8,9,10,J,Q,K,A]

Daha sonra her bir kart değerinin üzerine v

ð'_Tשðyapılar " __________ "
ðT×…/ÿ\yapılar "/ \"
9yg-ð×y"| ÿÿ|"Âkart değerleri (ikinci sıra ilk ters olan) ile 2 satır inşa
ðT×…|ÿ|5×formunun 5 satır inşa"| |"

Bizden sonra

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

®…\ÿ/ alt satırı oluşturur

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

2

V , 87 bayt

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

Çevrimiçi deneyin!

Bu bazı yazdırılamazlar içerdiğinden, burada bir hexdump var:

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 bayt

Umarım, bunu biraz daha kısaltmanın bir yolunu bulabilirim.

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,_);

Bu, printfbirden fazla karakteri tekrarlamak ve her şeyi güzel bir şekilde biçimlendirmekten yararlanır.


Eski versiyon:

Tam olarak bir parça güzellik değil, işe yarıyor!

$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/
";

Sayesinde Jörg Hülsermann bir hata tespit etmek için ve bana bunu azaltılmış onun kod parçasını kullanmak bildirdiğiniz için 4 bayt! Ve ölümcül bir hata bulmak için.


10 garip görünüyor. Ek iş yapmanız gerektiğine inanıyorum
Jörg Hülsermann

@ JörgHülsermann Haklısın. 10Dinleniyor. Dizinizi kullanmam iyi olur mu? [2,3,4,5,6,7,8,9,10,J,Q,K,A]Bu bölme yerine kullanmak beni 4 bayt kurtarır. Yetkilendirmezseniz anlayacağım.
Ismael Miguel

Al şunu. PHP'de daha iyi bir yol yapıyorsunuz ve ihtiyacınız olan her şeyi destekliyorum.
Jörg Hülsermann

@ JörgHülsermann Teşekkür ederim. Cevabınıza bakıyorum ve bazı baytların tıraş edileceği bazı yerler buluyorum.
Ismael Miguel

Bunun yerine $C$S $C".($P=substr($S,$C>9))."değeri 10 olan boşluklarla uğraşmak yerine $S$Co zaman ihtiyacınız$P$C
Jörg Hülsermann

1

Yakut, 115 bayt

Oldukça basit kullanımı printf.

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

1

Raket 327 bayt

(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)))

Ungolfed:

(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))
))

Test yapmak:

(main)

Çıktı:

 __________ 
/          \
| 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

Java 7, 287 bayt

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

Tamam, bu çirkin ve çok verimli değil, ama işe yarıyor .. Bu 10daha önce üstte ve altta bir boşluk ile özel bir durum olarak gerçekten herkes ile vida ..

Test edilmemiş ve test kodu:

Burada deneyin.

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

Çıktı:

 __________ 
/          \
| 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 bayt

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="")}

Ascii-art mücadelesi için bu sefer R'de oldukça rekabetçi bir cevap ve kesinlikle golf edilebilir olmalı.

R-fiddle'da deneyin

Açık ve açık

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
}

Birkaç baytın kaydedildiği en ilginç özellik üçüncü satırın atanmasıdır:

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

8Kart değerini gösteren karakter ile final |(hariç 10) arasında toplam boşluk olduğu için boşlukları tekrarlayabilir 9ve yazdırılmakta olan karttaki karakter sayısını çıkarabiliriz.

3rdSatırdaki her karakteri dize vektöründe kendi öğesi olarak saklayarak vektörü rtersine çevirebilir ve 9thsatır için yeniden kullanabiliriz .


1

C #, 385 Bayt

İlk ASCII Sanat yarışmam - eğlenceliydi!

golfed:

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

Ungolfed:

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

Aslında 91 bayt

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

Çevrimiçi deneyin!

açıklama

Bölüm 1: Yüz değerleri listesini ayarlama:

"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

Bölüm 2: Kartların Oluşturulması ( \nokunabilirlik için yeni satır ile değiştirildi ):

;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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.