A little explanation about followed alghorithm to find the best hand.
Steps:
- Tiles generated for each color and fake tiles.
- Tiles shuffled and joker randomly picked.
- Fake tiles adjusted with the picked joker.
- First user has given 15 tiles who picked randomly, remaining tiles assigned to other players evenly with each count of 14.
- Hands printed on console.
- For each players hand, the hands are grouped with every possible meaningful combination.
- To compare hands with each other, a score system implemented.
- Every hand, ordered with the best combination.
- Best ordered hand report printed on console.
- The score system takes account of whether or not hand has joker, double joker, ungrouped tiles count, duplicate eligibility, etc.
- The hand with highest score is the best hand.
Note: Test are partially implemented.