X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fbase_rules.js;h=350e0de642f59a78536af55c3fab92a3278f0853;hp=295b4cd373aec3e7079350fc2beb6c1ba0f8158f;hb=d7c00f6a7d6ad573df2a27965bf763b3bb1d0c18;hpb=b3ef5759ad2cf1dcc1e48813bcfc9e1a67b92c7a diff --git a/client/src/base_rules.js b/client/src/base_rules.js index 295b4cd3..350e0de6 100644 --- a/client/src/base_rules.js +++ b/client/src/base_rules.js @@ -96,9 +96,12 @@ export const ChessRules = class ChessRules { if (position.length == 0) return false; const rows = position.split("/"); if (rows.length != V.size.x) return false; + let kings = {}; for (let row of rows) { let sumElts = 0; for (let i = 0; i < row.length; i++) { + if (['K','k'].includes(row[i])) + kings[row[i]] = true; if (V.PIECES.includes(row[i].toLowerCase())) sumElts++; else { const num = parseInt(row[i]); @@ -108,6 +111,9 @@ export const ChessRules = class ChessRules { } if (sumElts != V.size.y) return false; } + // Both kings should be on board: + if (Object.keys(kings).length != 2) + return false; return true; }