clean up
This commit is contained in:
parent
dd721993cd
commit
243e5f0656
@ -3,18 +3,16 @@ import numpy as np
|
||||
import pygame
|
||||
|
||||
# Wymiary planszy
|
||||
rows, cols = 10, 10 # Ustalona liczba wierszy i kolumn
|
||||
size = 64 # Rozmiar pojedynczego pola na planszy
|
||||
|
||||
rows, cols = 10, 10
|
||||
size = 64
|
||||
# Klasa reprezentująca planszę
|
||||
class Board:
|
||||
def __init__(self):
|
||||
self.board = [] # Tablica reprezentująca planszę
|
||||
self.vegetables = [] # Tablica przechowująca warzywa na planszy
|
||||
self.soil_features = None # Cechy gleby (wilgotność, temperatura itp.)
|
||||
self.vegetable_names = [] # Tablica przechowująca nazwy warzyw na planszy
|
||||
self.load_images() # Ładowanie obrazów warzyw i innych elementów planszy
|
||||
self.generate_board() # Generowanie początkowej planszy
|
||||
self.board = []
|
||||
self.vegetables = []
|
||||
self.vegetable_names = []
|
||||
self.load_images()
|
||||
self.generate_board()
|
||||
|
||||
# Metoda do ładowania obrazów
|
||||
def load_images(self):
|
||||
@ -84,19 +82,9 @@ class Board:
|
||||
self.vegetables[row][col] = vegetable_image
|
||||
self.vegetable_names[row][col] = vegetable_type
|
||||
|
||||
self.soil_features = self.generate_soil_features() # Generowanie cech gleby
|
||||
|
||||
# Metoda do generowania cech gleby
|
||||
def generate_soil_features(self):
|
||||
return {
|
||||
"wilgotnosc_gleby": random.randint(30, 70),
|
||||
"temperatura_gleby": random.randint(13, 26),
|
||||
"opady_deszczu": random.randint(0, 11),
|
||||
"wiek_rosliny": random.randint(1, 9),
|
||||
"proc_ekspo_na_swiatlo": random.randint(10, 90),
|
||||
"pora_dnia": random.randint(8, 20),
|
||||
"pora_roku": random.randint(1, 4)
|
||||
}
|
||||
|
||||
|
||||
# Metoda oceniająca jakość planszy
|
||||
def evaluate(self):
|
||||
@ -146,7 +134,6 @@ class Board:
|
||||
new_board.board = [row[:] for row in self.board]
|
||||
new_board.vegetables = [row[:] for row in self.vegetables]
|
||||
new_board.vegetable_names = [row[:] for row in self.vegetable_names]
|
||||
new_board.soil_features = self.soil_features.copy()
|
||||
return new_board
|
||||
|
||||
# Sprawdza, czy dane pole zawiera warzywo
|
||||
@ -218,15 +205,15 @@ def save_board_as_image(board, filename):
|
||||
board.draw_cubes(surface)
|
||||
pygame.image.save(surface, filename)
|
||||
|
||||
# Parametry algorytmu
|
||||
pop_size = 50 # Rozmiar populacji
|
||||
generations = 300 # Liczba generacji
|
||||
mutation_rate = 0.03 # Wskaźnik mutacji
|
||||
|
||||
pop_size = 50
|
||||
generations = 300
|
||||
mutation_rate = 0.03
|
||||
|
||||
# Inicjalizacja Pygame
|
||||
pygame.init()
|
||||
win = pygame.display.set_mode((cols * size, rows * size)) # Ustawienie rozmiaru okna
|
||||
pygame.display.set_caption('Generated Board') # Ustawienie tytułu okna
|
||||
win = pygame.display.set_mode((cols * size, rows * size))
|
||||
pygame.display.set_caption('Generated Board')
|
||||
|
||||
# Generowanie najlepszej planszy
|
||||
best_board = genetic_algorithm(pop_size, generations, mutation_rate)
|
||||
@ -237,21 +224,21 @@ pygame.display.update()
|
||||
|
||||
# Zapisywanie planszy do pliku
|
||||
np.save('generated_board.npy', best_board.board)
|
||||
save_board_as_image(best_board, 'generated_board.png') # Zapisz planszę jako obraz PNG
|
||||
save_board_as_image(best_board, 'generated_board.png')
|
||||
|
||||
# Utrzymanie okna otwartego do zamknięcia przez użytkownika
|
||||
run = True
|
||||
needs_redraw = True # Flaga informująca, czy trzeba przerysować planszę
|
||||
needs_redraw = True
|
||||
while run:
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
run = False
|
||||
elif event.type == pygame.MOUSEBUTTONDOWN or event.type == pygame.KEYDOWN:
|
||||
needs_redraw = True # Przerysowanie planszy w przypadku kliknięcia myszą lub naciśnięcia klawisza
|
||||
needs_redraw = True
|
||||
|
||||
if needs_redraw:
|
||||
best_board.draw_cubes(win)
|
||||
pygame.display.flip()
|
||||
needs_redraw = False # Wyłącz przerysowywanie do momentu kolejnego zdarzenia
|
||||
needs_redraw = False
|
||||
|
||||
pygame.quit()
|
||||
|
Loading…
Reference in New Issue
Block a user