67 lines
1.7 KiB
JavaScript
67 lines
1.7 KiB
JavaScript
// Generated by CoffeeScript 1.6.2
|
|
(function() {
|
|
var canvas, color, ctx, dx, i, j, line, nx, ny, redraw, state, _i, _j, _ref,
|
|
_this = this;
|
|
|
|
dx = 20;
|
|
|
|
_ref = [52, 7], nx = _ref[0], ny = _ref[1];
|
|
|
|
canvas = document.getElementById('canvas');
|
|
|
|
canvas.width = nx * dx;
|
|
|
|
canvas.height = ny * dx;
|
|
|
|
state = [];
|
|
|
|
for (i = _i = 1; _i <= ny; i = _i += 1) {
|
|
line = [];
|
|
for (j = _j = 1; _j <= nx; j = _j += 1) {
|
|
line.push(0);
|
|
}
|
|
state.push(line);
|
|
}
|
|
|
|
ctx = canvas.getContext('2d');
|
|
|
|
color = ['rgb(255, 255, 255)', 'rgb(204, 255, 255)', 'rgb(153, 255, 255)', 'rgb(102, 255, 255)', 'rgb(51, 255, 255)', 'rgb(0, 255, 255)'];
|
|
|
|
redraw = function() {
|
|
var _k, _ref1, _results;
|
|
|
|
_results = [];
|
|
for (i = _k = 0, _ref1 = ny - 1; _k <= _ref1; i = _k += 1) {
|
|
_results.push((function() {
|
|
var _l, _ref2, _results1;
|
|
|
|
_results1 = [];
|
|
for (j = _l = 0, _ref2 = nx - 1; _l <= _ref2; j = _l += 1) {
|
|
ctx.fillStyle = color[state[i][j]];
|
|
_results1.push(ctx.fillRect(j * dx, i * dx, dx, dx));
|
|
}
|
|
return _results1;
|
|
})());
|
|
}
|
|
return _results;
|
|
};
|
|
|
|
canvas.onmousemove = function(e) {
|
|
var x, y, _ref1, _ref2;
|
|
|
|
if (e.pageX || e.pageY) {
|
|
_ref1 = [e.pageX, e.pageY], x = _ref1[0], y = _ref1[1];
|
|
} else {
|
|
x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
|
|
y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
|
|
}
|
|
x -= canvas.offsetLeft;
|
|
y -= canvas.offsetTop;
|
|
_ref2 = [Math.floor(y / dx), Math.floor(x / dx)], i = _ref2[0], j = _ref2[1];
|
|
state[i][j] += 1;
|
|
state[i][j] %= 6;
|
|
return redraw();
|
|
};
|
|
|
|
}).call(this);
|