X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FExtinction.js;h=8896292acd26bfd31f42e92df2460481824f57b5;hp=75db0e1120b763975f9f0b7a5f131e6324d0a31d;hb=d7c00f6a7d6ad573df2a27965bf763b3bb1d0c18;hpb=b3ef5759ad2cf1dcc1e48813bcfc9e1a67b92c7a diff --git a/client/src/variants/Extinction.js b/client/src/variants/Extinction.js index 75db0e11..8896292a 100644 --- a/client/src/variants/Extinction.js +++ b/client/src/variants/Extinction.js @@ -1,6 +1,23 @@ import { ChessRules } from "@/base_rules"; export const VariantRules = class ExtinctionRules extends ChessRules { + static IsGoodPosition(position) { + 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]]) + pieces[row[i]] = true; + } + } + if (Object.keys(pieces).length != 12) + return false; + return true; + } + setOtherVariables(fen) { super.setOtherVariables(fen); const pos = V.ParseFen(fen).position;