import glob2 import pygame import random from Field import Field from Global_variables import Global_variables as G_var from Types_colors import Types_colors from Package_types import Package_types import math from CompanyFactory import CompanyFactory class Package(Field): def __init__(self, window, x, y, type): Field.__init__(self, window, x, y) self.mark_image = self.get_marking_photo() self.type = type self.company = CompanyFactory() self.payed_upfront = random.randint(0,1) self.is_placed = False def get_marking_photo(self): file_path_type = ["resources/package_markings/*.jpg"] images = glob2.glob(random.choice(file_path_type)) random_image = random.choice(images) return random_image def draw(self): self.color = Types_colors.get_package_color(self.type) block = pygame.Rect(self.x * G_var().RECT_SIZE, self.y * G_var().RECT_SIZE, G_var().RECT_SIZE, G_var().RECT_SIZE) pygame.draw.rect(self.window, self.color, block) def choose_the_closest_shelf(self, shelves): array = [] for shelf in shelves: if shelf.type == self.type: segment = math.sqrt((shelf.x - self.x) ** 2 + (shelf.y - self.y)**2) array.append((segment, shelf)) array.sort(key=lambda y: y[0]) print(array) return array[0]