Giới Thiệu
Kata này được sao chép từ acm.uva.es/p/v103/10315.html, là một nhánh nhỏ của một Kata rất lớn, KataTexasHoldEm.
Mô tả vấn đề
Công việc của bạn là so sánh vài cặp Xi phe với nhau, và cho biết đâu là Xi phe lớn hơn.
Mô tả quy tắc
Một bộ bài 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ý C, D, H, S trong dữ liệu đầu vào. Mỗi lá cũng có một giá trị 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 (2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K, A). Giá trị tương ứng 2 là nhỏ nhất và Ace là lớn nhất.
Mỗi một Xi phe gồm 5 lá bài từ bộ bài, xi phe được xếp hạng theo thứ tự sau từ thấp nhất đến cao nhất:
+ 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á bằng nhau. Nếu hai người cùng có đôi, sẽ xét theo đô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 tính tứ quý). Nếu hai người cùng 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á bằng nhau. 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 đồng thời là 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. Nếu hai người chơi cùng có thùng sẽ xét theo giá trị của lá bài cao.
+ Cù lũ (Full House): 3 lá cùng giá trị, 2 lá bài còn lại tạo thành một cặp. Bài này được xếp hạng theo giá trị của ba lá cùng giá trị.
+ Tứ quý (Four of a kind): 5 lá bài có 4 lá bằng nhau. 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 vừa là sảnh, vừa là thùng. Nếu 2 người chơi cùng có thùng phá sảnh sẽ xét xem giá trị lá bài lớn nhất.
Gợi ý một số trường hợp kiểm thử
Đầ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: Ace
Black thắng. – với cù lũ
Black thắng. – với lá cao: 9
Hòa.
Nguồn codingdojo.org
Người dịch Nguyễn Tuấn Anh & Lê Minh Quý