Spaces:
Running
Running
## amahdy: Solution 1 - Teleporter? | |
Optimze the code and move right all the way! | |
```javascript | |
map.placeObject(6, 4, 'teleporter'); | |
map.placeObject(map.getWidth()-11, map.getHeight()-5, 'teleporter'); | |
var ts = map.getDynamicObjects(); | |
ts[ts.length-2].setTarget(ts[ts.length-1]); | |
break; | |
``` | |
## amahdy: Solution 2 - Wanna play? | |
Needs some luck, try and error | |
```javascript | |
if(t1.getType() != 'teleporter' | |
|| t2.getType() != 'teleporter') { | |
map.setSquareColor(t1.getX(), t1.getY(), 'yellow'); | |
map.setSquareColor(t2.getX(), t2.getY(), 'yellow'); | |
}else { | |
map.setSquareColor(t1.getX(), t1.getY(), '0'+i); | |
map.setSquareColor(t2.getX(), t2.getY(), '0'+i); | |
} | |
``` | |
## Jhack (giacgbj) | |
Connect the first teleport on the player's right to the one on the exit's right. | |
```javascript | |
var start; | |
var end; | |
for (j = 0; j < teleportersAndTraps.length; j++) { | |
var t = teleportersAndTraps[j]; | |
var x = t.getX(); | |
var y = t.getY(); | |
if (7 == x && 4 == y) | |
{ | |
start = t; | |
} else if (map.getWidth()-8 == x && map.getHeight()-5 == y) { | |
end = t; | |
} | |
} | |
start.setTarget(end); | |
break; | |
``` | |
## PK | |
Find nearest teleport to exit. Re-route all other teleports to it. | |
There is no room for mistake. :) | |
```javascript | |
var dist2 = function d2(o,x2,y2){ | |
var dx = x2 - o.getX(); | |
var dy = y2 - o.getY(); | |
return dx*dx + dy*dy; | |
}; | |
var teleporters = teleportersAndTraps.filter(function(v){ | |
return v.getType() == 'teleporter'; | |
}); | |
var x = map.getWidth(); | |
var y = map.getHeight(); | |
teleporters.sort(function(a, b){ | |
return dist2(a,x,y) - dist2(b,x,y); | |
}) | |
var exit = teleporters[0]; | |
for (var i = 1; i < teleporters.length; i++){ | |
teleporters[i].setTarget(exit); | |
} | |
break; | |
``` | |
## Highlights | |
Highlights mines and shows telepoerter's paths | |
```javascript | |
t1_pos = map.getCanvasCoords( t1 ); | |
t2_pos = map.getCanvasCoords( t2 ); | |
if( t1.getType() == 'trap' ) { | |
map.setSquareColor( t2.getX(), t2.getY(), 'red' ); | |
} else if( t2.getType() != 'trap' ) { | |
canvas.beginPath(); | |
canvas.strokeStyle = 'blue'; | |
canvas.lineWidth = 1; | |
canvas.moveTo( t1_pos['x'] , t1_pos['y']); | |
canvas.lineTo( t2_pos['x'] , t2_pos['y'] ); | |
canvas.stroke(); | |
} | |
if( t2.getType() == 'trap' ) { | |
map.setSquareColor( t1.getX(), t1.getY(), 'red' ); | |
} | |
``` | |
## Redefine shuffle | |
not shuffling for real | |
function shuffle(o){ | |
var ret = [] | |
ret.push(o[0]); | |
ret.push(o[o.length -2]); | |
return ret; | |
}; | |