+ }
+ }
+
+ setup() {
+ this.turned = [];
+ this.form = document.getElementById('quiz');
+
+ let cards;
+ if (this.words) {
+ 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 {
+ cards = Object.entries(this.pairs).flat()
+ .map(e => e.toString())
+ }
+
+ cards.shuffle().forEach(word => {
+ let ref = Math.abs(word);
+ put(this.form,
+ 'figure>img[src=$]<', `/data/word/32/${ref}.jpg`,
+ {onclick: e => this.turn(e), id: ref, className: word < 0 ? 'mirror' : ''}
+ );