import random import pygame from common.constants import ROWS, COLUMNS, GRID_CELL_PADDING, GRID_CELL_WIDTH, GRID_CELL_HEIGHT, BORDER_WIDTH, \ BORDER_RADIUS from .field import Field class Grid: def __init__(self, textures): self.textures = textures self.grid = [] for row in range(ROWS): self.grid.append([]) for _ in range(COLUMNS): texture_path, converted_texture = self.get_random_texture() field = Field(texture_path, converted_texture) self.grid[row].append(field) def get_random_texture(self): texture_index = random.randint(0, len(self.textures) - 1) return self.textures[texture_index] def draw(self, screen): bg_width = (GRID_CELL_PADDING + GRID_CELL_WIDTH) * COLUMNS + BORDER_WIDTH bg_height = (GRID_CELL_PADDING + GRID_CELL_HEIGHT) * ROWS + BORDER_WIDTH pygame.draw.rect(screen, (255, 255, 255), pygame.Rect(5, 5, bg_width, bg_height), 0, BORDER_RADIUS) for row in range(ROWS): for column in range(COLUMNS): box_rect = [(GRID_CELL_PADDING + GRID_CELL_WIDTH) * column + GRID_CELL_PADDING + 7, (GRID_CELL_PADDING + GRID_CELL_HEIGHT) * row + GRID_CELL_PADDING + 7, GRID_CELL_WIDTH, GRID_CELL_HEIGHT] image = self.grid[row][column].converted_texture screen.blit(pygame.transform.scale(image, (GRID_CELL_WIDTH, GRID_CELL_HEIGHT)), box_rect)