Zum Inhalt

TileColor

A class representing the color of a tile.

A tile is a colored plate, which may be attached to the sides of a cubie.

as_channels(self, bgr=True, float=False)

Returns the matching color channels for this TileColor.

The channels are [RGB / BGR] ranging from 0 to [255 (uint8) / 1.0 (float)] depending on the given parameters.

Parameters:

Name Type Description Default
bgr bool

flag, indicating whether to return color in BGR channel order; otherwise returns RGB

True
float bool

flag, indicating whether to return a floating point color (0.0 - 1.0 per channel)

False

Returns:

Type Description
ndarray

the channels

Source code in core/cube/TileColor.py
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
def as_channels(self, bgr: bool = True, float: bool = False) -> np.ndarray:
    """Returns the matching color channels for this `TileColor`.

    The channels are [RGB / BGR] ranging from 0 to [255 (uint8) / 1.0 (float)] depending on the given parameters.

    Args:
        bgr: flag, indicating whether to return color in BGR channel order; otherwise returns RGB
        float: flag, indicating whether to return a floating point color (0.0 - 1.0 per channel)

    Returns:
        the channels
    """
    color = None
    if self == TileColor.NONE:
        color = np.array([255, 100, 255], dtype=np.uint8)
    if self == TileColor.RED:
        color = np.array([0, 0, 255], dtype=np.uint8)
    if self == TileColor.GREEN:
        color = np.array([0, 255, 0], dtype=np.uint8)
    if self == TileColor.ORANGE:
        color = np.array([0, 100, 255], dtype=np.uint8)
    if self == TileColor.BLUE:
        color = np.array([255, 0, 0], dtype=np.uint8)
    if self == TileColor.YELLOW:
        color = np.array([0, 255, 255], dtype=np.uint8)
    if self == TileColor.WHITE:
        color = np.array([255, 255, 255], dtype=np.uint8)

    if color is not None and not bgr:
        color = np.flip(color)

    if color is not None and float:
        color = np.array(color, dtype=np.float) / 255.0

    return color

as_color(self)

The terminal highlighting codes as string representing this TileColor.

Returns:

Type Description
str

the ansi color

Source code in core/cube/TileColor.py
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
def as_color(self) -> str:
    """The terminal highlighting codes as string representing this `TileColor`.

    Returns:
        the ansi color
    """
    ansi_color = ''
    if self == TileColor.RED:
        ansi_color = '\033[41m'
    if self == TileColor.GREEN:
        ansi_color = '\033[42;1m'
    if self == TileColor.YELLOW:
        ansi_color = '\033[48;5;191m'
    if self == TileColor.BLUE:
        ansi_color = '\033[44m'
    if self == TileColor.ORANGE:
        ansi_color = '\033[48;5;202m'
    if self == TileColor.WHITE:
        ansi_color = '\033[47m'
    return ansi_color + '  \033[0m'

from_string(color) staticmethod

Returns the TileColor represented by the given string.

Parameters:

Name Type Description Default
color str

the color token

required

Returns:

Type Description
TileColor

the matching tile color

Exceptions:

Type Description
ValueError

No TileColor found for the given token.

Source code in core/cube/TileColor.py
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
@staticmethod
def from_string(color: str) -> 'TileColor':
    """Returns the `TileColor` represented by the given string.

    Args:
        color: the color token

    Returns:
        the matching tile color

    Raises:
        ValueError: No `TileColor` found for the given token.
    """
    c = color.lower()
    if c == 'red' or c == 'r':
        return TileColor.RED
    elif c == 'orange' or c == 'o':
        return TileColor.ORANGE
    elif c == 'blue' or c == 'b':
        return TileColor.BLUE
    elif c == 'yellow' or c == 'y':
        return TileColor.YELLOW
    elif c == 'green' or c == 'g':
        return TileColor.GREEN
    elif c == 'white' or c == 'w':
        return TileColor.WHITE
    else:
        raise ValueError("String \'" + color + "\' is not defined as a TileColor.")

to_string(self)

Converts the color to a human readable string.

Returns:

Type Description
str

the string repesentation which can be used for logging

Exceptions:

Type Description
ValueError

The given tile color is not defined.

Source code in core/cube/TileColor.py
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
def to_string(self) -> str:
    """Converts the color to a human readable string.

    Returns:
        the string repesentation which can be used for logging

    Raises:
        ValueError: The given tile color is not defined.
    """
    if self == TileColor.NONE:
        return "none"
    elif self == TileColor.BLUE:
        return "blue"
    elif self == TileColor.GREEN:
        return "green"
    elif self == TileColor.RED:
        return "red"
    elif self == TileColor.ORANGE:
        return "orange"
    elif self == TileColor.YELLOW:
        return "yellow"
    elif self == TileColor.WHITE:
        return "white"
    else:
        raise ValueError(f"TileColor '{self}' is not defined.")