Package src.pathFinding

Source Code of src.pathFinding.Nodo

package src.pathFinding;

import java.util.Iterator;
import java.util.List;

import src.UnidadBasica;

import com.gameloftProgrammersCup.clientInterfaces.Point;

public class Nodo {
  public Point punto;
  public Nodo padre;
  public double gCost;
  public double hCost;
 
 
  public Nodo(Point punto,Nodo padre,Point destino,UnidadBasica unidad, List intermedios){
    this.padre=padre;
    this.punto=punto;
    this.setHCost(destino,unidad.getMovementSpeed());
    if (padre==null)
      gCost=0;
    else
      this.setGCost(unidad,intermedios);
  }


  public double getGCost() {
    return gCost;
  }

  public double getFCost() {
    return this.getGCost()+this.getHCost();
  }

  public void setGCost(UnidadBasica unidad, List intermedios) {
    int costo=0;
    Iterator it=intermedios.iterator();
    while (it.hasNext()){
      Point punto=(Point)it.next();
      if (unidad.isDescubir())
        costo=costo-(unidad.getJugador().getFortaleza().estadisticas.mapaEstadistico[punto.getX()][punto.getY()].isDescubierto() ? 0 : 2);
      if (unidad.isPeligrosidad())
        costo=costo+Math.max(unidad.getJugador().getFortaleza().estadisticas.mapaEstadistico[punto.getX()][punto.getY()].getPeligrosidad(),0);
    }
    if (costo>0){
      //System.out.println("prueba"+costo);
    }
     
    gCost = padre.getGCost()+20+costo;
  }


  public double getHCost() {
    return hCost;
  }


  public void setHCost(Point destino,int rango) {
   
    //double distancia=Math.sqrt((Math.abs(destino.getX())-Math.abs(this.getPunto().getX()))^2+(Math.abs(destino.getY())-Math.abs(this.getPunto().getY()))^2);
   
    hCost = Astar.distanciaManhattan(destino, this.getPunto())*20;
  }


  public Nodo getPadre() {
    return this.padre;
  }


  public void setPadre(Nodo padre) {
    this.padre = padre;
  }


  public Point getPunto() {
    return punto;
  }


  public void setPunto(Point punto) {
    this.punto = punto;
  }
 
  public boolean equals(Nodo nodo){
    if (this.getPunto().getX()==nodo.getPunto().getX() && this.getPunto().getY()==nodo.getPunto().getY() )
      return true;
    else
      return false;

  }
 

}
TOP

Related Classes of src.pathFinding.Nodo

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.