library-ts/browser/random/SeedGenerator.ts

35 lines
732 B
TypeScript
Raw Normal View History

2025-03-08 08:16:54 +00:00
import { JSRandomEngine } from "./JSRandomEngine";
import { LCG } from "./LCG";
import { RandomEngine, SeedableRandomEngine } from "./RandomEngine";
export class SeedGenerator
{
static fromText( source:string, randomEngine:SeedableRandomEngine<any> = null )
{
if ( ! randomEngine )
{
randomEngine = new LCG();
}
randomEngine.setSeed( 18593 );
let seed = 0;
for ( let i = 0; i < source.length; i++ )
{
let characterValue = source.charCodeAt( i );
seed += characterValue * 767417 + 13 + randomEngine.next() * characterValue;
if ( seed > 32000 )
{
seed = seed % 32000;
}
}
console.log( "SEED FROM TEXT:", source, seed )
return seed;
}
}