PU2213/src/js/puzzles.js

31 lines
709 B
JavaScript

import { SequencePuzzle } from "./puzzles/sequencepuzzle.js";
export class Puzzles {
constructor() {
this.data = null;
}
async fetch() {
let response = await fetch( "./data/puzzles.json" );
this.data = await response.json();
}
dynamicPuzzle( name ) {
let puzzleClasses = { SequencePuzzle };
let className = puzzleClasses[ name ];
return className;
}
computePuzzle( puzzleIndex ) {
if ( this.data !== null &&
typeof this.data.puzzles !== "undefined" &&
this.data.puzzles.length > puzzleIndex )
{
let puzzleData = this.data.puzzles[ puzzleIndex ];
let puzzleClass = this.dynamicPuzzle( puzzleData.type );
let puzzleInstance = new puzzleClass( puzzleData );
}
}
}