X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FYote.js;h=76d7c2e9aa510f89116416e49a9c690ecd5515fd;hb=cdab566355412821c9187078ee0864ceb30545de;hp=0b9678613623990eeef03d1e0f17b4f1e8b06c0b;hpb=c11afcdfa8678a27ea6c0822f6d3fef83967701b;p=vchess.git diff --git a/client/src/variants/Yote.js b/client/src/variants/Yote.js index 0b967861..76d7c2e9 100644 --- a/client/src/variants/Yote.js +++ b/client/src/variants/Yote.js @@ -23,6 +23,25 @@ export class YoteRules extends ChessRules { return true; } + static IsGoodPosition(position) { + if (position.length == 0) return false; + const rows = position.split("/"); + if (rows.length != V.size.x) return false; + for (let row of rows) { + let sumElts = 0; + for (let i = 0; i < row.length; i++) { + if (row[i].toLowerCase() == V.PAWN) sumElts++; + else { + const num = parseInt(row[i], 10); + if (isNaN(num) || num <= 0) return false; + sumElts += num; + } + } + if (sumElts != V.size.y) return false; + } + return true; + } + static IsGoodFen(fen) { if (!ChessRules.IsGoodFen(fen)) return false; const fenParsed = V.ParseFen(fen); @@ -120,10 +139,6 @@ export class YoteRules extends ChessRules { return { x: 5, y: 6 }; } - static get PIECES() { - return [V.PAWN]; - } - getColor(i, j) { if (i >= V.size.x) return i == V.size.x ? "w" : "b"; return this.board[i][j].charAt(0); @@ -435,14 +450,6 @@ export class YoteRules extends ChessRules { return moves[randInt(moves.length)]; } - evalPosition() { - let evaluation = super.evalPosition(); - // Add reserves: - evaluation += this.reserve["w"][V.PAWN]; - evaluation -= this.reserve["b"][V.PAWN]; - return evaluation; - } - getNotation(move) { if (move.vanish.length == 0) // Placement: