31 lines
709 B
JavaScript
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 );
|
|
}
|
|
}
|
|
} |