import { MersenneTwister } from "../mersennetwister.js"; export class SequencePuzzle { constructor( puzzleData ) { this.puzzleData = puzzleData; this.mersennetwister = new MersenneTwister( this.puzzleData.seed ); this.operators = [ "ADD" ]; this.length = Math.max( Math.round( this.mersennetwister.randomRange( 30, 70 ) / 10 ), 5); this.answerposition = ( Math.floor( this.mersennetwister.randomRange( 15, this.length * 500 ) / 10 ) - 1 ) % this.length; this.operator = this.operators[ ( Math.floor( this.mersennetwister.randomRange( 15, this.length * 500 ) / 10 ) - 1 ) % this.operators.length ]; this.factor = Math.round( this.mersennetwister.randomRange( 10, 100 ) / 10 ); this.start = Math.round( this.mersennetwister.randomRange( 10, 97 ) / 10 ); this.parts = new Array( this.length ); this.parts[ 0 ] = this.start; for ( var i = 1; i < this.length; i++ ) { this.parts[ i ] = this.parts[ i - 1] + this.factor; } this.answer = this.parts[ this.answerposition ]; this.parts[ this.answerposition ] = "?"; document.write( "Puzzle id: " + this.puzzleData.id + " (seed: " + this.puzzleData.seed + ")" + "
"); document.write( this.parts.join( " " ) + "

" ); } }