Guest User

Untitled

a guest
Jun 19th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.90 KB | None | 0 0
  1.     public Queue<Integer> tutki() {
  2.         Point virtuaalisijainti;
  3.         Queue<Integer> edellinen = new LinkedList<Integer>();
  4.         Queue<Integer> nykyinen;
  5.         Boolean loytyiUusi = false;
  6.         int viimeisinSuunta;
  7.         List<Integer> suunnat;
  8.         List<Integer> uudet;
  9.        
  10.         for(int i = 0; i < 50; i++) {
  11.             loytyiUusi = false;
  12.             nykyinen = new LinkedList<Integer>();
  13.             viimeisinSuunta = -1;
  14.             suunnat = new ArrayList<Integer>();
  15.             uudet = new ArrayList<Integer>();
  16.             virtuaalisijainti = new Point(this.x, this.y);
  17.            
  18.             while(!loytyiUusi) {
  19.                 //System.out.println(virtuaalisijainti);
  20.                 uudet.clear();
  21.                 suunnat.clear();
  22.                
  23.                 for (int u = 0; u < 4; u++) {
  24.                     if (this.koordinaatisto.get(virtuaalisijainti)[u] == true && !onKaynyt(annaNaapuri((int)virtuaalisijainti.getX(), (int)virtuaalisijainti.getY(), u))) {
  25.                         uudet.add(u);
  26.                     } else if (this.koordinaatisto.get(virtuaalisijainti)[u] == true && u != vastakkainenSuunta(viimeisinSuunta)) {
  27.                         suunnat.add(u);
  28.                     }
  29.                 }
  30.                
  31.                 if (uudet.size() == 0) {
  32.                     if (suunnat.size() == 0) {
  33.                         break;
  34.                     } else {
  35.                         viimeisinSuunta = suunnat.get(random.nextInt(suunnat.size()));
  36.                         nykyinen.offer(viimeisinSuunta);
  37.                         switch(viimeisinSuunta) {
  38.                             case 0: virtuaalisijainti.translate(0, 1); break;
  39.                             case 1: virtuaalisijainti.translate(1, 0); break;
  40.                             case 2: virtuaalisijainti.translate(0, -1); break;
  41.                             case 3: virtuaalisijainti.translate(-1, 0); break;
  42.                         }  
  43.                     }
  44.                
  45.                 } else {
  46.                     viimeisinSuunta = uudet.get(random.nextInt(uudet.size()));
  47.                     nykyinen.offer(viimeisinSuunta);
  48.                     loytyiUusi = true;
  49.                    
  50.                     if (edellinen.size() > nykyinen.size() && nykyinen.size() != 0) {
  51.                         edellinen.clear();
  52.                         edellinen.addAll(nykyinen);
  53.                     } else if (edellinen.size() == 0) {
  54.                         edellinen.clear();
  55.                         edellinen.addAll(nykyinen);
  56.                     }
  57.                 }
  58.             }
  59.         }
  60.        
  61.         return edellinen;
  62.     }
Add Comment
Please, Sign In to add comment