Skip to content

Instantly share code, notes, and snippets.

@kusano
Last active August 29, 2015 14:16
Show Gist options
  • Save kusano/7825c2c86e53d5ae8bb0 to your computer and use it in GitHub Desktop.
Save kusano/7825c2c86e53d5ae8bb0 to your computer and use it in GitHub Desktop.
MM86
<!DOCTYPE html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="vis.js"></script>
<div><textarea id="in">89
1 2
4 6
7 6
9 4
14 0
9 5
5 5
8 0
4 0
5 11
8 8
17 1
3 11
9 7
9 2
13 0
1 1
14 13
11 17
0 15
1 15
2 4
3 0
5 16
12 5
16 17
12 0
13 17
1 12
6 10
2 13
14 12
11 15
6 11
6 15
17 13
12 11
17 16
10 12
6 3
1 14
0 6
5 4
10 14
0 4
4 13
10 13
15 5
15 12
3 3
9 16
11 9
11 7
7 4
0 10
3 16
5 8
16 2
13 16
9 6
4 9
5 12
6 9
13 3
16 8
0 12
17 8
4 11
10 1
4 1
11 6
7 16
10 17
7 5
7 15
8 13
12 15
13 11
1 11
0 8
2 9
7 0
14 7
17 10
7 11
15 1
11 12
1 3
5 13
244
0 -38 41
0 -47 41
87 -31 -29
87 -31 -32
21 1 3
1 2 4
28 -40 53
28 -42 53
60 1 12
56 4 9
2 5 8
3 -22 -27
3 -32 -27
4 -4 -18
4 -33 -18
8 -20 -24
8 -26 -24
5 4 0
16 -11 -11
16 -15 -11
49 1 1
6 3 3
79 -42 50
79 -48 50
7 0 8
5 33 -29
5 33 -47
41 -1 5
41 -1 -15
9 0 6
85 26 -10
85 38 -10
63 15 1
13 13 3
10 9 7
11 -18 -34
11 -50 -34
12 -4 18
12 -4 34
20 -10 26
20 -35 26
29 1 15
10 6 10
68 18 -7
68 18 -8
14 10 1
60 -7 20
60 -30 20
56 1 12
2 4 9
15 5 8
49 -38 -38
49 -56 -38
72 -45 72
72 -45 78
76 10 17
17 12 15
18 -27 55
18 -34 55
19 -17 32
19 -39 32
29 -2 18
29 -2 33
25 17 17
38 15 17
38 16 17
1 10 12
22 2 1
22 -22 1
56 -7 4
56 -9 4
30 1 12
23 2 13
81 2 -5
24 7 0
38 46 47
26 13 -1
26 13 -4
63 15 -28
47 15 1
48 15 5
27 15 15
27 15 12
60 -43 33
60 -43 42
47 26 -10
47 26 -45
13 15 1
10 13 3
59 23 -8
59 23 -46
62 9 6
67 6 9
23 4 11
31 48 -22
31 48 -25
32 65 -39
32 66 -39
33 7 10
71 36 45
71 37 45
34 7 16
52 -18 -22
52 -18 -29
35 11 7
34 6 17
34 6 39
46 7 16
86 10 13
36 11 12
37 1 32
37 1 40
1 29 -7
26 50 -41
26 50 -44
39 13 -4
40 2 13
40 3 13
88 5 35
61 5 13
9 5 11
9 5 12
39 45 -36
39 49 -36
42 13 -4
43 14 18
43 24 18
16 -25 -21
16 -27 -21
44 -15 -11
57 30 2
70 15 2
70 16 2
33 11 6
9 7 10
45 5 12
15 2 5
15 -40 5
67 5 8
9 6 9
86 7 10
10 9 -1
10 -41 -1
76 8 19
76 -5 19
17 10 17
27 12 15
6 -8 -8
6 -8 -20
50 12 13
50 12 -23
73 -28 -30
73 -28 -33
51 7 5
35 27 23
35 32 23
80 -4 15
80 -11 15
53 2 9
40 17 27
40 20 27
78 3 13
54 1 11
56 -12 1
56 -12 -3
55 -9 4
58 19 16
46 13 16
55 3 16
55 7 16
13 0 -14
13 0 -40
70 15 1
67 -14 -11
67 -14 -41
9 5 8
86 6 9
69 -3 -6
69 -25 -6
62 4 1
2 -5 0
2 -37 0
75 8 28
86 8 11
86 8 13
9 6 9
67 10 -17
67 55 -17
47 27 -44
47 27 -12
64 -14 -22
64 -36 -22
65 -26 -14
65 -46 -14
66 67 -42
36 35 -12
36 35 -30
14 37 -26
14 44 -26
67 42 -30
67 42 -50
33 26 21
33 31 21
34 43 2
34 43 -19
76 -21 3
76 -49 3
77 39 37
51 13 11
74 16 24
74 16 38
36 14 -9
36 14 6
17 -19 46
17 -38 46
51 25 23
51 25 36
54 -3 7
54 -24 7
7 10 -2
7 10 -9
53 -50 -43
53 -55 -43
81 -41 -48
81 -44 -48
24 2 -5
82 15 8
82 21 8
27 9 18
27 9 30
83 12 15
44 -41 -37
44 -54 -37
84 -15 -11
63 -3 -10
63 -3 22
48 55 -35
48 61 -35
36 15 5
80 -25 29
80 -29 29
21 -11 15
61 28 -10
61 28 -16
After all moves queens 3 and 86 threaten each other.
Score = 0.0
</textarea></div>
<div><button id="go">go</button></div>
<div><canvas id="canvas" width="1920" height="1200"></canvas></div>
$(function()
{
$("#go").click(function()
{
var R = 8;
var V = $("#in").val().split(/\s/).map(Number);
var n = V.shift();
var Q = [];
for (var i=0; i<n; i++)
{
var q = {};
q.x = V.shift();
q.y = V.shift();
Q.push(q);
}
var c = $("#canvas")[0].getContext("2d");
c.fillStyle = "rgb(252,253,254)";
c.fillRect(0, 0, 10000, 10000);
c.save();
c.scale(R, R);
c.translate(160, 96);
for (var i=0; i<n; i++)
{
c.fillStyle = "hsla("+i/n*360+", 100%, 50%, 0.2)";
c.beginPath();
c.arc(Q[i].x, Q[i].y, 0.4, 0, 2*Math.PI, false);
c.fill();
}
c.lineWidth = 4./16;
var m = V.shift();
for (var i=0; i<m; i++)
{
var idx = V.shift();
var tx = V.shift();
var ty = V.shift();
c.strokeStyle = "hsla("+idx/n*360+", 100%, 50%, 0.2)";
c.beginPath();
c.moveTo(Q[idx].x, Q[idx].y);
c.lineTo(tx, ty);
c.stroke();
Q[idx].x = tx;
Q[idx].y = ty;
}
c.lineWidth = 1./16;
c.strokeStyle = "rgba(255, 0, 0, 0.2)";
c.fillStyle = "rgba(0, 0, 255, 1)";
for (var i=0; i<n; i++)
{
var x = Q[i].x;
var y = Q[i].y;
c.fillStyle = "hsla("+i/n*360+", 100%, 50%, 1)";
c.strokeStyle = "hsla("+i/n*360+", 100%, 50%, 0.2)";
c.beginPath();
c.moveTo(x-1000, y);
c.lineTo(x+1000, y);
c.moveTo(x-1000, y-1000);
c.lineTo(x+1000, y+1000);
c.moveTo(x-1000, y+1000);
c.lineTo(x+1000, y-1000);
c.moveTo(x, y-1000);
c.lineTo(x, y+1000);
c.stroke();
c.beginPath();
c.arc(x, y, 0.4, 0, 2*Math.PI, false);
c.fill();
}
c.restore();
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment