projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Clean imports
[vchess.git]
/
client
/
src
/
base_rules.js
diff --git
a/client/src/base_rules.js
b/client/src/base_rules.js
index
0549139
..
5cf1d97
100644
(file)
--- a/
client/src/base_rules.js
+++ b/
client/src/base_rules.js
@@
-135,6
+135,14
@@
export const ChessRules = class ChessRules {
static get LoseOnRepetition() {
return false;
}
static get LoseOnRepetition() {
return false;
}
+ // And in some others (Iceage), repetitions should be ignored:
+ static get IgnoreRepetition() {
+ return false;
+ }
+ loseOnRepetition() {
+ // In some variants, result depends on the position:
+ return V.LoseOnRepetition;
+ }
// At some stages, some games could wait clicks only:
onlyClick() {
// At some stages, some games could wait clicks only:
onlyClick() {
@@
-442,8
+450,10
@@
export const ChessRules = class ChessRules {
// if more than 9 consecutive free spaces, break the integer,
// otherwise FEN parsing will fail.
if (count <= 9) return count;
// if more than 9 consecutive free spaces, break the integer,
// otherwise FEN parsing will fail.
if (count <= 9) return count;
- // Currently only boards of size up to 11 or 12:
- return "9" + (count - 9);
+ // Most boards of size < 18:
+ if (count <= 18) return "9" + (count - 9);
+ // Except Gomoku:
+ return "99" + (count - 18);
};
let position = "";
for (let i = 0; i < V.size.x; i++) {
};
let position = "";
for (let i = 0; i < V.size.x; i++) {
@@
-1035,6
+1045,9
@@
export const ChessRules = class ChessRules {
// Stop at the first move found
// TODO: not really, it explores all moves from a square (one is enough).
// Stop at the first move found
// TODO: not really, it explores all moves from a square (one is enough).
+ // Possible fix: add extra arg "oneMove" to getPotentialMovesFrom,
+ // and then return only boolean true at first move found
+ // (in all getPotentialXXXMoves() ... for all variants ...)
atLeastOneMove() {
const color = this.turn;
for (let i = 0; i < V.size.x; i++) {
atLeastOneMove() {
const color = this.turn;
for (let i = 0; i < V.size.x; i++) {