# Poker

Hard

## Instructions

Pick the best hand(s) from a list of poker hands.

See wikipedia for an overview of poker hands.

• Ranking a list of poker hands can be considered a sorting problem.
• Rust provides the sort method for `Vec<T> where T: Ord`.
• `Ord` types form a total order: exactly one of `a < b`, `a == b`, or `a > b` must be true.
• Poker hands do not conform to a total order: it is possible for two hands to be non-equal but have equal sort order. Example: `"3S 4S 5D 6H JH"`, `"3H 4H 5C 6C JD"`.
• Rust provides the `PartialOrd` trait to handle the case of sortable things which do not have a total order. However, it doesn't provide a standard `sort` method for `Vec<T> where T: PartialOrd`. The standard idiom to sort a vector in this case is `your_vec.sort_by(|a, b| a.partial_cmp(b).unwrap_or(Ordering::{Less|Equal|Greater}));`, depending on your needs.
• You might consider implementing a type representing a poker hand which implements `PartialOrd`.

### Source

Inspired by the training course from Udacity.
Last updated 23 March 2023
Edit via GitHub

### Ready to start Poker?

Sign up to Exercism to learn and master Rust with 13 concepts, 104 exercises, and real human mentoring, all for free.