จัดการเด็ค ASCII


13

ไม่เคยมีความท้าทาย ASCAI-cards ที่แน่นอน AFAIK ดังนั้นใช้สำรับไพ่ ASCII ต่อไปนี้:

.------..------..------..------..------..------..------..------..------..------..------..------..------.
|2.--. ||3.--. ||4.--. ||5.--. ||6.--. ||7.--. ||8.--. ||9.--. ||T.--. ||J.--. ||Q.--. ||K.--. ||A.--. |
| (\/) || (\/) || (\/) || (\/) || (\/) || (\/) || (\/) || (\/) || (\/) || (\/) || (\/) || (\/) || (\/) |
| :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: |
| '--'2|| '--'3|| '--'4|| '--'5|| '--'6|| '--'7|| '--'8|| '--'9|| '--'T|| '--'J|| '--'Q|| '--'K|| '--'A|
'------''------''------''------''------''------''------''------''------''------''------''------''------'
.------..------..------..------..------..------..------..------..------..------..------..------..------.
|2.--. ||3.--. ||4.--. ||5.--. ||6.--. ||7.--. ||8.--. ||9.--. ||T.--. ||J.--. ||Q.--. ||K.--. ||A.--. |
| :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: |
| :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: || :\/: |
| '--'2|| '--'3|| '--'4|| '--'5|| '--'6|| '--'7|| '--'8|| '--'9|| '--'T|| '--'J|| '--'Q|| '--'K|| '--'A|
'------''------''------''------''------''------''------''------''------''------''------''------'
.------..------..------..------..------..------..------..------..------..------..------..------..------.
|2.--. ||3.--. ||4.--. ||5.--. ||6.--. ||7.--. ||8.--. ||9.--. ||T.--. ||J.--. ||Q.--. ||K.--. ||A.--. |
| :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: || :/\: |
| (__) || (__) || (__) || (__) || (__) || (__) || (__) || (__) || (__) || (__) || (__) || (__) || (__) |
| '--'2|| '--'3|| '--'4|| '--'5|| '--'6|| '--'7|| '--'8|| '--'9|| '--'T|| '--'J|| '--'Q|| '--'K|| '--'A|
'------''------''------''------''------''------''------''------''------''------''------''------''------'
.------..------..------..------..------..------..------..------..------..------..------..------..------.
|2.--. ||3.--. ||4.--. ||5.--. ||6.--. ||7.--. ||8.--. ||9.--. ||T.--. ||J.--. ||Q.--. ||K.--. ||A.--. |
| :(): || :(): || :(): || :(): || :(): || :(): || :(): || :(): || :(): || :(): || :(): || :(): || :(): |
| ()() || ()() || ()() || ()() || ()() || ()() || ()() || ()() || ()() || ()() || ()() || ()() || ()() |
| '--'2|| '--'3|| '--'4|| '--'5|| '--'6|| '--'7|| '--'8|| '--'9|| '--'T|| '--'J|| '--'Q|| '--'K|| '--'A|
'------''------''------''------''------''------''------''------''------''------''------''------''------'

ใช้จำนวนเต็มสองจำนวนpและqเป็นอินพุต pจำนวนผู้เล่นอยู่ที่ไหนและqจำนวนไพ่ที่ผู้เล่นแต่ละคนได้รับ

  • สุ่มสุ่มสำรับไพ่ (ซึ่งคลุมเครือ แต่หมายความว่าไพ่ทุกใบจะต้องปรากฏที่ใดที่หนึ่งเท่า ๆ กัน)
  • จัดการ 1 รอบบัตรต่อผู้เล่น, การแสดงผลqแถวของpบัตรแต่ละแถว

