xchess
Version:
Chess Engine
60 lines (45 loc) • 772 B
JavaScript
import {Piece} from './piece.js'
export class Wall extends Piece {
static get code(){
return 6;
}
static get char(){
return 'W';
}
static get signs(){
return ['🚧', '⛔'];
}
isCapturable(color, board){
return false;
}
}
export class Token extends Piece {
static get code(){
return 7;
}
static get char(){
return 'T';
}
static get signs(){
return ['💎', '🍎'];
}
}
export class Gate extends Piece {
static get code(){
return 8;
}
static get char(){
return 'G';
}
static get signs(){
return ['🎯', '🌀'];
}
isCapturable(color, board){
if(this.color.eq(color))
return false;
for(const piece of board.values())
if(Token.is(piece) && piece.color.opposite(color))
return false;
return true;
}
}