# create a field here : 1: add tiles, 2: place them import pygame import random from area.constants import WIDTH,FIELD_WIDTH,TILE_SIZE,GREY,ROWS,COLS from tile import Tile from ground import Dirt from genetic import genetic_algorithm import os tiles = [] fieldX = (WIDTH-FIELD_WIDTH)/2 # in center of the screen fieldY = 100 # move field elements to field position def positionFieldElements(): for t in tiles: t.x += fieldX t.y += fieldY ''' def createTiles(): for y in range(0, COLS): for x in range(0, ROWS): tile = Tile(x*TILE_SIZE, y*TILE_SIZE) dirt = Dirt(random.randint(1, 100), random.randint(1, 100)) dirt.pests_and_weeds() tile.ground = dirt tile.randomizeContent() tiles.append(tile) positionFieldElements() return tiles ''' def createTiles(): best = genetic_algorithm(50, 20, 0.7, 10) for y in range(COLS): for x in range (ROWS): tile = Tile(x * TILE_SIZE, y * TILE_SIZE) dirt = Dirt(random.randint(1, 100), random.randint(1, 100)) dirt.pests_and_weeds() crop = best[y][x] if crop == 'apple': tile.image = "resources/images/sampling.png" photo_path = random.choice(os.listdir("resources/images/plant_photos/apples")) tile.photo = os.path.join("resources/images/plant_photos/apples", photo_path) elif crop == 'cauliflower': tile.image = "resources/images/sampling.png" photo_path = random.choice(os.listdir("resources/images/plant_photos/cauliflowers")) tile.photo = os.path.join("resources/images/plant_photos/cauliflowers", photo_path) elif crop == 'radish': tile.image = "resources/images/sampling.png" photo_path = random.choice(os.listdir("resources/images/plant_photos/radishes")) tile.photo = os.path.join("resources/images/plant_photos/radishes", photo_path) elif crop == 'wheat': tile.image = "resources/images/sampling.png" photo_path = random.choice(os.listdir("resources/images/plant_photos/wheats")) tile.photo = os.path.join("resources/images/plant_photos/wheats", photo_path) elif crop == 'rock_dirt': tile.image = "resources/images/rock_dirt.png" dirt.set_ocstacle(True) else: tile.image = "resources/images/dirt.png" tile.ground = "resources/images/background.jpg" tile.ground = dirt tiles.append(tile) positionFieldElements() return tiles def createField(win): createTiles() for t in tiles: image = pygame.image.load(t.image).convert() image = pygame.transform.scale(image, (TILE_SIZE, TILE_SIZE)) win.blit(image, (t.x, t.y)) pygame.display.flip() def drawWindow(win): win.fill(GREY) createField(win) pygame.display.flip() def get_tile_coordinates(index): if index < len(tiles): tile = tiles[index] return tile.x, tile.y else: return None def get_tile_index(): valid_indices = [] for index, tile in enumerate(tiles): if tile.image=="resources/images/sampling.png": valid_indices.append(index) return random.choice(valid_indices)