กฎ:

  • ผลลัพธ์ควรมีการสุ่มอย่างสม่ำเสมอการ์ดแต่ละใบควรมีโอกาสปรากฏเท่ากันทุกที่
  • มีการรับประกันว่า0 < p*q <= 52 and p < 10คุณอาจมีพฤติกรรมที่ไม่ได้กำหนดสำหรับสถานการณ์ที่ไม่เป็นไปตามนี้
  • คุณควรส่งออกqแถวของการ์ดที่มีpไพ่ต่อแถว
  • แต่ละคอลัมน์ควรคั่นด้วย | (ไปป์ที่มีถ่านล้อมรอบด้วยช่องว่าง); หากคุณเลือกถ่านที่แตกต่างจากนี้อธิบายว่าทำไม พื้นที่โดยรอบที่นี่ไม่ใช่ทางเลือก
  • แต่ละแถวจะต้องมีการขึ้นบรรทัดใหม่อย่างน้อย 1 บรรทัดในระหว่างนั้นมากกว่าหนึ่งเป็นที่ยอมรับได้ 0 ไม่ใช่ (1 บรรทัดใหม่หมายถึงการขึ้นบรรทัดใหม่โดยค่าเริ่มต้น)
  • แต่ละแถวควรมีป้ายกำกับพร้อมกับผู้เล่นที่เป็นเจ้าของในรูปแบบ "Player N" (0 หรือ 1-indexed เป็นปกติ)
  • ไม่มีหนึ่งใบอาจปรากฏขึ้นมากกว่าหนึ่งครั้ง
  • T สำหรับสิบ

ตัวอย่าง:

ฟังก์ชั่น ( p=1,q=1):

Player 1 # Can also be 0.
.------.
|2.--. |
| (\/) |
| :\/: |
| '--'2|
'------'

ฟังก์ชั่น ( p=2,q=1):

Player 1 | Player 2 # Can also be "Player 0 | Player 1"
.------. | .------.
|2.--. | | |T.--. |
| (\/) | | | (\/) |
| :\/: | | | :\/: |
| '--'2| | | '--'T|
'------' | '------'

ฟังก์ชั่น ( p=2,q=2):

Player 1 | Player 2 # Can also be "Player 0 | Player 1"
.------. | .------.
|J.--. | | |3.--. |
| (\/) | | | :/\: |
| :\/: | | | :\/: |
| '--'J| | | '--'3|
'------' | '------'
.------. | .------.
|8.--. | | |6.--. |
| :(): | | | :/\: |
| ()() | | | (__) |
| '--'8| | | '--'6|
'------' | '------'

เครดิตของศิลปะสำหรับแบบอักษรบน: http://patorjk.com/software/taag


5
คุณจะโพสต์ความท้าทายการ์ดจากการ์ดที่คุณพบที่patorjk.com/software/taagหรือไม่?

1
Soooo ... เราจะ "ใช้" เว็บไซต์นี้เพื่อแสดงผลลัพธ์ได้หรือไม่?
J42161217

1
ฉันหมายถึง: ฉันสามารถสร้างโปรแกรมที่ให้ผลลัพธ์patorjk.com/software/taag/… สำหรับการทดสอบครั้งสุดท้ายของคุณได้หรือไม่?
J42161217

5
นอกจากนี้Each row must have 1 or more newlines inbetween them, more than one is acceptable, 0 is not.... แต่กรณีทดสอบของคุณไม่มีการขึ้นบรรทัดใหม่ระหว่างการ์ด .. ?
สิ้นเชิงมนุษย์

1
มีเกือบหนึ่งความท้าทายในการ์ด ASCII คือ: เวลาเล่นโพสต์โดยฉัน
sergiol

คำตอบ:


6

ถ่าน , 142 133 125 ไบต์

