/** * Relax-metodi joka tarkistaa onko nyt tutkittavan viereisen pisteen nykyinen dist-arvo * korvattavissa pienemmällä arvolla. * * @param u Piste josta tultiin * @param v Pisteen u vieressä oleva piste johon etäisyyttä tutkitaan */ public void relax(AstarPiste u, AstarPiste v) { int udist = u.getDist() + this.laby[v.getY()][v.getX()]; if (u.getDist() == Integer.MAX_VALUE) { udist = u.getDist(); } if (v.getDist() > udist) { v.setDist(udist); v.paivitaAlkuunPlusLoppuun(); this.keko.decKey(v); v.setEdellinen(u); } }
/** * Metodi jolla kutsutaan jokaiselle pisteen u viereiselle pisteelle tarkistaJaRelaxoi-metodia. * * @param u Piste jonka viereiset pisteet tutkitaan */ public void tutkiViereiset(AstarPiste u) { tarkistaJaRelaxoi(u, u.getX(), u.getY() + 1); tarkistaJaRelaxoi(u, u.getX() + 1, u.getY()); tarkistaJaRelaxoi(u, u.getX() - 1, u.getY()); tarkistaJaRelaxoi(u, u.getX(), u.getY() - 1); }