// show an open card
this.turned.push(target);
put(target, '.turn');
+ this.log('pick', target.id, target.index);
}
else if (this.turned.length < 2) {
return; // keep open
this.turned = [];
if (Array.from(this.form.children).every(card => card.classList.contains('good'))) {
put(this.form, '.good');
+ this.stop('done');
}
return;
}
let cards;
if (this.words) {
- cards = this.words.splice(0, 6).map(row => row[2]);
+ const formstyle = window.getComputedStyle(this.form)
+ const gridsize = [
+ formstyle['grid-template-rows'], formstyle['grid-template-columns']
+ ].map(val => val.match(/ /g).length + 1).reduce((x, y) => x * y) / 2;
+ cards = this.words.splice(0, gridsize || 6).map(row => row[2]);
cards.push(...cards.map(val => -val));
}
else {
.map(e => e.toString())
}
- cards.shuffle().forEach(word => {
+ cards.shuffle().forEach((word, seq) => {
let ref = Math.abs(word);
put(this.form,
- 'figure>img[src=$]<', `/data/word/en/${ref}.jpg`,
- {onclick: e => this.turn(e), id: ref, className: word < 0 ? 'mirror' : ''}
+ 'figure>img[src=$]<', `/data/word/32/${ref}.jpg`, {
+ onclick: e => this.turn(e),
+ id: ref,
+ className: word < 0 ? 'mirror' : '',
+ index: seq,
+ }
);
});
}