NθFN«F¬¬ι«→↑×⁶θ| »Player IιFθ«↙↓.↓⁴←'←⁶↑'↑⁴.P⁶↓≔‽⁵²εW№υε≔‽⁵²ε⊞υε≔§”w↘τ[⁵PkxτG”εδδ.--.¶✂”{➙aETê;s∨Hμ⁼⎚↑Z~SÀd~⌀Tê”﹪ε⁴φ⁴'--'δ↘

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด แก้ไข: บันทึกแล้ว 9 ไบต์โดยปรับปรุงโค้ดตัวอย่างแบบสุ่มของฉัน บันทึกอีก 8 ไบต์ด้วยการปรับปรุงรหัสการพิมพ์ที่เหมาะสม คำอธิบาย:

Nθ

qอ่านจำนวนบัตรลง

FN«

วนรอบผู้เล่นแต่ละคน

F¬¬ι«→↑×⁶θ| »

หากนี่ไม่ใช่ผู้เล่นคนแรกให้พิมพ์เส้นแนวตั้งระหว่างเครื่องเล่นก่อนหน้าและเครื่องเล่นนี้

Player Iι

พิมพ์หมายเลขผู้เล่น

Fθ«

วนรอบการ์ดแต่ละใบ

↙↓.↓⁴←'←⁶↑'↑⁴.P⁶↓

พิมพ์ขอบของการ์ด

≔‽⁵²εW№υε≔‽⁵²ε⊞υε

เลือกดัชนีบัตรที่ยังไม่ได้เลือกและเพิ่มลงในรายการดัชนีบัตรที่เลือก

≔§”w↘τ[⁵PkxτG”εδδ

เลือกและพิมพ์อันดับของการ์ดโดยการจัดทำดัชนีลงในสตริงของอันดับบัตรที่ถูกต้อง ( 2-9, T, J, Q, K, A)

.--.¶

พิมพ์ส่วนบนของชุดสูท

✂”{➙aETê;s∨Hμ⁼⎚↑Z~SÀd~⌀Tê”﹪ε⁴φ⁴

พิมพ์ตรงกลางของชุดสูทโดยแบ่งเป็นสตริง สไลซ์เริ่มต้นที่ดัชนีบัตรโมดูโล 4 และรับทุกอักขระที่ 4 จนกว่าสตริงจะหมด (หรือถึงf= 1,000 ตัวอักขระ) เนื่องจาก 4 และ 13 เป็น coprime สิ่งนี้จะช่วยให้มั่นใจได้ว่ามี 52 ใบ

'--'δ↘

พิมพ์ด้านล่างของชุดสูทและสำเนาของอันดับแล้วย้ายไปยังจุดที่สะดวกไม่ไกลจากสำเนาตำแหน่งเริ่มต้นของบัตรใบถัดไปหรือจุดเริ่มต้นของเส้นแบ่งสำหรับ ผู้เล่นต่อไป


เมื่อฉันเห็นสิ่งนี้ในกล่องทรายมันเป็นความท้าทายที่ kc ในการพิมพ์สำรับซึ่งพาฉันไปที่ 102 ไบต์: ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด
Neil

3

Python 2 , 357 ไบต์

from random import*
p,q=input()
A,V=':/\:',':\/:'
c=sample([(""".------.
|%s.--. |
| %s |
| %s |
| '--'%s|
'------'"""%(n,s,t,n)).split('\n')for s,t in('(\/)',V),(A,V),(A,'(__)'),(':():','()()')for n in'123456789TJQKA'],p*q)
print' | '.join('Player '+`i`for i in range(p))
for i in range(0,p*q,p):print'\n'.join(map(' | '.join,zip(c[i:i+p][0],c[i:i+p][1])))

ลองออนไลน์!

ฉันไม่มีความคิด friggin



3

JavaScript (ES6), 328 ... 312 ไบต์

(p)(q)จะเข้าในไวยากรณ์ currying ผู้เล่นถูกทำดัชนี 0

p=>g=(q,i=p*q*6,d=[...Array(52).keys(a=`:\\/:,(__),()(),(\\/),:/\\:,:():, | ,
,.3.,|0.--. |,| 1 |,| 2 |,| '--'0|,'3',Player 4`.split`,`)].sort(_=>Math.random()-.5))=>i--+p?g(q,i,d)+a[i%p?6:7]+a[i<0?14:i/p%6|8].replace(/\d/,c=>['TJQKA'[j=x>>2]||j-3,a['3454'[x&=3]],a[x%3],'------',p+i][c],x=d[i%p+p*(i/p/6|0)]):''

การสาธิต

อย่างไร?

นี่เป็นฟังก์ชั่นวนซ้ำโดยสร้างเอาต์พุตจากล่างขึ้นบน ส่วนในช่วงหลักในการที่บัตรจะวาดiถูกเตรียมการp*q*6และ decremented 0จนกว่าจะถึง จากนั้นเราจะวาดหัวโดย decrementing ต่อไปจนกว่าจะถึงi-p

ศิลปะ ASCII ถูกแบ่งออกเป็นชิ้นเล็ก ๆ a[]เก็บไว้ในอาร์เรย์ ตารางด้านล่างอธิบายเนื้อหาของa[]ซึ่งทำให้ส่วนที่เหลือของรหัสง่ายต่อการเข้าใจ

 Index | Content    | Description
-------+------------+------------------------------------------------
    0  | ":\\/:"    | bottom of 'diamonds' and 'hearts'
    1  | "(__)"     | bottom of 'spades'
    2  | "()()"     | bottom of 'clubs'
    3  | "(\\/)"    | top of 'hearts'
    4  | ":/\\:"    | top of 'diamonds' and 'spades'
    5  | ":():"     | top of 'clubs'
    6  | " | "      | player separator
    7  | "\n"       | line-feed
    8  | ".3."      | card row #1, "3" --> "------"
    9  | "|0.--. |" | card row #2, "0" --> symbol of card value
   10  | "| 1 |"    | card row #3, "1" --> top of color ASCII art
   11  | "| 2 |"    | card row #4, "2" --> bottom of color ASCII art
   12  | "| '--'0|" | card row #5, "0" --> symbol of card value
   13  | "'3'"      | card row #6, "3" --> "------"
   14  | "Player 4" | header, "4" --> player ID

จัดรูปแบบและแสดงความคิดเห็น

p => g = (                                // p = number of players
  q,                                      // q = number of cards
  i = p * q * 6,                          // i = counter
  d = [...Array(52).keys(                 // d = deck
    a = `:\\/:,(__),...`.split`,`         // a = ASCII art pieces (truncated, see above)
  )].sort(_ => Math.random() - .5)        // shuffle the deck
) =>                                      //
  i-- + p ?                               // if i is greater than -p:
    g(q, i, d) +                          //   do a recursive call and append ...
    a[i % p ? 6 : 7] +                    //   separator or line-feed
    a[i < 0 ? 14 : i / p % 6 | 8]         //   header or card row
    .replace(/\d/, c => [                 //   where digits are replaced with:
        'TJQKA'[j = x >> 2] || j - 3,     //     0: symbol of card value
        a['3454'[x &= 3]],                //     1: top of color ASCII art
        a[x % 3],                         //     2: bottom of color ASCII art
        '------',                         //     3: horizontal border
        p + i                             //     4: player ID
      ][c],                               //
      x = d[i % p + p * (i / p / 6 | 0)]  //   x = current card with: bits 0-1 = color
    )                                     //                          bits 2-5 = value
  :                                       // else:
    ''                                    //   stop recursion

2

Python 2 , 382 358 346 338 332 ไบต์

from random import*
p,n=input()
d=zip([0,1,2,3]*13,'23456789TJQKA'*4)
shuffle(d)
C=""".------.
|%s.--. |
| %s |
| %s |
| '--'%s|
'------'"""
print' | '.join('Player '+`i`for i in range(p))
exec"for l in zip(*[(C%(v,'(:::\/(//\)\):::'[s::4],':((:\_)\/_(/:)):'[s::4],v)).split('\\n')for s,v in d[:p]]):print' | '.join(l)\nd=d[p:]\n"*n

ลองออนไลน์!


2

SOGL V0.12 , 106 ไบต์

E⁽⁰⅜║(Ηe─t¦4»\$²‘8n{"1<ω⅛┘‘4n╬¡;4n33žASUjk"TJQKA”+{a;22žF75ž}}'#δ№{ψ⌡≤οc+C}c_.∫:"▓⅛▲ŗ‘Κ⁽e{≤+};H?;lƧ |Γ∙┼;┼

ลองที่นี่!

สร้างการ์ด:

...‘                     push "(\/):\/::/\::\/::/\:(__):():()()" - the suits
    8n                   split to line lengths of 8 - individual suits
      {                  for each suit
       "...‘               push ".---| .-|   " - a quarter of a suit
            4n             split to line lengths of 4 - [".---", "| .-", "|   "]
              έ           quad palindromize - empty card
                ;          get the suit on top
                 4n        split to line lengths of 4
                   33ž     insert in the card at [3; 3]
                      A    save on variable A - card template
SU                         push "1234567890"
  jk                       remove the first and last digits
    "TJQKA”+               append "TJQKA"
            {         }    for each number - "23456789TJQKA"
             a               load the template
              ;22ž           at [2; 2] insert the current number
                  F75ž       at [7; 5] insert the current number

สับ:

'#             push 52
  δ            lower range - [0, 1, ..., 50, 51]
   №           reverse - [51, 50, ..., 1, 0]
    {       }  for each, pushing the current item
     ψ           get a random number from 0 to ToS (inclusive)
      ⌡          that many times
       ≤           put the first item of the stack on the top
        οc+C     prepend that to the variable C, predefined with an empty array

การจัดการ:

c_              push Cs contents on the stack - the stack is now a mess of cards
  .∫            repeat input times - each player - pushing the current player number
    :             duplicate the number
     "..‘         push "player "
         Κ        prepend "player " to the number
          ⁽       uppercase the 1st letter
           e{  }  repeat 2nd input times
             ≤      put the first stack item on the top
              +     append it to "Player X" vertically (making an array)
;                 get the other copy of the player number
 H?               if POP-1 (aka if it's not 1)
   ;                swap the top 2 items - the current collumn and all the previous ones (by then they've been joined together)
    l               get its (vertical) length
     Ƨ |            push " |"
        Γ           palindromize - [" | "]
         ∙          multiply " | " vertically that length times
          ┼         append it horizontally (to the previous collumns)
           ;┼       append the current collumn

2

Ruby, 262 ไบต์

->p,q{a=[*0..51].shuffle
puts ["Player %d"]*p*(d=" | ")%[*1..p],(1..q*6).map{|i|(["'------'
.------.
|%X.--. |
| %s |
| %s |
| '--'%X|".split($/)[i%6]]*p*d%a[i/6*p,p].map{|j|["(\\/):()::/\\:"[u=j%4*4-4,4],":\\/:()():\\/:(__)"[u,4],j/4][i%3]}).tr("01BC","TJQK")}}

ยากที่จะติดตาม แต่สั้นกว่า!

ทับทิม 279 ไบต์

->p,q{puts [*1..p].map{|k|"Player #{k}"}*" | "
a=[*0..51].shuffle
(q*6).times{|i|puts [".------.
|%s.--. |
| %s |
| %s |
| '--'%s|
'------'".split($/)[i%6]]*p*" | "%a[i/6*p,p].map{|j|[":\\/:()():\\/:(__)"[u=j%4*4-4,4],("%X"%(j/4)).tr("01BC","TJQK"),"(\\/):()::/\\:"[u,4]][i%3]}}}

สร้างรูปแบบสำหรับแต่ละแถวจากนั้นใช้ตัว%ดำเนินการที่ต้องการsprintfเติม

ความจริงที่ว่ามูลค่าบัตรปรากฏในทุกแถวที่ 3 มีประโยชน์ ค่าบัตรจะถูกนำเสนอในเลขฐานสิบหกมีตัวเลขทดแทน 01BCTJQK

บันทึกไว้ 4 ไบต์จากสัญลักษณ์สูทโดยพิจารณาว่าส่วนบนของเพชรและโพดำเหมือนกัน แต่เพิ่ม 2 หลังสำหรับรหัส-4ที่อยู่ท้ายj%4*4-4รหัสคือ -4 0 4 หรือ 8 โดยที่[-4,4]4 ตัวอักษรหมายถึงอักขระสุดท้ายที่ 4 ใน เชือก

อาจบันทึกอีกสองสามไบต์ ต้องทำซ้ำรหัสสำหรับการระบุตัวผู้เล่นนั้นน่าเกลียด


2

PHP, 509 ไบต์

<?$hu='(\/}';$hv=$dv=':\/:';$du=$su=':/\:';$sv='(__)';$cu=':():';$cv='()()';$q="------";$t=$argv[1];foreach([h,d,s,c]as$a)foreach([2,3,4,5,6,7,8,9,T,J,Q,K,A]as$b)$c[]=[$b,$a];shuffle($c);$h=$a=0;for(;$a<$t;$a++)$e[]="Player $a";$f[]=join(" | ",$e);for($g=$argv[2];$g--;){$p=$i=$k=$l=$m=$r=[];$j=$h+$t;for(;$h<$j;$h++){$n=$c[$h][0];$o=$c[$h][1];$p[]=".$q.";$i[]="|$n.--. |";$k[]="| ${$o.u} |";$l[]="| ${$o.v} |";$m[]="| '--'$n|";$r[]="'$q'";}foreach([p,i,k,l,m,r]as$b)$f[]=join(" | ",${$b});}echo join('
',$f);

ลองออนไลน์!

นี่เป็นความพยายามครั้งแรกของฉันที่การตีกอล์ฟดังนั้นจึงอาจปรับปรุงได้มาก ฉันคิดว่าฉันต้องเริ่มต้นที่ไหนสักแห่ง :)


1

Java (OpenJDK 8) , 784 835 843 826 815 781 775 ไบต์

String k(String s){return s.replaceAll("...$","\n");}
p->q->{int c=0,l=0,s[]=new int[p*q],i=0,j,t,b;java.util.List e=new java.util.Stack();String v="TJQK",o="",n[]=new String[p*q],x=o;for(;i<p;o+="Player "+i+++" | ",x+=v);o=k(o);for(i=0;i<q;i++){o=k(o+x.replace(v,".------. | "));for(j=0;j<p;j++){do{t=(int)(Math.random()*13)+1;b=(int)(Math.random()*4);}while(e.contains(t+""+v.charAt(b)));e.add(t+""+v.charAt(b));s[c]=b;n[c]=t<2?"A":t<10?""+t:""+v.charAt(t-10);o+="|2.--. | | ".replace("2",n[c++]);}o=k(o);for(j=0;j<p;j++,l++)o+="| "+(s[l]<1?"(\\/)":s[l]<3?":/\\:":":():")+" | | ";o=k(o);for(j=0;j<p;j++)o+="| "+(s[i*p+j]<2?":\\/:":s[i*p+j]<3?"(__)":"()()")+" | | ";o=k(o);for(j=0;j<p;)o+="| '--'2| | ".replace("2",n[i*p+j++]);o=k(k(o)+x.replace(v,"'------' | "));}return o;}

ลองออนไลน์!

ทำไม downvote มันเป็นไปตามข้อกำหนด


นอกจากนี้คุณควรสร้างวิธีอื่นแทนการสร้างFunction<String,String>: วิธีหลังมีค่าใช้จ่ายสูงมาก ทั้งที่การสร้างและเมื่อใช้
Olivier Grégoire

ฉันสมมติว่า downvote นั้นเป็นคำตอบที่ bugged ดั้งเดิม แต่กระแสดูเหมือนว่าถูกต้องดังนั้นฉันจึง upvoted ที่จะทำให้เป็นกลาง สิ่งเล็ก ๆ บางอย่างสำหรับเล่นกอล์ฟ: สามารถลบวงเล็บได้ที่n[c]=t<2?"A":t<10?""+t:""+"TJQK".charAt(t-10); for(j=0;j<p;j++){o+=...;l++;}สามารถfor(j=0;j<p;l++,j++)o+=...;; คุณสามารถreturn o;แทนSystem.out.print(o);โดยใช้สองFunctionแทนConsumer; ,y=p*qสามารถถอดออกและคุณสามารถใช้สองครั้งโดยตรงแทนp*q yไม่ต้องสงสัยเลยว่าจะต้องเล่นกอล์ฟอีกต่อไป แต่ตอนนี้ฉันไม่มีเวลา
สำรวจ

1
@KevinCruijssen จริงแล้วไม่ ฉันลงคะแนนหลังจากการแก้ไขครั้งแรกสำหรับ "ไม่มีความพยายามในการเล่นกอล์ฟ" นอกเหนือจากการลบช่องว่างออกและใช้ชื่อตัวแปร 1 อักขระ ฉันเดาว่าโรแบร์โตเกรแฮมควรทั้งหมดอีกครั้งอ่านเคล็ดลับสำหรับการเล่นกอล์ฟในชวา ประเด็นก็คือมันสอดคล้องกับข้อมูลจำเพาะของความท้าทาย แต่ไม่ตรงกับข้อมูลจำเพาะของแท็ก code-golf
Olivier Grégoire

ฉันจะรู้ได้อย่างไรว่ามันสามารถตีกอล์ฟต่อไปได้? ฉันอยู่ที่ประมาณ 400 ไบต์เมื่อฉันยอมแพ้หลังจากเห็นคำตอบนี้และฉันคาดว่าจะเหลืออีกประมาณ 50 ไบต์เพื่อให้เสร็จ 450 ไบต์เทียบกับ 850 ไม่มีสนามกอล์ฟใด ๆ ที่เกี่ยวข้อง
Olivier Grégoire

s[l]<2?":/\\:":s[l]<3?":/\\:"สามารถs[l]<3?":/\\:"และสามารถs[i*p+j]<1?":\\/:":s[i*p+j]<2?":\\/:" s[i*p+j]<2?":\\/:"@ OlivierGrégoireและฉันรู้ว่ามันเกือบจะเป็นครึ่งหนึ่งดังนั้นฉันเข้าใจ downvote แต่นี่เป็นประสบการณ์ส่วนใหญ่และแน่นอนว่าไม่ได้อ่านเคล็ดลับทั้งหมดหลายครั้ง บางสิ่งในคำตอบที่ฉันเคยทำในอดีตและนี่ไม่ใช่ความท้าทายที่ง่ายสำหรับจาวา Btw ถ้าคุณมีคำตอบ 400-450 ไบต์ทำไมคุณไม่โพสต์มันเป็นคำตอบแยกต่างหาก (ถ้าแตกต่างกันมากพอ) คุณต้องการ upvote ของฉัน ;)
Kevin Cruijssen

1

Python 3, 332 ไบต์

from random import*
P=lambda x:print(*x,sep=' | ')
R=range
def f(p,c):
 P(f"Player {i}"for i in R(p))
 d=[f".------.,|{n}.--. |,| {a[:4]} |,| {a[4:]} |,| '--'{n}|,'------'".split(",")for a,n in sample([*zip(r':/\:(__) (\/):\/: :/\::\/: :():()()'.split()*13,'A23456789TJQK'*4)],p*c)]
 for i in R(c):
  for t in zip(*d[i::c]):
   P(t)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.