X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FExtinction.js;h=49d61b2dbc0aa4beaf909122818c4d175f3e2260;hb=2d7194bd9c976f444e43e5dc0a725823b6472eb9;hp=2b0aecaa09b51794c8c89859c5d6fb078a74206e;hpb=1a788978e3682ab54b77af3edfe38e0b371edbc4;p=vchess.git diff --git a/public/javascripts/variants/Extinction.js b/public/javascripts/variants/Extinction.js index 2b0aecaa..49d61b2d 100644 --- a/public/javascripts/variants/Extinction.js +++ b/public/javascripts/variants/Extinction.js @@ -1,27 +1,30 @@ class ExtinctionRules extends ChessRules { - initVariables(fen) + setOtherVariables(fen) { - super.initVariables(fen); + super.setOtherVariables(fen); + const pos = V.ParseFen(fen).position; + // NOTE: no need for safety "|| []", because each piece type must be present + // (otherwise game is already over!) this.material = { "w": { - [V.KING]: 1, - [V.QUEEN]: 1, - [V.ROOK]: 2, - [V.KNIGHT]: 2, - [V.BISHOP]: 2, - [V.PAWN]: 8 + [V.KING]: pos.match(/K/g).length, + [V.QUEEN]: pos.match(/Q/g).length, + [V.ROOK]: pos.match(/R/g).length, + [V.KNIGHT]: pos.match(/N/g).length, + [V.BISHOP]: pos.match(/B/g).length, + [V.PAWN]: pos.match(/P/g).length }, "b": { - [V.KING]: 1, - [V.QUEEN]: 1, - [V.ROOK]: 2, - [V.KNIGHT]: 2, - [V.BISHOP]: 2, - [V.PAWN]: 8 + [V.KING]: pos.match(/k/g).length, + [V.QUEEN]: pos.match(/q/g).length, + [V.ROOK]: pos.match(/r/g).length, + [V.KNIGHT]: pos.match(/n/g).length, + [V.BISHOP]: pos.match(/b/g).length, + [V.PAWN]: pos.match(/p/g).length } }; } @@ -117,7 +120,7 @@ class ExtinctionRules extends ChessRules checkGameEnd() { - return this.turn == "w" ? "0-1" : "1-0"; + return (this.turn == "w" ? "0-1" : "1-0"); } evalPosition()