.forEach(card => put(card, '!.turn!.bad'));
}
- load(dataurl) {
- if (dataurl) {
- super.load(dataurl);
- }
- else {
+ load() {
+ this.configure();
+ if (this.preset.pairs) {
this.dataurl = '/data/wordpairs.json';
fetch(this.dataurl).then(res => res.json()).then(pairs => {
this.pairs = pairs;
this.setup();
});
}
+ else {
+ super.load();
+ }
}
setup() {
+ super.setup();
this.turned = [];
- this.form = document.getElementById('quiz');
+ this.form.innerHTML = '';
+ this.form.className = '';
let cards;
if (this.words) {
const aspect = this.form.clientWidth / window.innerHeight;
//TODO image ratio
- let count = 35;
+ let count = parseInt(this.preset.n) || 35;
let cols = Math.round(Math.sqrt(count) * aspect**.5);
count = cols * Math.ceil(count / cols);
this.form.style['grid-template-columns'] = `repeat(${cols}, 1fr)`;
- cards = this.words.splice(0, count>>1).map(row => row[2]);
+ cards = this.words.splice(0, count>>1).map(row => row.imgid);
cards.push(...cards.map(val => -val));
}
else {