На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Лабиринты Java, часть 2: класс Waypoint


Продолжим с лабиринтами. Сегодня мы напишем класс Waypoint. Этот класс представляет собой один шаг в пути, созданном поиском пути A* алгоритма. Путевые точки состоят из местоположения, предыдущей путевой точки в пути и некоторых значений стоимости, используемых для определения наилучшего пути.

Итак, код класса:

public class Waypoint
{
    /** Локация этой путевой точки. **/
    Location loc;

    /**
     * Предыдущая путевая точка на этом пути или <code> null </code>, если это
      * начало поиска A*.
     **/
    Waypoint prevWaypoint;

    /**
     * В этом поле хранится общая предыдущая стоимость получения с начала
      * местоположения этой путевой точки через цепочку путевых точек. Это
      * фактическая стоимость следования по пути; он не включает никаких оценок.
     **/
    private float prevCost;

    /**
     * В этом поле хранится оценка оставшейся стоимости поездки из
      * эта путевая точка до конечного пункта назначения.
     **/
    private float remainingCost;


    /**
     * Конструктор для новой путевой точки для указанного местоположения. Предыдущая путевая точка
      * можно указать или ссылка может быть <code> null </code> что
      * будет указывать, что путевая точка является началом пути.
     **/
    public Waypoint(Location loc, Waypoint prevWaypoint)
    {
        this.loc = loc;
        this.prevWaypoint = prevWaypoint;
    }

    /** Возвращает местоположение путевой точки. **/
    public Location getLocation()
    {
        return loc;
    }
    
    /**
     * Возвращает предыдущую путевую точку в пути или <code> null </code>, если это
      * - начало пути.
     **/
    public Waypoint getPrevious()
    {
        return prevWaypoint;
    }
    
    /**
     * Этот мутатор позволяет изменять как предыдущую, так и оставшуюся стоимость.
      * установить за один вызов метода. Обычно эти значения будут равны
      * в любом случае время.
     **/
    public void setCosts(float prevCost, float remainingCost)
    {
        this.prevCost = prevCost;
        this.remainingCost = remainingCost;
    }

    /**
     * Возвращает фактическую стоимость перехода к этой точке с самого начала.
      * местоположение, через серию путевых точек в этой цепочке.
     **/
    public float getPreviousCost()
    {
        return prevCost;
    }

    /**
     * Возвращает оценку оставшейся стоимости поездки из этого
      * указать конечный пункт назначения.
     **/
    public float getRemainingCost()
    {
        return remainingCost;
    }

    /**
     * Возвращает оценку общей стоимости данной путевой точки. Это включает
      * фактическая стоимость проезда к этой точке от места старта плюс
      * оценка оставшейся стоимости поездки от этой точки до
      * пункта назначения.
     **/
    public float getTotalCost()
    {
        return prevCost + remainingCost;
    }
}




Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, программирование, java, лабиринт





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Урок 11. Перегрузка реляционного оператора C#
Урок 17. Конвертация чисел в строки (Number в String) C#


© upread.ru 2013-2021
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.