Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что за алгоритм ?

Unknown Unknown Гуру (4953), открыт 2 недели назад
   public static (int, List) CountKnghtMinMoves(Field start, Field target) 
{
Queue<(Field, List)> queue = new Queue<(Field, List)>();
queue.Enqueue((start, new List { start }));
HashSet visited = new HashSet();

while (queue.Count > 0)
{
var (currentField, path) = queue.Dequeue();
visited.Add(currentField);

if (currentField == target)
{
return (path.Count - 1, path);
}

Knight knight = new Knight(currentField.X, currentField.Y);
foreach (var move in knight.GetAllMoves())
{
if (!visited.Contains(move))
{
var newPath = new List(path);
newPath.Add(move);
queue.Enqueue((move, newPath));
visited.Add(move);
}
}
}

return (-1, null);
}
Этот алгоритм написал я когда шла эпоха динозавров
4 ответа
Максим Искусственный Интеллект (210143) 2 недели назад
Написано же, считает минимальное количество ходов для рыцаря из точки А в точку Б.
Unknown UnknownГуру (4953) 2 недели назад
А траектория ?
Unknown UnknownГуру (4953) 2 недели назад
Я тут нарушил первый принцип solid
Unknown UnknownГуру (4953) 2 недели назад
В классе Knight тоже нарушены solid принципы
Unknown UnknownГуру (4953) 2 недели назад
В Field тоже
Максим Искусственный Интеллект (210143) Unknown Unknown, ну видимо и траекторию тоже возвращает.
АлександрИскусственный Интеллект (299313) 2 недели назад
какие ещё "рыцари"? или ии последние мозги вас отжевало?
Максим Искусственный Интеллект (210143) Александр, а Knight по твоему это кто? Читать умеем?
Александр Искусственный Интеллект (299313) 2 недели назад
математике и домашним заданиям по барабану...

почитай о том что такое "алгоритм" и чем он отличается от "программы реализующей алгоритм"...
GGG Просветленный (32033) 2 недели назад
Этот алгоритм реализует поиск минимального количества ходов коня на шахматной доске с использованием алгоритма поиска в ширину (BFS). Он начинает с начальной позиции коня, исследует все возможные ходы, избегая уже посещённых полей, и постепенно расширяет область поиска до тех пор, пока не достигнет целевой позиции. При нахождении целевого поля алгоритм возвращает количество ходов и последовательность полей, ведущих от старта к цели. Если путь не существует, возвращается -1.
Похожие вопросы