X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=base_rules.js;h=dac7bb4f91f6b5c9e208a6c748ff47fe407f5263;hb=8f228ec8d91d528be3c72200f5f674058abce31e;hp=3fa4e0bf40baa5514c40315eb5f21bae97b83c16;hpb=437dfd42748eb2359103fd87a7d0e780121a7865;p=xogo.git diff --git a/base_rules.js b/base_rules.js index 3fa4e0b..dac7bb4 100644 --- a/base_rules.js +++ b/base_rules.js @@ -175,8 +175,6 @@ export default class ChessRules { // Setup the initial random-or-not (asymmetric-or-not) position genRandInitFen(seed) { - Random.setSeed(seed); - let fen, flags = "0707"; if (!this.options.randomness) // Deterministic: @@ -184,7 +182,8 @@ export default class ChessRules { else { // Randomize - let pieces = { w: new Array(8), b: new Array(8) }; + Random.setSeed(seed); + let pieces = {w: new Array(8), b: new Array(8)}; flags = ""; // Shuffle pieces on first (and last rank if randomness == 2) for (let c of ["w", "b"]) { @@ -372,13 +371,16 @@ export default class ChessRules { ////////////////// // INITIALIZATION - constructor(o) { + constructor(o, genFenOnly) { this.options = o.options; // Fill missing options (always the case if random challenge) (V.Options.select || []).concat(V.Options.input || []).forEach(opt => { if (this.options[opt.variable] === undefined) this.options[opt.variable] = opt.defaut; }); + if (genFenOnly) + // This object will be used only for initial FEN generation + return; this.playerColor = o.color; this.afterPlay = o.afterPlay; //trigger some actions after playing a move