Update 'src/board.py'
działający kod :D
This commit is contained in:
parent
b7402c8e49
commit
898d4687b4
62
src/board.py
62
src/board.py
@ -205,32 +205,13 @@ if __name__ == '__main__':
|
||||
height = 530
|
||||
screen = pygame.display.set_mode((width, height)) # ustalanie rozmiarów okna
|
||||
|
||||
startPos = (0, 0)
|
||||
finalPos = (14, 14)
|
||||
astarPath = astar.aStar(weightsMap, collisionsMap, startPos, finalPos)
|
||||
checkpoints = [startPos]
|
||||
for house in houses:
|
||||
checkpoints.append((house.pos.x, house.pos.y))
|
||||
checkpoints.append(finalPos)
|
||||
astarPath = []
|
||||
for i in range(len(checkpoints) - 1):
|
||||
path = astar.aStar(weightsMap, collisionsMap, checkpoints[i], checkpoints[i + 1])
|
||||
if i == 0:
|
||||
astarPath += path
|
||||
else:
|
||||
astarPath += path[1:]
|
||||
|
||||
print(astarPath)
|
||||
|
||||
pathPos = 0
|
||||
nextCheckpoint = 1
|
||||
|
||||
#od tąd podstawiony algorytm genetyczny
|
||||
# od tad proboje
|
||||
# parametry
|
||||
num_of_houses = 8 # ilość domków
|
||||
routes_num = 40 # ilość ścieżek, które będziemy generować
|
||||
# rate = 0.3 # do mutacji, by liczby były ładniejsze
|
||||
houses_coordinates = [[7, 4], [3, 10], [8, 10], [4, 5], [1, 2], [10, 4], [13, 14], [6, 9]] # generowanie losowych współrzędnych między 1, a 9
|
||||
houses_coordinates = [[7, 4], [3, 10], [8, 10], [4, 5], [1, 2], [10, 4], [13, 14],
|
||||
[6, 9]] # generowanie losowych współrzędnych między 1, a 9
|
||||
names = np.array(['Dom A', 'Dom B', 'Dom C', 'Dom D', 'Dom E', 'Dom F', 'Dom G', 'Dom H']) # nazwy domów
|
||||
houses_info = {x: y for x, y in
|
||||
zip(names, houses_coordinates)} # zawiera nazwę domu i jego współrzędne X, Y - słownik
|
||||
@ -253,10 +234,39 @@ if __name__ == '__main__':
|
||||
new_population_set = gen_algorithms.population_mating(progenitor_list)
|
||||
|
||||
final_mutated_population = gen_algorithms.mutate_population(new_population_set)
|
||||
print("tutaj")
|
||||
print(final_route) # ostateczny wynik
|
||||
print(final_route[2][0][0]) # żeby wyciągnąć z wyniku nazwę domu, który jest na i-tym miejscy trzeba wziąć final_route[2][0][i]
|
||||
print(houses_info[final_route[2][0][0]]) # podstawiając jako argument nazwę domu z final_route dostajemy jego współrzędne x, y
|
||||
print("Najlepsza ścieżka według algorytmu genetycznego: ")
|
||||
print(final_route)
|
||||
print(final_route[2][0][
|
||||
0]) # żeby wyciągnąć z wyniku nazwę domu, który jest na i-tym miejscy trzeba wziąć final_route[2][0][i]
|
||||
print(houses_info[final_route[2][0][0]][0]) # podstawiając jako argument nazwę domu z final_route dostajemy jego współrzędne x, y
|
||||
|
||||
houses_gen = [House(f'dom-{i}', pos) for i, pos in enumerate([Position(x, y) for x, y in [ # nasze współrzędne w odpowiedniej kolejności z genetycznego
|
||||
(houses_info[final_route[2][0][0]][0], houses_info[final_route[2][0][0]][1]), (houses_info[final_route[2][0][1]][0], houses_info[final_route[2][0][1]][1]),
|
||||
(houses_info[final_route[2][0][2]][0], houses_info[final_route[2][0][2]][1]), (houses_info[final_route[2][0][3]][0], houses_info[final_route[2][0][3]][1]),
|
||||
(houses_info[final_route[2][0][4]][0], houses_info[final_route[2][0][4]][1]), (houses_info[final_route[2][0][5]][0], houses_info[final_route[2][0][5]][1]),
|
||||
(houses_info[final_route[2][0][6]][0], houses_info[final_route[2][0][6]][1]), (houses_info[final_route[2][0][7]][0], houses_info[final_route[2][0][7]][1])
|
||||
]])]
|
||||
|
||||
startPos = (0, 0)
|
||||
finalPos = (14, 14)
|
||||
astarPath = astar.aStar(weightsMap, collisionsMap, startPos, finalPos)
|
||||
checkpoints = [startPos]
|
||||
for house in houses_gen:
|
||||
checkpoints.append((house.pos.x, house.pos.y)) #tutaj dodać pozycje z genetycznego???
|
||||
checkpoints.append(finalPos)
|
||||
astarPath = []
|
||||
for i in range(len(checkpoints) - 1):
|
||||
path = astar.aStar(weightsMap, collisionsMap, checkpoints[i], checkpoints[i + 1])
|
||||
if i == 0:
|
||||
astarPath += path
|
||||
else:
|
||||
astarPath += path[1:]
|
||||
|
||||
print(astarPath)
|
||||
|
||||
pathPos = 0
|
||||
nextCheckpoint = 1
|
||||
|
||||
|
||||
while True:
|
||||
agent_x, agent_y = astarPath[pathPos]
|
||||
|
Loading…
Reference in New Issue
Block a user