From 72861712070223be5020bac2c1a528a55c03e94a Mon Sep 17 00:00:00 2001 From: GeorgeTom17 <51702013+GeorgeTom17@users.noreply.github.com> Date: Wed, 6 Apr 2022 21:08:32 +0200 Subject: [PATCH] controlling fields with water and trees --- common/constants.py | 2 ++ logic/grid.py | 29 +++++++++++++++++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/common/constants.py b/common/constants.py index 67b786f..31fd0a9 100644 --- a/common/constants.py +++ b/common/constants.py @@ -15,6 +15,8 @@ LEFT_KNIGHTS_SPAWN_FIRST_ROW = 6 LEFT_KNIGHTS_SPAWN_FIRST_COL = 0 RIGHT_KNIGHTS_SPAWN_FIRST_ROW = 6 RIGHT_KNIGHTS_SPAWN_FIRST_COL = 20 +NBR_OF_WATER = 10 +NBR_OF_TREES = 16 CASTLE_SPAWN_WIDTH = 6 CASTLE_SPAWN_HEIGHT = 5 diff --git a/logic/grid.py b/logic/grid.py index dffde22..ba9c9fd 100644 --- a/logic/grid.py +++ b/logic/grid.py @@ -1,9 +1,9 @@ import random - +import numpy as np import pygame from common.constants import ROWS, COLUMNS, GRID_CELL_PADDING, GRID_CELL_WIDTH, GRID_CELL_HEIGHT, BORDER_WIDTH, \ - BORDER_RADIUS + BORDER_RADIUS, NBR_OF_TREES, NBR_OF_WATER from .field import Field @@ -13,6 +13,22 @@ class Grid: self.grid = [] self.free_fields = [] self.busy_fields = [] + podkladka = np.zeros((ROWS, COLUMNS)) + for drzewa in range(0, NBR_OF_TREES): + rzad = random.randint(0, ROWS-1) + kolumna = random.randint(0, COLUMNS-1) + if podkladka[rzad][kolumna] == 0: + podkladka[rzad][kolumna] = 1 + else: + drzewa = drzewa - 1 + for i in range(0, NBR_OF_WATER): + rzad = random.randint(0, ROWS-1) + kolumna = random.randint(0, COLUMNS-1) + if podkladka[rzad][kolumna] == 0: + podkladka[rzad][kolumna] = 2 + else: + drzewa = drzewa - 1 + print(podkladka) for row in range(ROWS): self.grid.append(pygame.sprite.Group()) for column in range(COLUMNS): @@ -20,7 +36,12 @@ class Grid: (GRID_CELL_PADDING + GRID_CELL_HEIGHT) * row + GRID_CELL_PADDING + 7, GRID_CELL_WIDTH, GRID_CELL_HEIGHT] - texture_path, converted_texture = self.get_random_texture() + if podkladka[row][column] == 1: + texture_path, converted_texture = self.textures[-1] + elif podkladka[row][column] == 2: + texture_path, converted_texture = self.textures[-2] + else: + texture_path, converted_texture = self.get_random_texture() field = Field( texture_path, converted_texture, @@ -42,7 +63,7 @@ class Grid: self.draw(screen) def get_random_texture(self): - texture_index = random.randint(0, len(self.textures) - 1) + texture_index = random.randint(0, len(self.textures) - 3) return self.textures[texture_index] def draw(self, screen):