@scrabble-solver/solver
Version:
Scrabble Solver 2 - Solver
27 lines (26 loc) • 1.45 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const areDigraphsValid_1 = __importDefault(require("./areDigraphsValid"));
const fillPattern_1 = __importDefault(require("./fillPattern"));
const generatePatterns_1 = __importDefault(require("./generatePatterns"));
const getPatternScore_1 = __importDefault(require("./getPatternScore"));
const getUniquePatterns_1 = __importDefault(require("./getUniquePatterns"));
const solve = (trie, config, board, tiles) => {
const patterns = (0, generatePatterns_1.default)(config, board);
const filledPatterns = patterns.flatMap((pattern) => (0, fillPattern_1.default)(trie, config, pattern, tiles));
const validPatterns = config.twoCharacterTiles.length > 0
? filledPatterns.filter((pattern) => (0, areDigraphsValid_1.default)(config, pattern))
: filledPatterns;
const uniquePatterns = (0, getUniquePatterns_1.default)(validPatterns);
const results = uniquePatterns.map((pattern, index) => ({
cells: pattern.cells.map((cell) => cell.toJson()),
collisions: pattern.getCollisions().map((collision) => collision.cells.map((cell) => cell.toJson())),
id: index,
points: (0, getPatternScore_1.default)(config, pattern),
}));
return results;
};
exports.default = solve;