From: Benjamin Auder Date: Fri, 23 Nov 2018 16:55:11 +0000 (+0100) Subject: Further fix in Alice chess; still some issues X-Git-Url: https://git.auder.net/doc/html/%7B%7B%20path%28%27mixstore_user_admin_delete%27%2C%20%7B%20id:%20user.id%20%7D%29%20%7D%7D?a=commitdiff_plain;h=9de73b71a1db5464f89a202e6cdfdc7b6b6b0753;p=vchess.git Further fix in Alice chess; still some issues --- diff --git a/public/javascripts/base_rules.js b/public/javascripts/base_rules.js index 346eff0d..c24c84c6 100644 --- a/public/javascripts/base_rules.js +++ b/public/javascripts/base_rules.js @@ -503,25 +503,25 @@ class ChessRules // No: if happen on last 1/2 move, could lead to forbidden moves, wrong evals return this.filterValid(potentialMoves); } - + // Stop at the first move found atLeastOneMove() { const color = this.turn; const oppCol = this.getOppCol(color); let [sizeX,sizeY] = VariantRules.size; - for (var i=0; i 0) { - for (let i=0; i 0) + if (this.filterValid([moves[k]]).length > 0) return true; } } @@ -824,7 +824,7 @@ class ChessRules for (let j=1; j { return [this.getNotation(m), m.eval]; })); +// console.log(moves1.map(m => { return [this.getNotation(m), m.eval]; })); return moves1[_.sample(candidates, 1)]; } diff --git a/public/javascripts/components/game.js b/public/javascripts/components/game.js index c7e9ff18..a7acc10d 100644 --- a/public/javascripts/components/game.js +++ b/public/javascripts/components/game.js @@ -574,7 +574,8 @@ Vue.component('my-game', { this.newGame("computer"); }, newGame: function(mode, fenInit, color, oppId, moves, continuation) { - //const fen = "3b1l2/ppp1p1pp/4o1r1/4N3/8/8/PPPPPPPP/RN1BBKQR 1111";//"rqbbnnkr/pppppppp/8/8/8/8/PPPPPPPP/RNNBBKQR 1111";//fenInit || VariantRules.GenRandInitFen(); + //const fen = "bbrkqnrn/pppppppp/8/8/8/8/PPPPPPPP/NNRKQBBR 1111"; + //const fen = "bbrkqnr1/pppppp1p/6o1/6s1/3SS3/8/PPP2PPP/NNRKQBBR 1111"; //first 2 moves == pb const fen = fenInit || VariantRules.GenRandInitFen(); console.log(fen); //DEBUG this.score = "*"; @@ -635,6 +636,7 @@ Vue.component('my-game', { } else //against computer { + //this.mycolor = "w"; this.mycolor = Math.random() < 0.5 ? 'w' : 'b'; if (this.mycolor == 'b') setTimeout(this.playComputerMove, 500); diff --git a/public/javascripts/variants/Alice.js b/public/javascripts/variants/Alice.js index d457f5f5..3d79580f 100644 --- a/public/javascripts/variants/Alice.js +++ b/public/javascripts/variants/Alice.js @@ -132,6 +132,9 @@ class AliceRules extends ChessRules psq.p = VariantRules.ALICE_CODES[psq.p]; }); } + // Fix en-passant captures + if (m.vanish.length == 2 && this.board[m.end.x][m.end.y] == VariantRules.EMPTY) + m.vanish[1].c = this.getOppCol(this.getColor(x,y)); return true; }); } @@ -225,4 +228,21 @@ class AliceRules extends ChessRules this.board = saveBoard; return res; } + + static get VALUES() { + return { + 'p': 1, + 's': 1, + 'r': 5, + 'u': 5, + 'n': 3, + 'o': 3, + 'b': 3, + 'c': 3, + 'q': 9, + 't': 9, + 'k': 1000, + 'l': 1000 + }; + } }