refactor: разделение domain.py на модуль domain, включающий common.py и session.py
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
from .common import Player, PlayerRole
|
||||
from .session import (
|
||||
ArrowDirection,
|
||||
CardData,
|
||||
CardState,
|
||||
SessionStats,
|
||||
StepData,
|
||||
StepState,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"Player",
|
||||
"PlayerRole",
|
||||
"ArrowDirection",
|
||||
"CardData",
|
||||
"CardState",
|
||||
"SessionStats",
|
||||
"StepData",
|
||||
"StepState",
|
||||
]
|
||||
@@ -0,0 +1,13 @@
|
||||
from dataclasses import dataclass
|
||||
from enum import Enum, auto
|
||||
|
||||
|
||||
class PlayerRole(Enum):
|
||||
SETTER = auto()
|
||||
GUESSER = auto()
|
||||
|
||||
|
||||
@dataclass
|
||||
class Player:
|
||||
name: str
|
||||
role: PlayerRole
|
||||
@@ -3,6 +3,17 @@ from enum import Enum, auto
|
||||
from typing import Optional
|
||||
|
||||
|
||||
class ArrowDirection(Enum):
|
||||
LEFT = auto()
|
||||
RIGHT = auto()
|
||||
|
||||
|
||||
class StepState(Enum):
|
||||
WAITING_FOR_SETTER = auto()
|
||||
WAITING_FOR_GUESSER = auto()
|
||||
SESSION_FINISHED = auto()
|
||||
|
||||
|
||||
class CardState(Enum):
|
||||
SETTER_NOT_SET = auto()
|
||||
SETTER_HIDDEN = auto()
|
||||
@@ -13,9 +24,17 @@ class CardState(Enum):
|
||||
GUESSER_WRONG = auto()
|
||||
|
||||
|
||||
class ArrowDirection(Enum):
|
||||
LEFT = auto()
|
||||
RIGHT = auto()
|
||||
@dataclass(frozen=True)
|
||||
class CardData:
|
||||
direction: Optional[ArrowDirection]
|
||||
state: CardState
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StepData:
|
||||
index: int
|
||||
setter: CardData
|
||||
guesser: CardData
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -33,33 +52,3 @@ class SessionStats:
|
||||
accuracy = 0.0
|
||||
accuracy = (self.correct / self.total) * 100
|
||||
return round(accuracy, 1)
|
||||
|
||||
|
||||
class StepState(Enum):
|
||||
WAITING_FOR_SETTER = auto()
|
||||
WAITING_FOR_GUESSER = auto()
|
||||
SESSION_FINISHED = auto()
|
||||
|
||||
|
||||
class PlayerRole(Enum):
|
||||
SETTER = auto()
|
||||
GUESSER = auto()
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class CardData:
|
||||
direction: Optional[ArrowDirection]
|
||||
state: CardState
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StepData:
|
||||
index: int
|
||||
setter: CardData
|
||||
guesser: CardData
|
||||
|
||||
|
||||
@dataclass
|
||||
class Player:
|
||||
name: str
|
||||
role: PlayerRole
|
||||
Reference in New Issue
Block a user