diff --git a/field.py b/field.py index 48096f6..e5146b0 100644 --- a/field.py +++ b/field.py @@ -1,3 +1,5 @@ +import random + import pygame pygame.init() BLACK = (0, 0, 0) @@ -6,10 +8,36 @@ BLUE = (46, 34, 240) WINDOW_HEIGHT = 600 WINDOW_WIDTH = 600 BLOCK_SIZE = 40 +ROCKS_NUMBER = 10 +VEGETABLES_NUMBER = 20 +VEGETABLES = ('Potato', 'Broccoli', 'Carrot', 'Onion') -def drawGrid(): +def generate_locations(number, flag=False, rocks=[]): + locations = [] + if flag: + for i in range(number): + x = random.randrange(0, WINDOW_WIDTH, BLOCK_SIZE) + y = random.randrange(0, WINDOW_HEIGHT, BLOCK_SIZE) + if (x, y) not in rocks and (x, y) not in locations: + locations.append((x, y, VEGETABLES[random.randrange(0, len(VEGETABLES))])) + else: + i -= 1 + return locations + else: + for i in range(number): + x = random.randrange(0, WINDOW_WIDTH, BLOCK_SIZE) + y = random.randrange(0, WINDOW_HEIGHT, BLOCK_SIZE) + if (x, y) not in locations: + locations.append((x, y)) + else: + i -= 1 + return locations + + + +def draw_grid(): #Set the size of the grid block for x in range(0, WINDOW_WIDTH, BLOCK_SIZE): for y in range(0, WINDOW_HEIGHT, BLOCK_SIZE): @@ -19,38 +47,64 @@ def draw_interface(): global sc sc = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) pygame.display.set_caption("Pole i ciÄ…gnik") - pygame.display.set_icon(pygame.image.load("icon.png")) + pygame.display.set_icon(pygame.image.load("images/icon.png")) clock = pygame.time.Clock() sc.fill(BLACK) FPS = 60 - bg = pygame.image.load("field_image.jpg") - tractor = pygame.image.load("tractor_image.png") + #region Images import + bg = pygame.image.load("images/field_image.jpg") + tractor_image = pygame.image.load("images/tractor_image.png") + rock_image = pygame.image.load("images/rock_image.png") + potato_image = pygame.image.load("images/potato.png") + carrot_image = pygame.image.load("images/carrot.png") + broccoli_image = pygame.image.load("images/broccoli.png") + onion_image = pygame.image.load("images/onion.png") + #endregion x = BLOCK_SIZE / 4 y = BLOCK_SIZE / 4 + rocks = generate_locations(ROCKS_NUMBER) + vegetables = generate_locations(VEGETABLES_NUMBER, flag=True, rocks=rocks) + flRunning = True while flRunning: #sc.fill(BLACK) sc.blit(bg, (0, 0)) - drawGrid() + draw_grid() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() flRunning = False elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: - x -= BLOCK_SIZE + if x > BLOCK_SIZE/2: + x -= BLOCK_SIZE elif event.key == pygame.K_RIGHT: - x += BLOCK_SIZE + if x < WINDOW_WIDTH - BLOCK_SIZE/2: + x += BLOCK_SIZE elif event.key == pygame.K_DOWN: - y += BLOCK_SIZE + if y < WINDOW_HEIGHT - BLOCK_SIZE/2: + y += BLOCK_SIZE elif event.key == pygame.K_UP: - y -= BLOCK_SIZE + if y > BLOCK_SIZE/2: + y -= BLOCK_SIZE #pygame.draw.rect(sc, BLUE, (x, y, BLOCK_SIZE / 2, BLOCK_SIZE / 2)) - sc.blit(tractor, (x-5, y-5)) + sc.blit(tractor_image, (x-5, y-5)) + for rock in rocks: + sc.blit(rock_image, (rock[0], rock[1])) + for vegetable in vegetables: + if vegetable[2] == 'Potato': + sc.blit(potato_image, (vegetable[0], vegetable[1])) + elif vegetable[2] == 'Carrot': + sc.blit(carrot_image, (vegetable[0], vegetable[1])) + elif vegetable[2] == 'Broccoli': + sc.blit(broccoli_image, (vegetable[0], vegetable[1])) + elif vegetable[2] == 'Onion': + sc.blit(onion_image, (vegetable[0], vegetable[1])) + pygame.display.update() clock.tick(FPS) \ No newline at end of file diff --git a/field_image.jpg b/field_image.jpg deleted file mode 100644 index 9f61314..0000000 Binary files a/field_image.jpg and /dev/null differ diff --git a/images/broccoli.png b/images/broccoli.png new file mode 100644 index 0000000..6f187e1 Binary files /dev/null and b/images/broccoli.png differ diff --git a/images/carrot.png b/images/carrot.png new file mode 100644 index 0000000..5ff0fa1 Binary files /dev/null and b/images/carrot.png differ diff --git a/images/field_image.jpg b/images/field_image.jpg new file mode 100644 index 0000000..275b8e6 Binary files /dev/null and b/images/field_image.jpg differ diff --git a/icon.png b/images/icon.png similarity index 100% rename from icon.png rename to images/icon.png diff --git a/images/onion.png b/images/onion.png new file mode 100644 index 0000000..e91084f Binary files /dev/null and b/images/onion.png differ diff --git a/images/potato.png b/images/potato.png new file mode 100644 index 0000000..534a259 Binary files /dev/null and b/images/potato.png differ diff --git a/images/rock_image.png b/images/rock_image.png new file mode 100644 index 0000000..4c1c477 Binary files /dev/null and b/images/rock_image.png differ diff --git a/tractor_image.png b/images/tractor_image.png similarity index 100% rename from tractor_image.png rename to images/tractor_image.png diff --git a/images/vegetables.jpg b/images/vegetables.jpg new file mode 100644 index 0000000..8dd6619 Binary files /dev/null and b/images/vegetables.jpg differ