Mahjong là một trò chơi xếp gạch rất phổ biến ở châu Á. Nó thường được chơi với bốn người chơi và mục tiêu của trò chơi là trở thành người đầu tiên hoàn thành một ván bài hợp lệ bằng cách sử dụng các ô. Trong mạt chược có ba bộ đồ gạch cộng với gạch danh dự - đối với thử thách này, chúng tôi sẽ chỉ xem xét các bàn tay được hình thành bằng cách sử dụng gạch từ một bộ đồ duy nhất.
Gạch được đánh số từ 1
đến 9
, và có chính xác bốn bản sao của mỗi ô. Một bàn tay hợp lệ bao gồm bốn bộ ba và một cặp, với tổng số mười bốn gạch.
Một bộ ba có thể là:
- Một bộ ba, ba của cùng một lát (ví dụ
444
), hoặc - Một chuỗi ba gạch liên tiếp (ví dụ
123
hoặc678
không357
). Trình tự không bọc (vì vậy912
là không hợp lệ).
Một cặp chỉ đơn giản là hai gạch giống nhau (ví dụ 55
).
Các thách thức
Đưa ra một bàn tay hợp lệ của mười bốn gạch, xác định điểm số của nó dựa trên các tiêu chí sau:
Condition Description Point/s
-------------------------------------------------------------------------------
Straight Contains the sequences 123 456 789 1
Identical sequences Contains two identical sequences 1
All simples Only 2-8, no 1s or 9s 1
All sequences All sets of three are sequences 1
All triplets All sets of three are triplets 2
Flush Single-suit hand (always applies) 5
(Ghi điểm ở đây dựa trên các quy tắc mạt chược của Nhật Bản, nhưng được đơn giản hóa rất nhiều để làm cho thông số kỹ thuật bớt lộn xộn hơn.)
Điểm của một bàn tay là tổng số điểm cho các điều kiện mà nó thỏa mãn. Nếu một bàn tay có thể bị phân hủy theo nhiều cách, hãy thực hiện phân tách điểm cao nhất.
Bàn tay đầu vào được đảm bảo là hợp lệ, tức là mười bốn ô từ 1 đến 9 và mỗi ô xuất hiện nhiều nhất bốn lần và có thể được coi là đã được sắp xếp. Đầu vào là danh sách các chữ số (dưới dạng chuỗi hoặc danh sách số nguyên phẳng) thông qua STDIN, đối số hàm hoặc dòng lệnh. Đầu ra có thể là STDOUT hoặc giá trị trả về.
Các trường hợp thử nghiệm
22233355777888 -> 8 # 222 333 55 777 888, flush + all simp. + all trip.
11112345678999 -> 6 # 111 123 456 789 99, flush + straight
11123456788999 -> 5 # 111 234 567 88 999, flush only (no straight)
23344455566788 -> 7 # 234 345 456 567 88, flush + all simp. + all seq.
33334444555566 -> 8 # 33 345 345 456 456, flush + all simp. + all seq. + identical seq.
11122233377799 -> 7 # 111 222 333 777 99, flush + all trip. (no identical seq.)
12344556678889 -> 8 # 123 456 456 789 88, flush + all seq. + straight + identical seq.
11344556678999 -> 5 # 11 345 456 678 999, flush only (no identical seq.)
22233344455566 -> 8 # 222 333 444 555 66, flush + all simp. + all trip.
11112233344555 -> 5 # 111 123 234 345 55, flush only
Đối với ví dụ thứ năm, mặc dù có hai cặp trình tự giống hệt nhau, chỉ cần một người có mặt để đạt được điểm. Sự phân tách 345 345 345 345 66
sẽ ghi điểm như nhau, trong khi 333 345 444 555 66
điểm số tồi tệ hơn.
Chấm điểm
Đây là môn đánh gôn , vì vậy giải pháp trong vài byte nhất sẽ thắng. Tiêu chuẩn áp dụng.
Thử thách liên quan: Bạn còn chờ gì nữa? (Một người giải mạt chược)