def reconstruct_path(came_from, start, end):
    """
    Reconstructs the came_from dictionary to be a list of tiles
    we can traverse and draw later.
    :param came_from: dictionary
    :param start: Tile
    :param end: Tile
    :return: List path
    """
    current = end
    path = [current]
    while current != start:
        current = came_from[current]
        path.append(current)
    path.append(start)  # optional
    path.reverse()      # optional
    return path