new attempt at puzzle
by Darby Rathbone
CSS
[puzzle] {
display:block;
position:absolute;
}
JavaScript
var pieces = new Array();
var puzzle = (function () {
var xmax = 13.0;
var ymax = 13.0;
var canvasarray = new Array();
var imagesave = new Image();
return {
newImage: function (src) {
imagesave = new Image();
imagesave.src = src;
imagesave.onload = function () {
var wsize = imagesave.width / xmax;
var hsize = imagesave.height / ymax;
for (var j = 0; j < imagesave.height; j += hsize) {
for (var i = 0; i < imagesave.width; i += wsize) {
canvasarray.push(document.createElement("canvas"));
var c = canvasarray[canvasarray.length - 1];
var piecetoleft;
var pieceabove;
if (i !== 0) {
piecetoleft = canvasarray[canvasarray.length - 2];
}
if (j !== 0) {
pieceabove = canvasarray[canvasarray.length - 1 - xmax];
}
c.width = wsize * 2.0;
c.height = hsize * 2.0;
c.setAttribute("puzzle", "true");
c.setAttribute("class", "drag");
c.setAttribute("draggable", "true");
var xpos = i - (wsize / 2.0);
var ypos = j - (hsize / 2.0);
var width = (i + (wsize * 2.0) > imagesave.width) ? wsize * 1.5 : wsize * 2.0;
var height = (j + (hsize * 2.0) > imagesave.height) ? hsize * 1.5 : hsize * 2.0;
c.setAttribute("outright", (Math.round(Math.random()) === 1) ? "true" : "false");
c.setAttribute("outbottom", (Math.round(Math.random()) === 1) ? "true" : "false");
//c.setAttribute("topedge",(((Math.random()/2.0)+.5)*hsize));
...