X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FAmbiguous.js;h=5e2b32a7db4ba28c05cbf0a252bdcba30ca04b85;hb=89a6214b27561878670914a65902aa51682efe61;hp=88566e76ac7f386b132af178ef845b6583f781a5;hpb=ff3a8d16dc0aed16ff471834fe7af0253b50ead6;p=vchess.git diff --git a/client/src/variants/Ambiguous.js b/client/src/variants/Ambiguous.js index 88566e76..5e2b32a7 100644 --- a/client/src/variants/Ambiguous.js +++ b/client/src/variants/Ambiguous.js @@ -1,7 +1,9 @@ import { ChessRules } from "@/base_rules"; -import { randInt } from "@/utils/alea"; +import { randInt, shuffle } from "@/utils/alea"; +import { ArrayFun } from "@/utils/array"; export class AmbiguousRules extends ChessRules { + static get HasFlags() { return false; } @@ -230,13 +232,13 @@ export class AmbiguousRules extends ChessRules { this.kingPos[this.turn] = [move.vanish[1].x, move.vanish[1].y]; } - static GenRandInitFen(randomness) { - if (randomness == 0) + static GenRandInitFen(options) { + if (options.randomness == 0) return "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w 0 -"; let pieces = { w: new Array(8), b: new Array(8) }; for (let c of ["w", "b"]) { - if (c == 'b' && randomness == 1) { + if (c == 'b' && options.randomness == 1) { pieces['b'] = pieces['w']; break; } @@ -248,8 +250,10 @@ export class AmbiguousRules extends ChessRules { if (rem2 == positions[1] % 2) { // Fix bishops (on different colors) for (let i=2; i<8; i++) { - if (positions[i] % 2 != rem2) + if (positions[i] % 2 != rem2) { [positions[1], positions[i]] = [positions[i], positions[1]]; + break; + } } } for (let i = 0; i < 8; i++) pieces[c][positions[i]] = composition[i]; @@ -291,4 +295,5 @@ export class AmbiguousRules extends ChessRules { else move.vanish[1].p = V.TARGET_CODE[move.vanish[1].p]; return notation; } + };