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
|
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):
|
class CardState(Enum):
|
||||||
SETTER_NOT_SET = auto()
|
SETTER_NOT_SET = auto()
|
||||||
SETTER_HIDDEN = auto()
|
SETTER_HIDDEN = auto()
|
||||||
@@ -13,9 +24,17 @@ class CardState(Enum):
|
|||||||
GUESSER_WRONG = auto()
|
GUESSER_WRONG = auto()
|
||||||
|
|
||||||
|
|
||||||
class ArrowDirection(Enum):
|
@dataclass(frozen=True)
|
||||||
LEFT = auto()
|
class CardData:
|
||||||
RIGHT = auto()
|
direction: Optional[ArrowDirection]
|
||||||
|
state: CardState
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass(frozen=True)
|
||||||
|
class StepData:
|
||||||
|
index: int
|
||||||
|
setter: CardData
|
||||||
|
guesser: CardData
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -33,33 +52,3 @@ class SessionStats:
|
|||||||
accuracy = 0.0
|
accuracy = 0.0
|
||||||
accuracy = (self.correct / self.total) * 100
|
accuracy = (self.correct / self.total) * 100
|
||||||
return round(accuracy, 1)
|
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