hex-game
Version:
Hex Game utilities
38 lines • 1.86 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.stone = exports.hexGame = void 0;
var board_1 = require("./board");
var stone_1 = require("./stone");
function hexGame(boardSize, moves) {
if (moves === void 0) { moves = []; }
var board = new board_1.Board(boardSize, moves);
return {
board: board,
stone: function (position) { return new stone_1.Stone(position, board); },
playerToMove: function () { return board.playerToMove; },
getChain: function (position) { return board.getChain(new stone_1.Stone(position, board)); },
isFreePosition: function (position) { return board.isFreePosition(new stone_1.Stone(position, board)); },
isValidPosition: function (position) { return new stone_1.Stone(position, board).isValid; },
isWinningPosition: function (position) { return board.isWinningPosition(new stone_1.Stone(position, board)); },
getGroups: function () { return board.getGroups(board.getTemplates()); },
getTemplates: function () { return board.getTemplates(); },
rate: function () { return board.rate(); }
};
}
exports.hexGame = hexGame;
function stone(position) {
return new stone_1.Stone(position, null);
}
exports.stone = stone;
__exportStar(require("./types"), exports);
//# sourceMappingURL=index.js.map