Skip to content

Commit 61337d2

Browse files
committed
Expose Engine._map as read-only colors property
1 parent feb6f63 commit 61337d2

3 files changed

Lines changed: 7 additions & 1 deletion

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "apologies"
3-
version = "0.1.14"
3+
version = "0.1.15"
44
description = "Python code to play a game similar to Sorry"
55
authors = ["Kenneth J. Pronovici <pronovic@ieee.org>"]
66
license = "Apache-2.0"

src/apologies/engine.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,10 @@ def completed(self) -> bool:
134134
"""Whether the game is completed."""
135135
return self._game.completed
136136

137+
@property
138+
def colors(self) -> Dict[PlayerColor, Character]:
139+
return self._map.copy()
140+
137141
def winner(self) -> Optional[Tuple[Character, Player]]:
138142
"""Return the winner of the game, as a tuple of (Character, Player)"""
139143
return (self._map[self._game.winner.color], self._game.winner) if self.completed else None # type: ignore

tests/test_engine.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def test_constructor_not_random(self):
5757
assert engine._queue.first == engine.first
5858
assert engine._queue.entries == [PlayerColor.RED, PlayerColor.YELLOW]
5959
assert engine._rules.mode == GameMode.STANDARD
60+
assert engine.colors == engine._map and engine.colors is not engine._map # it's a copy
6061
assert engine._map == {PlayerColor.RED: character1, PlayerColor.YELLOW: character2}
6162

6263
def test_constructor_random(self):
@@ -79,6 +80,7 @@ def test_constructor_random(self):
7980
assert engine._queue.first == engine.first
8081
assert engine._queue.entries == [PlayerColor.RED, PlayerColor.YELLOW, PlayerColor.GREEN, PlayerColor.BLUE]
8182
assert engine._rules.mode == GameMode.STANDARD
83+
assert engine.colors == engine._map and engine.colors is not engine._map # it's a copy
8284
assert engine._map == {
8385
PlayerColor.RED: character1,
8486
PlayerColor.YELLOW: character2,

0 commit comments

Comments
 (0)