Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | /**
* @classdesc Helper functions served to owner {@link MiniMemory}
* @class
*/
export class PrivateIndex {
/**
*
* @param {{}} owner An instance of {@link MiniMemory}
*/
constructor(owner) {
this.owner = owner;
}
/**
* if total number of images are not even, then one canvas is
* not required. In this case place this in the middle of the layout
* @param {array} matrix col,row counts of the game.
* @return {integer} index of the mid-element otherwise -1
*/
getOddMidIndex(matrix) {
const [col, row] = matrix;
return (col * row) % 2 === 1 ? (col * row - 1) / 2 : -1;
}
/**
* Creates a Tile object.
* @param {integer} index
* @return {{}} Tile object
*/
createTile(index) {
const tile = document.createElement('div');
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.save();
tile.classList.add('tile');
canvas.setAttribute('index', index);
tile.appendChild(canvas);
return {
tile,
canvas,
};
}
/**
* checks if columns and rows are in defined range.
* @param {array} dim
* @return {boolean} true on exceed
*/
limitsExceeded(dim) {
let hasError = false;
dim.forEach((e) => {
e < 2 || e > 10 ? (hasError = true) : false;
});
return hasError;
}
// getNewImage(load, error) {
// const img = document.createElement('img');
// img.addEventListener('load', load);
// img.addEventListener('error', error, false);
// return img;
// }
}
|