ฉันชอบความท้าทายของเกมไพ่ดังนั้นฉันจึงสร้างเกมนี้ขึ้นมาสำหรับเกมการ์ดของอิตาลี Scopa ครอบครัวของฉันเล่นเกมนี้มาตั้งแต่ไหน แต่ไรแล้ว มันมีระบบการให้คะแนนที่น่าสนใจอย่างมากที่ควรเล่นกอล์ฟ ฉันจะโพสต์คำตอบใน R เพื่อเริ่มต้นความสนุกซึ่งฉันมั่นใจว่าผู้คนจะพัฒนาต่อไป
การท้าทาย: หาจำนวนคะแนนที่ทำได้ในรอบของ Scopa โดยให้ไพ่ที่ผู้เล่นยึดระหว่างรอบเป็นอินพุท
มี 40 ใบในสำรับ Scopa หากคุณใช้เด็คสากลคุณสามารถถอด 8s, 9s และ 10s ออกจาก A, 2,3,4,5,6,7, Q, J, K ในแต่ละชุด 1มีผู้เล่นหรือหุ้นส่วนสองคนและทุก ๆ รอบไพ่ทั้งหมดจะถูกยึดโดยผู้เล่นหนึ่งหรือสองคน คะแนนจะถูกนับดังนี้ (ข้อมูลเพิ่มเติมที่นี่ ):
- ผู้เล่นที่มีมากที่สุด ไพ่ทำคะแนน 1 คะแนน
- ผู้เล่นที่มีมากที่สุด เพชร (หรือเหรียญถ้าใช้ดาดฟ้าอิตาลี) ได้คะแนน 1 คะแนน
- ผู้เล่นที่มี7 เพชร (หรือเหรียญ) หรือที่รู้จักกันในชื่อเซ็ตเบลโลหรือเซเว่นที่สวยงามได้คะแนน 1 คะแนน
- ผู้เล่นที่มีคะแนนสูงสุดของPrimiera 1 คะแนน คะแนนพรีเอเรียของผู้เล่นคือผลรวมของคะแนนของการ์ดมูลค่าสูงสุดที่ผู้เล่นจับในแต่ละชุด (ดูตารางด้านล่าง) หากคุณไม่มีไพ่อย่างน้อยหนึ่งใบในชุดสูทคุณจะเสียตามค่าเริ่มต้นแม้ว่าคะแนนของคุณจะสูงกว่าคะแนนของฝ่ายตรงข้าม ในกรณีที่หายากอย่างยิ่งที่ผู้เล่นทั้งคู่ไม่มีไพ่อย่างน้อยหนึ่งใบในทุกชุดผู้เล่นที่มีคะแนนรวมสูงที่สุดจะได้คะแนน2
ตารางคะแนนพริเมีย
| Rank | Value |
| ----- | ----- |
| 7 | 21 |
| 6 | 18 |
| A | 16 |
| 5 | 15 |
| 4 | 14 |
| 3 | 13 |
| 2 | 12 |
| Q,J,K | 10 |
ดังนั้นผู้เล่นสามารถทำคะแนนได้มากที่สุด 4 คะแนนในรอบ 3หากมีการเสมอกันซึ่งเป็นไปได้สำหรับไพ่เพชรหรือพริเมเรียไม่มีใครทำคะแนน
สิ่งสำคัญคือต้องตระหนักว่าเนื่องจากการ์ดแต่ละใบต้องมีผู้เล่นหนึ่งในสองผู้เล่นคุณสามารถอนุมานได้ว่าการ์ดใดที่ผู้เล่นคนอื่นจะต้องได้รับแม้ว่าคุณจะรู้ว่าการ์ดใดที่ผู้เล่นคนหนึ่งเอามา คุณจะต้องทำเช่นนี้ได้อย่างถูกต้องคะแนนprimiera
กฏท้าทาย
อินพุต
รหัสของคุณควรใช้เป็นอินพุตการ์ดที่ผู้เล่นคนเดียวจับในระหว่างรอบ Scopa
อินพุตต้องอยู่ในรูปแบบสตริงซึ่งอักขระหนึ่งตัวจะแทนอันดับของการ์ดแต่ละใบและอักขระหนึ่งตัวที่เหมาะสม นี้จะเอาช่องโหว่ที่อาจเกิดขึ้นจากที่ผ่านการ primieraคะแนนโดยตรงเป็น input การแปลงอันดับของการ์ดเป็นคะแนนพรีเลียราจะต้องทำในโปรแกรม อย่างไรก็ตามคุณอาจเลือกที่จะใช้สตริงเดียวคั่นด้วยช่องว่างหรือเครื่องหมายจุลภาคอาร์เรย์ของสตริงหรือรูปแบบอื่น ๆ ตัวอย่างเช่นหากคุณเลือกที่จะเข้ารหัสอันดับ76A5432QJK
และเหมาะสมที่สุดเท่าที่DCHS
คุณจะสามารถใช้อินพุตเช่น['7D', '6H', 'QD', 'JS']
'7D,6H,QD,JS'
หรือ
เอาท์พุต
จำนวนเต็มตั้งแต่ 0 ถึง 4 แสดงถึงคะแนนของผู้เล่น
การชนะ
คำตอบที่สั้นที่สุดในการชนะไบต์!
กรณีทดสอบ
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "7C", "6C", "4C", "3C", "2C", "7H", "4H", "2H", "5S", "3S", "QS", "JS", "KS"]
คะแนน 4 : 1 คะแนนสำหรับ> 20 ใบ, 1 คะแนนสำหรับ> 5 เพชร, 1 คะแนนสำหรับ 7 เพชรและ 1 คะแนนสำหรับการให้คะแนน 78 ในพรีมีรา (7,7,7,5 ที่ฝ่ายตรงข้ามมี 7,6,5, K สำหรับ 64)
["3D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "QC", "4H", "7S"]
คะแนน 0 : <= 20 ใบ, <= 5 เพชร, 7 เพชรไม่มี, และคะแนนเพียง 69 คะแนนในอันดับแรก (7,7,4,3 ที่ฝ่ายตรงข้ามมี 7,7,6, K สำหรับ 70)
[7D", "6D", "AD", "5D", "4D", "3D", "2D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "7H", "6H", "AH", "5H", "4H", "3H", "2H"]
คะแนน 3 : 1 คะแนนสำหรับ> 20 ใบ, 1 คะแนนสำหรับ> 5 เพชร, 1 คะแนนสำหรับ 7 เพชร primieraจะ 63 (7,7,7) และฝ่ายตรงข้ามเท่านั้นที่สามารถทำคะแนนได้ 51 (7, Q, Q, Q) แต่เนื่องจากมือนี้จะไม่มีจอบจะสูญเสียจุดโดยค่าเริ่มต้น
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH", "QS"]
คะแนน 3 : <= 20 ใบ, 1 คะแนนสำหรับ> 5 เพชร, 1 คะแนนสำหรับ 7 เพชร พรีมิเลียเพียง 51 คะแนน (7, Q, Q, Q) และฝ่ายตรงข้ามสามารถทำคะแนน 63 (7,7,7) ได้ แต่เนื่องจากมือของคู่ต่อสู้ไม่มีเพชรในมือนี้จะชนะคะแนนพรีเอรา
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "7C", "7H"]
คะแนน 3 : <= 20 ใบ, 1 คะแนนสำหรับ> 5 เพชร, 1 คะแนนสำหรับ 7 เพชร แม้ว่ามือนี้จะไม่มีพลั่วแต่ก็ยังชนะได้ในระดับ Primiaด้วยคะแนน 63 ถึง 57 (7,7,7 เมื่อเทียบกับ 7,6,6) เพราะมือของฝ่ายตรงข้ามไม่มีเพชร
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH"]
คะแนน 2 : <= 20 ใบ, 1 คะแนนสำหรับ> 5 เพชร, 1 คะแนนสำหรับ 7 เพชร มือนี้ไม่มีพลั่วและมือของฝ่ายตรงข้ามไม่มีเพชร ฝ่ายตรงข้ามชนะPrimieraด้วยคะแนน 63 ถึง 41 (7,7,7 เมื่อเทียบกับ 7, Q, Q)
[]
(อาร์เรย์ที่ว่างเปล่า)
คะแนน 0
1: อย่างน้อยในครอบครัวของเราแจ็คอยู่เหนือกว่า Queen in Scopa แต่นี่ไม่เกี่ยวข้องกับการทำประตู
2: ฉันเล่นเกมนี้มาตั้งแต่เด็กและไม่เคยเห็นสิ่งนี้เกิดขึ้น แต่รหัสของคุณดีกว่าที่จะสามารถจัดการกับกรณีนี้ได้!
3: มีคะแนนโบนัสสำหรับ "sweeps" ที่ทำคะแนนในรอบที่ฉันไม่สนใจจุดประสงค์ของการท้าทายนี้