X-Git-Url: https://git.auder.net/js/app_dev.php?a=blobdiff_plain;f=variants%2FAlign4%2Fclass.js;h=f5b8f8364830dfff5ff2d3f180eb0adfde541b6a;hb=d66135396f3a6e140947545630004ce11f8eee7b;hp=b7b0c4a6fd43ed343d8baf3bbbbede78211d3f2f;hpb=4cec374b0172e0888aa2fa33283ad72210be6e56;p=xogo.git diff --git a/variants/Align4/class.js b/variants/Align4/class.js index b7b0c4a..f5b8f83 100644 --- a/variants/Align4/class.js +++ b/variants/Align4/class.js @@ -13,6 +13,14 @@ export default class Align4Rules extends ChessRules { {label: "Random", value: 1} ] }], + input: [ + { + label: "Pawn first", + variable: "pawnfirst", + type: "checkbox", + defaut: false + } + ], styles: ["atomic", "capture", "cylinder"] }; } @@ -24,27 +32,34 @@ export default class Align4Rules extends ChessRules { return false; } - genRandInitFen(seed) { - const baseFen = super.genRandInitFen(seed); - return "4k3/8" + baseFen.substring(17, 50) + " -"; //TODO: + flags 1188 + genRandInitBaseFen() { + let baseFen = super.genRandInitBaseFen(); + return { + fen: baseFen.fen.replace("rnbqkbnr/pppppppp", "4k3/8"), + o: {flags: baseFen.o.flags.substr(0, 2) + "88"} + }; } - setOtherVariables(fenParsed) { - super.setOtherVariables(fenParsed); + initReserves() { this.reserve = { b: { p: 1 } }; } // Just do not update any reserve (infinite supply) updateReserve() {} - getCastleMoves([x, y]) { - if (this.GetColor(x, y) == 'b') - return []; - return super.getCastleMoves([x, y]); + canDrop([c, p], [i, j]) { + return ( + this.board[i][j] == "" && + ( + p != "p" || this.options["pawnfirst"] || + (c == 'w' && i < this.size.x - 1) || + (c == 'b' && i > 0) + ) + ); } - getCurrentScore(move) { - const score = super.getCurrentScore(move); + getCurrentScore(move_s) { + const score = super.getCurrentScore(move_s); if (score != "*") return score; // Check pawns connection: