p.
A new piece appears, starting in front of the pawns.
It moves like an Amazon: Queen + Knight, but doesn't capture.
- Instead, it can swap its position with any piece.
+ Instead, it can swap its position with any piece except the king.
figure.diagram-container
.diagram
p.
Aparece una nueva pieza, comenzando por delante de los peones.
Se mueve como una Amazona: Dama + Caballo, pero no captura.
- En cambio, puede cambiar su posición con cualquier pieza.
+ En cambio, puede cambiar su posición con cualquier pieza excepto el rey.
figure.diagram-container
.diagram
p.
Une nouvelle pièce fait son apparition, démarrant devant les pions.
Elle se déplace comme une Amazone : Dame + Cavalier, mais ne capture pas.
- Au lieu de ça, elle peut échanger sa position avec n'importe quelle pièce.
+ Au lieu de ça, elle peut échanger sa position avec n'importe quelle pièce
+ sauf le roi.
figure.diagram-container
.diagram
// Following test is OK because only one Joker on board at a time
if (this.board[i][j] != V.EMPTY && this.getColor(i, j) == c) {
const p = this.getPiece(i, j);
- swapping.push(
- new Move({
- vanish: [
- new PiPo({ x: x, y: y, c: c, p: V.JOKER }),
- new PiPo({ x: i, y: j, c: c, p: p })
- ],
- appear: [
- new PiPo({ x: i, y: j, c: c, p: V.JOKER }),
- new PiPo({ x: x, y: y, c: c, p: p })
- ]
- })
- );
+ const lastRank = (c == 'w' ? 0 : 7);
+ if (p != V.KING && (p != V.PAWN || x != lastRank)) {
+ swapping.push(
+ new Move({
+ vanish: [
+ new PiPo({ x: x, y: y, c: c, p: V.JOKER }),
+ new PiPo({ x: i, y: j, c: c, p: p })
+ ],
+ appear: [
+ new PiPo({ x: i, y: j, c: c, p: V.JOKER }),
+ new PiPo({ x: x, y: y, c: c, p: p })
+ ]
+ })
+ );
+ }
}
}
}