X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FTwokings.js;h=d80a57d8fadd0be5a5b06f3c6d67eef87d9283ef;hb=HEAD;hp=d56d095188b54cb25f20ea96e07e5c1a59dfb66a;hpb=e50a802531b99829c533f22ecd21e359e7e1e049;p=vchess.git diff --git a/client/src/variants/Twokings.js b/client/src/variants/Twokings.js index d56d0951..d80a57d8 100644 --- a/client/src/variants/Twokings.js +++ b/client/src/variants/Twokings.js @@ -2,6 +2,7 @@ import { ChessRules } from "@/base_rules"; import { CoregalRules } from "@/variants/Coregal"; export class TwokingsRules extends CoregalRules { + static get PawnSpecs() { return Object.assign( {}, @@ -14,7 +15,7 @@ export class TwokingsRules extends CoregalRules { if (position.length == 0) return false; const rows = position.split("/"); if (rows.length != V.size.x) return false; - let kings = { "w": 0, "b": 0 }; + let kings = { 'K': 0, 'k': 0 }; for (let row of rows) { let sumElts = 0; for (let i = 0; i < row.length; i++) { @@ -54,8 +55,8 @@ export class TwokingsRules extends CoregalRules { return squares; } - static GenRandInitFen(randomness) { - if (randomness == 0) + static GenRandInitFen(options) { + if (options.randomness == 0) return "rnqkkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNQKKBNR w 0 adehadeh -"; const replaceBishop = (fen, first, ch1, ch2) => { @@ -83,11 +84,11 @@ export class TwokingsRules extends CoregalRules { }; const fen = - CoregalRules.GenRandInitFen(randomness) + CoregalRules.GenRandInitFen(options) .replace("q", "k").replace("Q", "K"); // Now replace a bishop by the queen, // so that bishops are of different colors: - if (randomness == 1) return sameIndexReplace(fen); + if (options.randomness == 1) return sameIndexReplace(fen); const wOdd = fen.indexOf('B') % 2; const bOdd = fen.indexOf('b') % 2; // Since there are 7 slashes, different oddities means symmetric @@ -101,6 +102,11 @@ export class TwokingsRules extends CoregalRules { ); } + getPotentialQueenMoves(sq) { + return this.getSlideNJumpMoves(sq, + V.steps[V.ROOK].concat(V.steps[V.BISHOP])); + } + underCheck(color) { const oppCol = V.GetOppCol(color); for (let i=0; i