SHOW:
|
|
- or go back to the newest paste.
1 | - | def hb(state:StateA):Int = { |
1 | + | if(state.y < mapa.N /2) { |
2 | - | if(state.y < mapa.N /2) { |
2 | + | |
3 | val lijevi = b._2.filter(i=>i._2 < mapa.N/2) | |
4 | - | val lijevi = b._2.filter(i=>i._1 < mapa.N/2) |
4 | + | val desni = b._2.filterNot(i=>i._2 < mapa.N/2) |
5 | - | val desni = b._2.filterNot(i=>i._1 < mapa.N/2) |
5 | + | |
6 | val d = desni.foldLeft(2*mapa.N)((rd,kd) => { | |
7 | val x = Math.abs(state.x - k._1) + Math.abs(state.y - k._2) +Math.abs(kd._1 - k._1) + Math.abs(kd._2 - k._2) + | |
8 | - | val x = Math.abs(state.x - k._1) + Math.abs(state.y - k._2) +Math.abs(kd._1 - k._1) + Math.abs(kd._2 - k._2) |
8 | + | Math.abs(kd._1 - mapa.getEnd()._1) + Math.abs(kd._2 - mapa.getEnd()._2) |
9 | if(x<rd) x | |
10 | else rd | |
11 | }) | |
12 | if(d < r) d | |
13 | else r | |
14 | }) | |
15 | if(udaljenost < a) udaljenost | |
16 | a | |
17 | }) | |
18 | } else { | |
19 | Math.abs(state.x - mapa.getEnd()._1) + Math.abs(state.y - mapa.getEnd()._2) | |
20 | - | } |
20 | + | } |