Brett - halbe Lösung
by bjelline
HTML
<script src="http://webcode.multimediatechnology.at/code/js/brett.js"></script>
<h2>Unendliches Schachbrett</h2>
CSS
canvas {
margin: 10px;
}
JavaScript
// Brett( cx, cy, pixelx, pixely ) erzeugt ein schachbrett
// und zeigt davon die zellen von -cx bis +cx und -cy bis +cy
// pixelx und pixely gibt die größe am bildschrim an
var linkes_brett = new Brett(4, 6, 200, 300);
var rechtes_brett = new Brett(4, 6, 200, 300);
linkes_brett.grid();
rechtes_brett.grid();
console.log(linkes_brett);
linkes_brett.text_at("0", 0, 0);
function xy2n(x, y) {
if (x==0 && y==0) return 0;
var n = 0;
var l = Math.abs(x) + Math.abs(y);
var base = 1 + 2 * (l-1) * l;
if( y >= 0 ) {
n = base + l + x;
} else {
n = base + l*3 - x;
}
return n;
}
function n2xy(n) {
var coord = {
x: 0,
y: 0
};
if(n==0) return coord;
var l = Math.round(Math.sqrt( n - 3/4 ));
return { x: 0, y: l};
}
/*
for (var n = 0; n < 64; n++) {
var coord = n2xy(n);
linkes_brett.text_at(n, coord.x, coord.y);
}
*/
var n = 0;
var coord = n2xy(n);
linkes_brett.text_at(n, coord.x, coord.y);
n=1;
coord = n2xy(n);linkes_brett.text_at(n, coord.x, coord.y);
n=5;
coord = n2xy(n);linkes_brett.text_at(n, coord.x, coord.y);
n=13;
coord = n2xy(n);linkes_brett.text_at(n, coord.x, coord.y);
n=25;
coord = n2xy(n);linkes_brett.text_at(n, coord.x, coord.y);
n=41;
coord = n2xy(n);linkes_brett.text_at(n, coord.x, coord.y);
var map = [];
for (var x = -4; x < 4; x++) {
for (var y = -4; y < 4; y++) {
var n = xy2n(x, y);
rechtes_brett.text_at(n, x, y);
map[n] = "" + x + "/" + y;
}
}
for(var n=0; n < 40; n++) {
console.log("x/y = " + map[n] + ", n = " + n + " /4 = " + Math.round( Math.sqrt( 0.5 + 4*n ) ) );
}