class PlanRoute actions(state) przyjmuje mape? state zwraca możliwe akcje agenta result(state, action) mapa? state, action(string) tworzy listę możliwych ruchów w liście proposed_loc sprawdza, czy współrzędne w proposed_loc znajdują się w zbiorze allowed ustawia kierunek agenta oraz nowe położenie na mapie zwraca state goal_test(state) przyjmuje state sprawdza czy stan docelowy zgadza się ze stanem obecnym zwraca wartość True lub False path_cost(c, state1, action, state2) ocenia nowy koszt po zmianie stanu zwraca nowy koszt def h(node) funkcja heurystyki, przyjmuje objekt klasy node przypisuje zmiennym x i y wartość współrzędnych za pomocą funkcji get_location() mamy xy dla stanu obecnego mamy xy dla stanu docelowego zwraca ogległość class Node expand(problem) przyjmuje klasę problem tworzy węzły potomne na podstawie możliwych akcji zwraca listę węzłów potomnych child_node(problem, action) przyjmuje problem oraz akcję tworzy węzeł potomny na podstawie otzymanej akcji zwraca węzeł potomny class AgentPosition get_location zwraca dwie zmienne: X i Y set_location ustawia zmienne: X i Y get_orientation: zwraca kierunek set_orientation: ustawia kierunek class SweeperAgent - najbardziej tajemnicza klasa, bo do końca nie wiadomo co ma robić where_am_i() - niby ma zwracać położenie agenta na planszy set_allowed(allowed_points) ustawia listę dostępnych miejsc na mapie set_puddles(puddle_points) ustawia listę obecnych kałuż set_goal(goal) ustawia punkt docelowy set_initial(initial) ustawia punkt początkowy set_orientation() ustawia kierunek plan_route() - czarna magia A* (∩ ͝ ° ͜ʖ͡° )⊃━☆゚ load_map() - ładowanie mapy astar_search() a* class PriorityQueue - jakaś kolejka priorytetowa