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( " " ) + "
" );
}
}