Я использую A * для http://aichallenge.org/specification.php, и мне был интересен хитрый способ выбора минимума коллекции на основе преобразования Шарца.
По сути, у меня есть набор подходящих квадратов для перехода, и я хочу перейти на квадрат с наименьшей стоимостью.
В основном я буду выбирать квадрат из моих соседей, у которых самая низкая стоимость в цикле.
Единственный способ, которым я могу думать, это сделать что-то вроде
next_spot = spot.neighbors.sort_by |a,b| { a.cost(dest) <=> b.cost(dest) }.first
Но мне бы очень хотелось чего-то более высокого, потому что я не хочу сортировать коллекцию, я просто хочу тот, у которого минимальное значение преобразования
Заметьте, я мог бы написать что-то более подробное и цикличное "в стиле C" и отслеживать предыдущий минимум, но я надеялся на что-то ясное и компактное.