Merge pull request 'plansza jest generowana' (#31) from impl_alg_gen into master
Reviewed-on: #31
This commit is contained in:
commit
1a2c00c6e2
@ -27,7 +27,7 @@ def wygeneruj_osobnika(zasieg_wspolrzednych, ilosc_wspolrzednych):
|
||||
|
||||
def wygeneruj_populacje_poczatkowa(liczebnosc_populacji):
|
||||
populacja = list()
|
||||
zasieg = int(EKRAN_WYSOKOSC / blockSize - 3)
|
||||
zasieg = int((EKRAN_WYSOKOSC / blockSize) - 3)
|
||||
ilosc_wspolrzednych = (LICZBA_REGALOW + LICZBA_MIEJSC_NA_PACZKE + LICZBA_SKRZYNEK_NA_LISTY)
|
||||
for i in range(liczebnosc_populacji):
|
||||
osobnik = wygeneruj_osobnika(zasieg, ilosc_wspolrzednych)
|
||||
@ -62,8 +62,8 @@ def ocena_osobnika(osobnik):
|
||||
def mutacja(osobnik):
|
||||
# mutacja poprzez zamiane randomowej pary koordynatow
|
||||
index_osobnika = random.randint(0, len(osobnik) - 1)
|
||||
x = random.randint(1, EKRAN_SZEROKOSC / blockSize - 2)
|
||||
y = random.randint(1, EKRAN_WYSOKOSC / blockSize - 2)
|
||||
x = random.randint(1, (EKRAN_SZEROKOSC / blockSize) - 3)
|
||||
y = random.randint(1, (EKRAN_WYSOKOSC / blockSize) - 3)
|
||||
osobnik[index_osobnika] = (x, y)
|
||||
|
||||
def krzyzowanie(rodzic1, rodzic2):
|
||||
|
43
plansza.py
43
plansza.py
@ -1,4 +1,5 @@
|
||||
import random
|
||||
import algorytm_genetyczny as genetic
|
||||
|
||||
def obliczPixeleNaPodstawieKratek(wymiar): #Przeliczanie współrzędnych podanych w kratkach na pixele
|
||||
i = 1
|
||||
@ -17,45 +18,11 @@ blockSize = 70
|
||||
|
||||
x1, y1, x2, y2, x3, y3, x4, y4 = [None] * 8
|
||||
|
||||
while True:
|
||||
najlepszy_osobnik = genetic.ewolucja()
|
||||
print("Generowana plansza:")
|
||||
genetic.print_board(najlepszy_osobnik)
|
||||
|
||||
#wspolrzedne regalow
|
||||
x1 = random.randint(1, 3)
|
||||
x2 = random.randint(1, 3)
|
||||
x3 = random.randint(6, 8)
|
||||
x4 = random.randint(6, 8)
|
||||
|
||||
y1 = random.randint(1, 3)
|
||||
y2 = random.randint(6, 8)
|
||||
y3 = random.randint(1, 3)
|
||||
y4 = random.randint(6, 8)
|
||||
|
||||
#wspolrzedne miejsca paczek
|
||||
a = 5
|
||||
b = 5
|
||||
|
||||
#wspolrzedne skrzynki na listy
|
||||
c = 5
|
||||
d = 0
|
||||
|
||||
#dodane wspolrzedne (0, 0), (4, 4), (4, 6), (6, 4), (6, 6) zeby regaly sie nie stykaly
|
||||
table = [(0, 0), (4, 4), (4, 6), (6, 4), (6, 6),
|
||||
(x1, y1), (x1+1, y1), (x1, y1+1), (x1+1, y1+1),
|
||||
(x2, y2), (x2+1, y2), (x2, y2+1), (x2+1, y2+1),
|
||||
(x3, y3), (x3+1, y3), (x3, y3+1), (x3+1, y3+1),
|
||||
(x4, y4), (x4+1, y4), (x4, y4+1), (x4+1, y4+1)]
|
||||
|
||||
#sprawdzenie czy jakies wspolrzedne sie pokrywaja
|
||||
if len(table) == len(set(table)):
|
||||
break
|
||||
|
||||
coordinates = [(x1, y1), (x2, y2), (x3, y3), (x4, y4)]
|
||||
|
||||
#przemieszanie koordynatów w parach
|
||||
random.shuffle(coordinates)
|
||||
|
||||
#przypisanie przemieszanych wartości do zmiennych
|
||||
(x1, y1), (x2, y2), (x3, y3), (x4, y4) = coordinates
|
||||
(x1, y1), (x2, y2), (x3, y3), (x4, y4), (a, b), (c, d) = najlepszy_osobnik[:6]
|
||||
|
||||
x1, x2, x3, x4, y1, y2, y3, y4 = map(int, [x1, x2, x3, x4, y1, y2, y3, y4])
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user