X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FExtinction.js;h=e42e2941d522d0c23c1c8f09a7b136501853f95b;hb=HEAD;hp=e25713782f679ef0773f794a47c8f7071206410a;hpb=32f6285ee325a14286562a53baefc647201df2af;p=vchess.git diff --git a/client/src/variants/Extinction.js b/client/src/variants/Extinction.js index e2571378..e42e2941 100644 --- a/client/src/variants/Extinction.js +++ b/client/src/variants/Extinction.js @@ -1,6 +1,7 @@ import { ChessRules } from "@/base_rules"; export class ExtinctionRules extends ChessRules { + static get PawnSpecs() { return Object.assign( {}, @@ -10,26 +11,24 @@ export class ExtinctionRules extends ChessRules { } static IsGoodPosition(position) { - if (!ChessRules.IsGoodPosition(position)) - return false; + if (!ChessRules.IsGoodPosition(position)) return false; // Also check that each piece type is present const rows = position.split("/"); let pieces = {}; for (let row of rows) { for (let i = 0; i < row.length; i++) { - if (isNaN(parseInt(row[i])) && !pieces[row[i]]) + if (isNaN(parseInt(row[i], 10)) && !pieces[row[i]]) pieces[row[i]] = true; } } - if (Object.keys(pieces).length != 12) - return false; + if (Object.keys(pieces).length != 12) return false; return true; } setOtherVariables(fen) { super.setOtherVariables(fen); const pos = V.ParseFen(fen).position; - // NOTE: no need for safety "|| []", because each piece type must be present + // NOTE: no need for safety "|| []", because each piece type is present // (otherwise game is already over!) this.material = { w: { @@ -99,7 +98,6 @@ export class ExtinctionRules extends ChessRules { } return "*"; } - return this.turn == "w" ? "0-1" : "1-0"; //NOTE: currently unreachable... } @@ -110,9 +108,11 @@ export class ExtinctionRules extends ChessRules { return this.material[color][p] == 0; }) ) { - // Very negative (resp. positive) if white (reps. black) pieces set is incomplete + // Very negative (resp. positive) + // if white (reps. black) pieces set is incomplete return (color == "w" ? -1 : 1) * V.INFINITY; } return super.evalPosition(); } + };