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
e7daf7f
..
4d6b3c3
100644
(file)
--- a/
client/src/variants/Alice.js
+++ b/
client/src/variants/Alice.js
@@
-25,14
+25,14
@@
export const VariantRules = class AliceRules extends ChessRules {
};
}
};
}
- static getPpath(b) {
- return (Object.keys(this.ALICE_PIECES).includes(b[1]) ? "Alice/" : "") + b;
- }
-
static get PIECES() {
return ChessRules.PIECES.concat(Object.keys(V.ALICE_PIECES));
}
static get PIECES() {
return ChessRules.PIECES.concat(Object.keys(V.ALICE_PIECES));
}
+ getPpath(b) {
+ return (Object.keys(V.ALICE_PIECES).includes(b[1]) ? "Alice/" : "") + b;
+ }
+
setOtherVariables(fen) {
super.setOtherVariables(fen);
const rows = V.ParseFen(fen).position.split("/");
setOtherVariables(fen) {
super.setOtherVariables(fen);
const rows = V.ParseFen(fen).position.split("/");
@@
-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];
});
@@
-282,14
+282,21
@@
export const VariantRules = class AliceRules extends ChessRules {
}
static get VALUES() {
}
static get VALUES() {
- return Object.assign(ChessRules.VALUES, {
- s: 1,
- u: 5,
- o: 3,
- c: 3,
- t: 9,
- l: 1000
- });
+ return Object.assign(
+ {
+ s: 1,
+ u: 5,
+ o: 3,
+ c: 3,
+ t: 9,
+ l: 1000
+ },
+ ChessRules.VALUES
+ );
+ }
+
+ static get SEARCH_DEPTH() {
+ return 2;
}
getNotation(move) {
}
getNotation(move) {