Check first card, store number of card, set first counter to one

Check number of next cards

- If different card, store number of card, set second counter to one, break

- If same card, increment first counter, check if greater than three:

- If less or equal to three, continue

- If greater than three, return false

Continue checking cards

- If matching either stored card, increment respective counter, check if >3

- If less or equal to three, continue

- If greater than three, return false

- If not matching either card, return false

Return true

5 card draw?

Take the set of the cards

if the carnality of the set of the cards is not 2:

it is not a full house.

If it is:

Take the first element of the set of cards

count the number of occurrences of this card in the original list

if there are 2 or 3 occurrences it is a full house

otherwise it is not (it must be 4 of a kind)