File size: 2,503 Bytes
87b3b3a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
## 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;
};