Trang chủ » Blog » Coding Dojo » Kata PokerHands

Kata PokerHands

bởi CodeGym | 09/12/2023 10:30 | Blog | Coding Dojo

Giới thiệu kata

Kata này được sao chép từ acm.uva.es/p/v103/10315.html, là một tập nhỏ của một bộ Kata rất lớn có tên là KataTexasHoldEm.

Mô tả bài toán

Trong trò chơi Poker bạn phải so sánh vài cặp poker hands (Xi phe) với nhau, và cho biết đâu là bộ lớn hơn.

Mô tả quy tắc

Một bộ bài (poker) gồm có 52 lá – mỗi lá bài thuộc một trong 4 chất bích (clubs), rô (diamonds), cơ (hearts), tép (spades), lần lượt được ký hiệu là C, D, H, S trong dữ liệu đầu vào. Mỗi lá bài còn chứa một trong các giá trị 2, 3, 4, 5, 6, 7, 8, 9, 10, jack, queen, king, ace với kí hiệu tương ứng là 2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K, A. Lá bài có giá trị 2 là nhỏ nhất và Ace là lớn nhất.

Mỗi một Xi phe gồm 5 lá từ bộ bài, Xi phe được xếp hạng theo thứ tự từ thấp đến như sau:

  • Lá cao (high card): 5 lá bài không phù hợp với bất kì thể loại nào cao hơn được xếp hạng theo lá bài cao nhất. Nếu 2 người có lá bài cao nhất bằng nhau (không xét về chất), họ được xếp hạng bởi lá bài cao tiếp theo.
  • Đôi (pair): Trong 5 lá bài có 2 lá cùng giá trị. Nếu hai người chơi đều có đôi, sẽ xét xem đôi nào có giá trị cao hơn. Nếu đôi của 2 người chơi bằng nhau, sẽ xét theo giá trị của Lá Cao.
  • Hai Đôi (Thú) (two pair): Trong 5 lá bài có 2 đôi (không phải tứ quý). Nếu hai người đều có 2 đôi sẽ xét theo ai có đôi lớn hơn, nếu đôi lớn hơn bằng nhau sẽ xét đôi tiếp theo. Nếu bằng nhau sẽ xét giá trị của lá còn lại.
  • Ba lá bằng nhau (Sám) (three of a kind): Trong 5 lá bài có 3 lá cùng giá trị. Nếu hai người chơi cùng có Sám, sẽ xét Sám của ai lớn hơn.
  • Sảnh (straight): 5 lá bài liên tiếp nhau (VD: 2 3 4 5 6) nhưng không phải Thùng. Nếu hai người chơi cùng có Sảnh sẽ xét giá trị của lá bài lớn nhất.
  • Thùng (cùng chất) (flush): 5 lá bài cùng 1 chất nhưng không liên tiếp nhau (không phải Sảnh). Nếu hai người chơi cùng có Thùng sẽ xét theo giá trị của lá bài cao (Lá cao).
  • Cù lũ (Full House): 3 lá cùng giá trị, 2 lá bài còn lại là Đôi. Bài này được xếp hạng theo giá trị của bộ ba.
  • Tứ quý (Four of a kind): 5 lá bài có 4 lá cùng giá trị. Nếu hai người cùng có Tứ quý sẽ xét xem Tứ quý của ai lớn hơn.
  • Thùng phá Sảnh (Vừa Sảnh vừa Thùng) (Straight flush): 5 lá bài liên tiếp nhau và cùng một chất. Nếu 2 người chơi cùng có Thùng phá Sảnh sẽ so sánh giá trị lá bài lớn nhất (Lá cao).

Một số ca kiểm thử (test case)

Đầu vào:

  • Black: 2H 3D 5S 9C KD White: 2C 3H 4S 8C AH
  • Black: 2H 4S 4C 2D 4H White: 2S 8S AS QS 3S
  • Black: 2H 3D 5S 9C KD White: 2C 3H 4S 8C KH
  • Black: 2H 3D 5S 9C KD White: 2D 3H 5C 9S KH

Đầu ra:

  • White thắng – với Lá cao (lá bài Ace)
  • Black thắng – với Cù lũ
  • Black thắng – với Lá cao (lá bài 9)
  • Hòa

Nguồn Kata: http://codingdojo.org/kata/PokerHands/

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

5 + 1 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM