aboutsummaryrefslogtreecommitdiff
path: root/poker/constants.py
blob: e0a7348e7a0add94f2eb46f56825656185d8d08d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from enum import IntEnum, auto

from poker.utils.enum import AutoName


class Rank(IntEnum):
    """Poker rank enum."""

    ROYAL_FLUSH = 1
    STRAIGHT_FLUSH = 2
    FOUR_OF_A_KIND = 3
    FULL_HOUSE = 4
    FLUSH = 5
    STRAIGHT = 6
    THREE_OF_A_KIND = 7
    TWO_PAIR = 8
    PAIR = 9
    HIGH_CARD = 10


class Suit(AutoName):
    """Card suit enum."""

    CLUBS = auto()
    DIAMONDS = auto()
    HEARTS = auto()
    SPADES = auto()


class Value(IntEnum):
    """Card value enum."""

    TWO = 2
    THREE = 3
    FOUR = 4
    FIVE = 5
    SIX = 6
    SEVEN = 7
    EIGHT = 8
    NINE = 9
    TEN = 10
    JACK = 11
    QUEEN = 12
    KING = 13
    ACE = 14

    def __str__(self) -> str:
        """Return string representation."""
        if self.value in [1, 11, 12, 13]:
            out: str = self.name.lower()
        else:
            out = str(self.value)
        return out