projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some fixes, work on Eightpieces draft, add a few capturing variants
[vchess.git]
/
client
/
src
/
variants
/
Alice.js
diff --git
a/client/src/variants/Alice.js
b/client/src/variants/Alice.js
index
aa95692
..
4d6b3c3
100644
(file)
--- a/
client/src/variants/Alice.js
+++ b/
client/src/variants/Alice.js
@@
-107,8
+107,7
@@
export const VariantRules = class AliceRules extends ChessRules {
// Finally filter impossible moves
const res = moves.filter(m => {
if (m.appear.length == 2) {
// Finally filter impossible moves
const res = moves.filter(m => {
if (m.appear.length == 2) {
- //castle
- // appear[i] must be an empty square on the other board
+ // Castle: appear[i] must be an empty square on the other board
for (let psq of m.appear) {
if (this.getSquareOccupation(psq.x, psq.y, 3 - mirrorSide) != V.EMPTY)
return false;
for (let psq of m.appear) {
if (this.getSquareOccupation(psq.x, psq.y, 3 - mirrorSide) != V.EMPTY)
return false;
@@
-126,11
+125,12
@@
export const VariantRules = class AliceRules extends ChessRules {
// If the move is computed on board1, m.appear change for Alice pieces.
if (mirrorSide == 1) {
m.appear.forEach(psq => {
// 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
+ //
forEach: castling taken into account
psq.p = V.ALICE_CODES[psq.p]; //goto board2
});
psq.p = V.ALICE_CODES[psq.p]; //goto board2
});
- }
//move on board2: mark vanishing pieces as Alice
+ }
else {
else {
+ // Move on board2: mark vanishing pieces as Alice
m.vanish.forEach(psq => {
psq.p = V.ALICE_CODES[psq.p];
});
m.vanish.forEach(psq => {
psq.p = V.ALICE_CODES[psq.p];
});
@@
-295,6
+295,10
@@
export const VariantRules = class AliceRules extends ChessRules {
);
}
);
}
+ static get SEARCH_DEPTH() {
+ return 2;
+ }
+
getNotation(move) {
if (move.appear.length == 2 && move.appear[0].p == V.KING) {
if (move.end.y < move.start.y) return "0-0-0";
getNotation(move) {
if (move.appear.length == 2 && move.appear[0].p == V.KING) {
if (move.end.y < move.start.y) return "0-0-0";