projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update TODO
[vchess.git]
/
client
/
src
/
variants
/
Capture.js
diff --git
a/client/src/variants/Capture.js
b/client/src/variants/Capture.js
index
a43f167
..
19ce734
100644
(file)
--- a/
client/src/variants/Capture.js
+++ b/
client/src/variants/Capture.js
@@
-1,14
+1,12
@@
import { ChessRules } from "@/base_rules";
import { ChessRules } from "@/base_rules";
-import { ArrayFun } from "@/utils/array";
-import { randInt } from "@/utils/alea";
-export c
onst VariantRules = class Losers
Rules extends ChessRules {
+export c
lass Capture
Rules extends ChessRules {
// Trim all non-capturing moves
static KeepCaptures(moves) {
// Trim all non-capturing moves
static KeepCaptures(moves) {
- return moves.filter(m => m.vanish.length == 2);
+ return moves.filter(m => m.vanish.length == 2
&& m.appear.length == 1
);
}
}
-
// Stop at the first capture found (if any)
+ // Stop at the first capture found (if any)
atLeastOneCapture() {
const color = this.turn;
const oppCol = V.GetOppCol(color);
atLeastOneCapture() {
const color = this.turn;
const oppCol = V.GetOppCol(color);
@@
-17,8
+15,8
@@
export const VariantRules = class LosersRules extends ChessRules {
if (
this.board[i][j] != V.EMPTY &&
this.getColor(i, j) != oppCol &&
if (
this.board[i][j] != V.EMPTY &&
this.getColor(i, j) != oppCol &&
- this.
getPotentialMovesFrom([i, j]
).some(m =>
- // Warning: d
u
scard castle moves
+ this.
filterValid(this.getPotentialMovesFrom([i, j])
).some(m =>
+ // Warning: d
i
scard castle moves
m.vanish.length == 2 && m.appear.length == 1)
) {
return true;
m.vanish.length == 2 && m.appear.length == 1)
) {
return true;
@@
-38,11
+36,8
@@
export const VariantRules = class LosersRules extends ChessRules {
getAllValidMoves() {
const moves = super.getAllValidMoves();
getAllValidMoves() {
const moves = super.getAllValidMoves();
- if (moves.some(m => m.vanish.length == 2)) return V.KeepCaptures(moves);
+ if (moves.some(m => m.vanish.length == 2 && m.appear.length == 1))
+ return V.KeepCaptures(moves);
return moves;
}
return moves;
}
-
- static get SEARCH_DEPTH() {
- return 4;
- }
};
};