X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=variants%2FAmbiguous%2Fclass.js;h=a0cb7f2f602cdeca7af1dcae5d8daebff5503764;hb=dcfaab5dc62ccd9701ff314ad4e3d40c40223d44;hp=6d9ac7ef1cc25a3ca2915a7ebed7fa9c07ad04ad;hpb=33b427488bb6ee5c505c3a024bccedbef763f80e;p=xogo.git diff --git a/variants/Ambiguous/class.js b/variants/Ambiguous/class.js index 6d9ac7e..a0cb7f2 100644 --- a/variants/Ambiguous/class.js +++ b/variants/Ambiguous/class.js @@ -1,5 +1,5 @@ import ChessRules from "/base_rules.js"; -import GiveawayRules from "/variants/Giveaway/class.js"; +import {FenUtil} from "/utils/setupPieces.js"; export default class AmbiguousRules extends ChessRules { @@ -23,9 +23,18 @@ export default class AmbiguousRules extends ChessRules { } genRandInitBaseFen() { - const options = Object.assign({mode: "suicide"}, this.options); - const gr = new GiveawayRules({options: options, genFenOnly: true}); - return gr.genRandInitBaseFen(); + const s = FenUtil.setupPieces( + ['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r'], + { + randomness: this.options["randomness"], + diffCol: ['b'] + } + ); + return { + fen: s.b.join("") + "/pppppppp/8/8/8/8/PPPPPPPP/" + + s.w.join("").toUpperCase(), + o: {} + }; } canStepOver(x, y) { @@ -36,7 +45,7 @@ export default class AmbiguousRules extends ChessRules { // Subturn 2: play a move for me (which just indicate a square). getPotentialMovesFrom([x, y]) { const color = this.turn; - const oppCol = C.GetOppCol(color); + const oppCol = C.GetOppTurn(color); if (this.subTurn == 2) { // Just play a normal move (which in fact only indicate a square) let movesHash = {}; @@ -124,12 +133,12 @@ export default class AmbiguousRules extends ChessRules { pieces(color, x, y) { const targets = { - 's': {"class": "target-pawn", moves: []}, - 'u': {"class": "target-rook", moves: []}, - 'o': {"class": "target-knight", moves: []}, - 'c': {"class": "target-bishop", moves: []}, - 't': {"class": "target-queen", moves: []}, - 'l': {"class": "target-king", moves: []} + 's': {"class": "target-pawn"}, + 'u': {"class": "target-rook"}, + 'o': {"class": "target-knight"}, + 'c': {"class": "target-bishop"}, + 't': {"class": "target-queen"}, + 'l': {"class": "target-king"} }; return Object.assign({ 'g': {"class": "target"} }, targets, super.pieces(color, x, y)); @@ -152,7 +161,7 @@ export default class AmbiguousRules extends ChessRules { getCurrentScore() { // This function is only called at subTurn 1 - const color = C.GetOppCol(this.turn); + const color = C.GetOppTurn(this.turn); if (this.searchKingPos(color).length == 0) return (color == 'w' ? "0-1" : "1-0"); return "*"; @@ -161,7 +170,7 @@ export default class AmbiguousRules extends ChessRules { postPlay(move) { const color = this.turn; if (this.subTurn == 2 || this.searchKingPos(color).length == 0) { - this.turn = C.GetOppCol(color); + this.turn = C.GetOppTurn(color); this.movesCount++; } this.subTurn = 3 - this.subTurn;