X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FHamilton.js;h=856725c1c0a6be9bf7ad690e03b494d62a91907c;hb=e9437f4b2ee9a40013ee514562f39a36d551faab;hp=08994e3340d49b0d5750d5b4c516d85e59a12db1;hpb=90df90bca1a993930a0e1a07a1b4990dd538c6e2;p=vchess.git diff --git a/client/src/variants/Hamilton.js b/client/src/variants/Hamilton.js index 08994e33..856725c1 100644 --- a/client/src/variants/Hamilton.js +++ b/client/src/variants/Hamilton.js @@ -2,6 +2,7 @@ import { ChessRules, Move, PiPo } from "@/base_rules"; import { randInt } from "@/utils/alea"; export class HamiltonRules extends ChessRules { + static get HasFlags() { return false; } @@ -10,12 +11,12 @@ export class HamiltonRules extends ChessRules { return false; } - static get HOLE() { - return "xx"; + get showFirstTurn() { + return true; } - hoverHighlight(x, y) { - return this.movesCount == 0; + static get HOLE() { + return "xx"; } static board2fen(b) { @@ -46,7 +47,7 @@ export class HamiltonRules extends ChessRules { for (let i = 0; i < row.length; i++) { if (['x'].concat(V.PIECES).includes(row[i].toLowerCase())) sumElts++; else { - const num = parseInt(row[i]); + const num = parseInt(row[i], 10); if (isNaN(num)) return false; sumElts += num; } @@ -64,6 +65,10 @@ export class HamiltonRules extends ChessRules { return side == this.turn; } + hoverHighlight() { + return this.movesCount == 0; + } + // Initiate the game by choosing a square for the knight: doClick(square) { if (this.movesCount > 0) return null; @@ -81,13 +86,7 @@ export class HamiltonRules extends ChessRules { return [...Array(64).keys()].map(k => { const i = k % 8; const j = (k - i) / 8; - return new Move({ - appear: [ - new PiPo({ x: i, y: j, c: 'w', p: V.KNIGHT }) - ], - vanish: [], - start: { x: -1, y: -1 } - }); + return this.doClick([i, j]); }); } for (let i=0; i<8; i++) { @@ -133,6 +132,9 @@ export class HamiltonRules extends ChessRules { for (let psq of move.appear) board[psq.x][psq.y] = psq.c + psq.p; } + postPlay() {} + postUndo() {} + getCheckSquares() { return []; } @@ -154,4 +156,5 @@ export class HamiltonRules extends ChessRules { // First game move: return "N@" + V.CoordsToSquare(move.end); } + };