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
/
Royalrace.js
diff --git
a/client/src/variants/Royalrace.js
b/client/src/variants/Royalrace.js
index
e3ed224
..
f5c7550
100644
(file)
--- a/
client/src/variants/Royalrace.js
+++ b/
client/src/variants/Royalrace.js
@@
-19,10
+19,21
@@
export const VariantRules = class RoyalraceRules extends ChessRules {
return { x: 11, y: 11 };
}
return { x: 11, y: 11 };
}
- static GenRandInitFen() {
+ static GenRandInitFen(randomness) {
+ if (randomness == 0)
+ return "11/11/11/11/11/11/11/11/11/qrbnp1PNBRQ/krbnp1PNBRK w 0";
+
let pieces = { w: new Array(10), b: new Array(10) };
// Shuffle pieces on first and second rank
for (let c of ["w", "b"]) {
let pieces = { w: new Array(10), b: new Array(10) };
// Shuffle pieces on first and second rank
for (let c of ["w", "b"]) {
+ if (c == 'b' && randomness == 1) {
+ pieces['b'] = JSON.parse(JSON.stringify(pieces['w'])).reverse();
+ pieces['b'] =
+ pieces['b'].splice(5,10).reverse().concat(
+ pieces['b'].splice(0,5).reverse());
+ break;
+ }
+
// Reserve 4 and 5 which are pawns positions
let positions = ArrayFun.range(10).filter(i => i != 4 && i != 5);
// Reserve 4 and 5 which are pawns positions
let positions = ArrayFun.range(10).filter(i => i != 4 && i != 5);
@@
-82,13
+93,13
@@
export const VariantRules = class RoyalraceRules extends ChessRules {
const blackFen = pieces["b"].join("");
return (
"11/11/11/11/11/11/11/11/11/" +
const blackFen = pieces["b"].join("");
return (
"11/11/11/11/11/11/11/11/11/" +
-
white
Fen.substr(5).split("").reverse().join("") +
+
black
Fen.substr(5).split("").reverse().join("") +
"1" +
"1" +
-
black
Fen.substr(5).split("").join("") +
+
white
Fen.substr(5).split("").join("") +
"/" +
"/" +
-
white
Fen.substr(0,5) +
+
black
Fen.substr(0,5) +
"1" +
"1" +
-
black
Fen.substr(0,5).split("").reverse().join("") +
+
white
Fen.substr(0,5).split("").reverse().join("") +
" w 0"
);
}
" w 0"
);
}
@@
-178,7
+189,9
@@
export const VariantRules = class RoyalraceRules extends ChessRules {
if (this.kingPos[color][0] == 0)
// The opposing edge is reached!
return color == "w" ? "1-0" : "0-1";
if (this.kingPos[color][0] == 0)
// The opposing edge is reached!
return color == "w" ? "1-0" : "0-1";
- return "*";
+ if (this.atLeastOneMove()) return "*";
+ // Stalemate (will probably never happen)
+ return "1/2";
}
static get SEARCH_DEPTH() {
}
static get SEARCH_DEPTH() {