Ответы пользователя по тегу Алгоритмы
  • Что неправильно в алгоритме пятнашек ?

    @Skver0 Автор вопроса
    уточню. сейчас алгоритм убирает пустую фишку влево вверх. а я хочу убрать ее вправо вниз.

    все решение найдено. у меня для такой конфигурации пятнашек была полностью неправильно написана эвристика. возможно кому то пригодится...
    def manhattan_distance(puzz, end):
        """
        Manhettan distance heuristic
        """
        m = eval(puzz)
        a = eval(end)
        lst = []
        result = 0
    
        for x in range(4):
            for y in range(4):
                if a[x][y] == 0:
                    continue
                lst.append([[x, y], a[x][y]])
    
        for i in range(4):
            for j in range(4):
                if m[i][j] == 0:
                    continue
                for s in lst:
                    if s[1] == m[i][j]:
                        x = s[0][0]
                        y = s[0][1]
    
                result += abs(i - x) + abs(j - y)
        return result
    Ответ написан
    Комментировать