def __init__(self, tiles_from_player: Dict[Coords, Tile], sack: Sack) -> None: super().__init__() self.tiles_from_player = tiles_from_player self.sack = sack self.letters_remaining = Sack.get_all_letters() self.tiles_on_board = {} self.new_tiles = [] self.word = None self.words_by_points = {} self.rack = self.sack.draw() for letter in self.rack: self.letters_remaining.remove(letter) self.horizontal_neighbours = {} self.vertical_neighbours = {} self.neighbours = { UP: self.horizontal_neighbours, DOWN: self.horizontal_neighbours, LEFT: self.vertical_neighbours, RIGHT: self.vertical_neighbours } self.neighbourhoods = {} for direction in DIRECTIONS: self.neighbourhoods[direction] = {} self.turn_processes = [] self.no_turn_processes = [] self.is_turn = False self.current_turn = 0