2023-06-14 13:02:11 +02:00
|
|
|
import random
|
|
|
|
|
|
|
|
EKRAN_SZEROKOSC = 770
|
|
|
|
EKRAN_WYSOKOSC = 770
|
|
|
|
blockSize = 70
|
|
|
|
LICZBA_REGALOW = 14
|
|
|
|
LICZBA_MIEJSC_DLA_PACZKE = 1
|
|
|
|
LICZBA_SKRZYNEK_NA_LISTY = 1
|
|
|
|
|
|
|
|
|
|
|
|
def wygeneruj_osobnika(zasieg_wspolrzednych, ilosc_wspolrzednych):
|
|
|
|
# ilosc_wspolrzednych = ilosc_wspolrzednych/2
|
|
|
|
osobnik = list()
|
|
|
|
for j in range(ilosc_wspolrzednych):
|
|
|
|
x = random.randint(0, zasieg_wspolrzednych)
|
|
|
|
y = random.randint(0, zasieg_wspolrzednych)
|
|
|
|
e = (x, y)
|
|
|
|
while e in osobnik:
|
|
|
|
x = random.randint(0, zasieg_wspolrzednych)
|
|
|
|
y = random.randint(0, zasieg_wspolrzednych)
|
|
|
|
e = (x, y)
|
|
|
|
osobnik.append(e)
|
|
|
|
return osobnik
|
2023-06-14 13:04:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
def wygeneruj_populacje_poczatkowa(liczebnosc_populacji):
|
|
|
|
populacja = list()
|
|
|
|
zasieg = int(EKRAN_WYSOKOSC / blockSize)
|
|
|
|
ilosc_wspolrzednych = (LICZBA_REGALOW + LICZBA_MIEJSC_DLA_PACZKE + LICZBA_SKRZYNEK_NA_LISTY)
|
|
|
|
for i in range(liczebnosc_populacji):
|
|
|
|
osobnik = wygeneruj_osobnika(zasieg, ilosc_wspolrzednych)
|
|
|
|
while osobnik in populacja:
|
|
|
|
osobnik = wygeneruj_osobnika(zasieg, ilosc_wspolrzednych)
|
|
|
|
populacja.append(osobnik)
|
|
|
|
return populacja
|
|
|
|
|
|
|
|
|
|
|
|
print(wygeneruj_populacje_poczatkowa(100))
|