Will be used for variants with custom non-rectangular board (Hex, at least)
Or, with other board shapes (see greenchess.net for example)
-debug import game + load
-
-TODEBUG: Avalanche computer play from here
-game.fen = "r2q1bnr/3pp3/n3k1p1/6Pp/3p1B1P/p5R1/1p6/4K1NR w 26 ihii 0";
-game.fenStart = "r2q1bnr/3pp3/n3k1p1/6Pp/3p1B1P/p5R1/1p6/4K1NR w 26 ihii 0";
-game.mycolor = 'w';
-Bd6,b1 then black promotes and win, but UI freezes.
-
Merge Orda + Empire + Hoppelpoppel + Newzealand getSlideNJumpMoves() into base_rules.js
=> allow to simplify getPawnMoves in RoyalRace (and some getXMoves in Shatranj)
vanish: [
new PiPo({ x: rank, y: file, c: color, p: V.PAWN })
],
- start: { x: 8, y: y },
+ start: { x: 8 + (color == 'b' ? 1 : 0), y: y },
end: { x: rank, y: file }
});
}
const trySetVname = setInterval(
() => {
// this.st.variants might be uninitialized (variant == null)
- variant = this.st.variants.find(v => v.id == game.vid);
+ variant = this.st.variants.find(v => {
+ return v.id == game.vid || v.name == game.vname
+ });
if (!!variant) {
clearInterval(trySetVname);
game.vname = variant.name;
}
for (const select of this.newchallenge.V.Options.select || []) {
const elt = document.getElementById(select.variable + "_opt");
- chall.options[select.variable] = parseInt(elt.value, 10) || elt.value;
+ const tryIntVal = parseInt(elt.value, 10);
+ chall.options[select.variable] =
+ (isNaN(tryIntVal) ? elt.value : tryIntVal);
}
error = checkChallenge(chall);
if (error) {