Split into multiple modules

This commit is contained in:
Lukas Wölfer
2019-04-08 17:48:20 +02:00
parent ea578121d9
commit a4d98e415c
4 changed files with 210 additions and 190 deletions

52
board.py Normal file
View File

@@ -0,0 +1,52 @@
"""Contains board class"""
import enum
from typing import Union, Tuple, List
from dataclasses import dataclass
class SpecialCard(enum.Enum):
"""Different types of special cards"""
Zhong = enum.auto()
Bai = enum.auto()
Fa = enum.auto()
Hua = enum.auto()
@dataclass(frozen=True)
class NumberCard:
"""Different number cards"""
class Suit(enum.Enum):
"""Different colors number cards can have"""
Red = enum.auto()
Green = enum.auto()
Black = enum.auto()
suit: Suit
number: int
Card = Union[NumberCard, SpecialCard]
class Position(enum.Enum):
"""Possible Board positions"""
Field = enum.auto()
Bunker = enum.auto()
Goal = enum.auto()
class BunkerStatus(enum.Enum):
"""States a bunker can be in, if it not holding a card"""
Empty = enum.auto()
Dragon = enum.auto()
@dataclass
class Board:
"""Solitaire board"""
field: List[List[Card]] = []
bunker: Tuple[Union[BunkerStatus, Card],
Union[BunkerStatus, Card],
Union[BunkerStatus, Card]] = (BunkerStatus.Empty,
BunkerStatus.Empty, BunkerStatus.Empty,)
goal: List[Tuple[NumberCard.Suit, int]] = []
flowerGone: bool = False