X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fbase_rules.js;h=e6fd6d73908e3e3250eaa6674e2ec2e6b31383b2;hb=e71161fbfffe53b0f4b174e0467cdd98cc70b7b0;hp=ef07742cf6ebbc3588c8b75684bd96ae07db4752;hpb=c322a84434326dff1291a57e82dbd995817a5423;p=vchess.git diff --git a/client/src/base_rules.js b/client/src/base_rules.js index ef07742c..e6fd6d73 100644 --- a/client/src/base_rules.js +++ b/client/src/base_rules.js @@ -195,17 +195,19 @@ export const ChessRules = class ChessRules { } // Argument is a move: const move = moveOrSquare; - const [sx, sy, ex] = [move.start.x, move.start.y, move.end.x]; + const s = move.start, + e = move.end; // NOTE: next conditions are first for Atomic, and last for Checkered if ( move.appear.length > 0 && - Math.abs(sx - ex) == 2 && + Math.abs(s.x - e.x) == 2 && + s.y == e.y && move.appear[0].p == V.PAWN && ["w", "b"].includes(move.appear[0].c) ) { return { - x: (sx + ex) / 2, - y: sy + x: (s.x + e.x) / 2, + y: s.y }; } return undefined; //default @@ -595,6 +597,7 @@ export const ChessRules = class ChessRules { }) ); } + return mv; } @@ -1123,7 +1126,7 @@ export const ChessRules = class ChessRules { let moves1 = this.getAllValidMoves("computer"); if (moves1.length == 0) - //TODO: this situation should not happen + // TODO: this situation should not happen return null; // Can I mate in 1 ? (for Magnetic & Extinction) @@ -1210,7 +1213,7 @@ export const ChessRules = class ChessRules { return (color == "w" ? 1 : -1) * (b.eval - a.eval); }); } else return currentBest; - console.log(moves1.map(m => { return [this.getNotation(m), m.eval]; })); +// console.log(moves1.map(m => { return [this.getNotation(m), m.eval]; })); candidates = [0]; for (let j = 1; j < moves1.length && moves1[j].eval == moves1[0].eval; j++) @@ -1235,8 +1238,9 @@ export const ChessRules = class ChessRules { alpha = Math.max(alpha, v); if (alpha >= beta) break; //beta cutoff } - } //color=="b" + } else { + // color=="b" for (let i = 0; i < moves.length; i++) { this.play(moves[i]); v = Math.min(v, this.alphabeta(depth - 1, alpha, beta)); @@ -1255,18 +1259,6 @@ export const ChessRules = class ChessRules { for (let j = 0; j < V.size.y; j++) { if (this.board[i][j] != V.EMPTY) { const sign = this.getColor(i, j) == "w" ? 1 : -1; - - -//TODO: debug in KnightRelay -if (isNaN(V.VALUES[this.getPiece(i, j)])) { - console.log(i + " " + j); - console.log(this.getPiece(i, j)); - console.log(this.board); - console.log("ajout " + sign + " * "+ V.VALUES[this.getPiece(i, j)]); - debugger; -} - - evaluation += sign * V.VALUES[this.getPiece(i, j)]; } }