-import ChessRules from "/base_rules.js";
+import AbstractClickFillRules from "/variants/_ClickFill/class.js";
import PiPo from "/utils/PiPo.js";
import Move from "/utils/Move.js";
-export default class HexRules extends ChessRules {
+export default class HexRules extends AbstractClickFillRules {
static get Options() {
return {
return res;
}
- genRandInitFen() {
+ genRandInitBaseFen() {
// NOTE: size.x == size.y (square boards)
const emptyCount = C.FenEmptySquares(this.size.x);
- return (emptyCount + "/").repeat(this.size.x).slice(0, -1) + " w 0";
+ return {
+ fen: (emptyCount + "/").repeat(this.size.x - 1) + emptyCount,
+ o: {}
+ };
}
getSvgChessboard() {
return board;
}
- setupPieces() {
- for (let i=0; i<this.size.x; i++) {
- for (let j=0; j<this.size.y; j++) {
- if (this.board[i][j] != "") {
- const sqColor = (this.getColor(i, j) == 'w' ? "white" : "black");
- const elt = document.getElementById(this.coordsToId({x: i, y: j}));
- elt.classList.remove("neutral-square");
- elt.classList.add("bg-" + sqColor);
- }
- }
- }
- }
-
get size() {
const baseRatio = 1.6191907514450865; //2801.2 / 1730, "widescreen"
const rc =
- document.getElementById(this.containerid).getBoundingClientRect();
+ document.getElementById(this.containerId).getBoundingClientRect();
const rotate = rc.width < rc.height; //"vertical screen"
return {
x: this.options["bsize"],
this.turn = C.GetOppCol(this.turn);
}
- getCurrentScore(move) {
+ getCurrentScore() {
const oppCol = C.GetOppCol(this.turn);
// Search for connecting path of opp color:
let explored = {}, component;
max = z;
explored[index] = true;
component[index] = true;
- for (let [dx, dy] of super.pieces()['k'].moves[0].steps) {
+ for (let [dx, dy] of super.pieces()['k'].both[0].steps) {
const [nx, ny] = [x + dx, y + dy];
const nidx = getIndex(nx, ny);
if (
return "*";
}
- playVisual(move) {
- move.vanish.forEach(v => {
- let elt = document.getElementById(this.coordsToId({x: v.x, y: v.y}));
- elt.classList.remove("bg-" + (v.c == 'w' ? "white" : "black"));
- });
- move.appear.forEach(a => {
- let elt = document.getElementById(this.coordsToId({x: a.x, y: a.y}));
- elt.classList.add("bg-" + (a.c == 'w' ? "white" : "black"));
- });
- }
-
};