Лабиринты 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, лабиринт




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



Рисуем звезду на Java
Урок 11. Задачи продолжения C#
C# Visual Studio и базы данных: подключаем Microsoft SQL Server Compact