From f6cc7faf4301dc4a7ae5bb07f16403f280beddc3 Mon Sep 17 00:00:00 2001 From: Benjamin Auder Date: Fri, 23 Nov 2018 13:09:51 +0100 Subject: [PATCH] Fix magnetic promotions, attempt to fix Alice chess --- public/javascripts/components/game.js | 2 +- public/javascripts/variants/Alice.js | 13 ++++++++----- public/javascripts/variants/Magnetic.js | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/public/javascripts/components/game.js b/public/javascripts/components/game.js index e3cc6af0..ca8a6bff 100644 --- a/public/javascripts/components/game.js +++ b/public/javascripts/components/game.js @@ -574,7 +574,7 @@ Vue.component('my-game', { this.newGame("computer"); }, newGame: function(mode, fenInit, color, oppId, moves, continuation) { - const fen = fenInit || VariantRules.GenRandInitFen(); + const fen = "pppppppp/rnbqkbnr/8/8/8/8/PPPPPPPP/ROBQKBOR 1111"; //fenInit || VariantRules.GenRandInitFen(); console.log(fen); //DEBUG this.score = "*"; if (mode=="human" && !oppId) diff --git a/public/javascripts/variants/Alice.js b/public/javascripts/variants/Alice.js index 3cba8d02..1e1ce46d 100644 --- a/public/javascripts/variants/Alice.js +++ b/public/javascripts/variants/Alice.js @@ -76,12 +76,15 @@ class AliceRules extends ChessRules return false; } } - m.appear.forEach(psq => { - if (Object.keys(VariantRules.ALICE_CODES).includes(psq.p)) + // If the move is computed on board1, m.appear change for Alice pieces. + if (mirrorSide==1) + { + m.appear.forEach(psq => { //forEach: castling taken into account psq.p = VariantRules.ALICE_CODES[psq.p]; //goto board2 - else - psq.p = VariantRules.ALICE_PIECES[psq.p]; //goto board1 - }); + }); + } + else //move on board2: mark vanishing piece as Alice + m.vanish[0].p = VariantRules.ALICE_CODES[m.vanish[0].p] return true; }); } diff --git a/public/javascripts/variants/Magnetic.js b/public/javascripts/variants/Magnetic.js index 7fecf780..d1436c0f 100644 --- a/public/javascripts/variants/Magnetic.js +++ b/public/javascripts/variants/Magnetic.js @@ -112,7 +112,7 @@ class MagneticRules extends ChessRules // Scan move for pawn (max 1) on 8th rank for (let i=1; i