feat(core): добавление класса для хранения внутреннего состояния

This commit is contained in:
2026-08-06 03:28:07 +03:00
parent a25997992e
commit e533acd9f1
2 changed files with 38 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
from mind_reader.core.game_state import GameState
__all__ = [
"GameState",
]
+33
View File
@@ -0,0 +1,33 @@
class GameState:
def __init__(self, local_player_name: str):
self.local_player_name: str = local_player_name
self.remote_player_name: str | None = None
self.lobby_players: dict[str, str] = {self.local_player_name: "NONE"}
def add_remote_player(self, player_name: str):
self.remote_player_name = player_name
self.lobby_players[self.remote_player_name] = "NONE"
def delete_remote_player(self):
if self.remote_player_name in self.lobby_players:
del self.lobby_players[self.remote_player_name]
self.remote_player_name = None
def set_player_role(self, player_name: str, role: str) -> bool:
current_role = self.lobby_players.get(player_name)
if current_role == role:
return False
if role in ["NONE", "SETTER", "GUESSER"]:
self.lobby_players[player_name] = role
return True
return False
@property
def local_player_role(self) -> str:
return self.lobby_players[self.local_player_name]
def is_session_ready(self) -> bool:
roles = list(self.lobby_players.values())
return ("SETTER" in roles) and ("GUESSER" in roles)