Formatting

This commit is contained in:
Lukas Wölfer
2020-02-12 01:04:08 +01:00
parent a8ead54831
commit 8c43ae4eb0
15 changed files with 59 additions and 45 deletions

View File

@@ -1,8 +1,8 @@
"""Contains board class""" """Contains board class"""
import enum import enum
from typing import Union, List, Dict, Optional, Set, Tuple
from dataclasses import dataclass
import itertools import itertools
from dataclasses import dataclass
from typing import Dict, List, Optional, Set, Tuple, Union
class SpecialCard(enum.Enum): class SpecialCard(enum.Enum):

View File

@@ -1,10 +1,11 @@
"""Contains functions to find significant pieces of a solitaire screenshot""" """Contains functions to find significant pieces of a solitaire screenshot"""
from typing import Optional, Tuple
from dataclasses import dataclass
import itertools import itertools
import numpy from dataclasses import dataclass
from typing import Optional, Tuple
import cv2 import cv2
import numpy
@dataclass @dataclass

View File

@@ -9,7 +9,7 @@ import numpy as np
from ..board import Board, Card, NumberCard, SpecialCard from ..board import Board, Card, NumberCard, SpecialCard
from . import adjustment, card_finder from . import adjustment, card_finder
from .configuration import Configuration, ButtonState from .configuration import ButtonState, Configuration
def grouper( def grouper(

View File

@@ -1,12 +1,14 @@
"""Functions to detect card value""" """Functions to detect card value"""
from typing import List, Tuple, Optional, Dict
import enum import enum
import itertools import itertools
import numpy as np from typing import Dict, List, Optional, Tuple
import cv2 import cv2
from .adjustment import Adjustment, get_square import numpy as np
from ..board import Card, NumberCard, SpecialCard from ..board import Card, NumberCard, SpecialCard
from .adjustment import Adjustment, get_square
def _extract_squares( def _extract_squares(

View File

@@ -1,17 +1,18 @@
"""Contains configuration class""" """Contains configuration class"""
import zipfile
import json
from typing import List, Tuple, Dict, Union
import io
import dataclasses import dataclasses
from dataclasses import dataclass
import tempfile
import cv2
import enum import enum
import io
import json
import tempfile
import zipfile
from dataclasses import dataclass
from typing import Dict, List, Tuple, Union
import cv2
import numpy as np import numpy as np
from . import adjustment
from . import card_finder
from .. import board from .. import board
from . import adjustment, card_finder
ADJUSTMENT_FILE_NAME = "adjustment.json" ADJUSTMENT_FILE_NAME = "adjustment.json"

View File

@@ -1,10 +1,11 @@
import shenzhen_solitaire.solver.board_actions as board_actions
import shenzhen_solitaire.card_detection.configuration as configuration
import shenzhen_solitaire.card_detection.adjustment as adjustment
import shenzhen_solitaire.board as board
from typing import List, Tuple
import pyautogui
import time import time
from typing import List, Tuple
import pyautogui
import shenzhen_solitaire.board as board
import shenzhen_solitaire.card_detection.adjustment as adjustment
import shenzhen_solitaire.card_detection.configuration as configuration
import shenzhen_solitaire.solver.board_actions as board_actions
def drag( def drag(

View File

@@ -1,6 +1,7 @@
"""Contains actions that can be used on the board""" """Contains actions that can be used on the board"""
from typing import List, Tuple, Optional
from dataclasses import dataclass from dataclasses import dataclass
from typing import List, Optional, Tuple
from .. import board from .. import board

View File

@@ -1,8 +1,9 @@
"""Contains function to iterate different kinds of possible actions""" """Contains function to iterate different kinds of possible actions"""
import pdb
from typing import Iterator, List, Tuple from typing import Iterator, List, Tuple
from .. import board from .. import board
from . import board_actions from . import board_actions
import pdb
def possible_huakill_action( def possible_huakill_action(
@@ -124,6 +125,7 @@ def possible_goal_move_actions(
] ]
top_cards = field_cards + bunker_cards top_cards = field_cards + bunker_cards
result: List[board_actions.GoalAction] = []
for source, index, card in top_cards: for source, index, card in top_cards:
if not (card.number == search_board.getGoal(card.suit) + 1): if not (card.number == search_board.getGoal(card.suit) + 1):
continue continue
@@ -143,6 +145,9 @@ def possible_goal_move_actions(
) )
break break
result = sorted(result, key=lambda x: not x.obvious)
yield from iter(result)
def _can_stack(bottom: board.Card, top: board.Card) -> bool: def _can_stack(bottom: board.Card, top: board.Card) -> bool:
if not isinstance(bottom, board.NumberCard): if not isinstance(bottom, board.NumberCard):

View File

@@ -1,9 +1,12 @@
"""Contains solver for solitaire""" """Contains solver for solitaire"""
from typing import List, Iterator, Optional import typing
from typing import Iterator, List, Optional
from ..board import Board from ..board import Board
from . import board_actions from . import board_actions
from .board_actions import (DragonKillAction, GoalAction, HuaKillAction,
MoveAction)
from .board_possibilities import possible_actions from .board_possibilities import possible_actions
from .board_actions import MoveAction, GoalAction, HuaKillAction, DragonKillAction
class ActionStack: class ActionStack:

View File

@@ -1,5 +1,5 @@
"""Contains an example board to run tests on""" """Contains an example board to run tests on"""
from shenzhen_solitaire.board import NumberCard, SpecialCard, Board from shenzhen_solitaire.board import Board, NumberCard, SpecialCard
Suit = NumberCard.Suit Suit = NumberCard.Suit

View File

@@ -2,13 +2,11 @@
import unittest import unittest
from shenzhen_solitaire.board import NumberCard, Position from shenzhen_solitaire.board import NumberCard, Position
from shenzhen_solitaire.solver.board_actions import (
MoveAction,
BunkerizeAction,
GoalAction,
HuaKillAction,
)
from shenzhen_solitaire.solver import board_possibilities from shenzhen_solitaire.solver import board_possibilities
from shenzhen_solitaire.solver.board_actions import (BunkerizeAction,
GoalAction, HuaKillAction,
MoveAction)
from .boards import TEST_BOARD from .boards import TEST_BOARD

View File

@@ -2,7 +2,7 @@
import copy import copy
import unittest import unittest
from typing import List, Tuple, Union, Optional from typing import List, Optional, Tuple, Union
import cv2 import cv2
import numpy as np import numpy as np

View File

@@ -1,6 +1,6 @@
"""Contains the SolverTest class""" """Contains the SolverTest class"""
import unittest
import copy import copy
import unittest
from shenzhen_solitaire.solver import solver from shenzhen_solitaire.solver import solver

View File

@@ -1,14 +1,15 @@
import pyautogui import tempfile
import cv2 import time
import numpy as np
from pathlib import Path from pathlib import Path
from shenzhen_solitaire.card_detection.board_parser import parse_board import cv2
import numpy as np
import pyautogui
import shenzhen_solitaire.card_detection.configuration as configuration import shenzhen_solitaire.card_detection.configuration as configuration
import shenzhen_solitaire.solver.solver as solver
import tempfile
import shenzhen_solitaire.clicker.main as clicker import shenzhen_solitaire.clicker.main as clicker
import time import shenzhen_solitaire.solver.solver as solver
from shenzhen_solitaire.card_detection.board_parser import parse_board
OFFSET = (0, 0) OFFSET = (0, 0)
SIZE = (2560, 1440) SIZE = (2560, 1440)

View File

@@ -1,5 +1,6 @@
import numpy as np
import cv2 import cv2
import numpy as np
import shenzhen_solitaire.card_detection.configuration as configuration import shenzhen_solitaire.card_detection.configuration as configuration