scrabble-solver
Version:
Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.
22 lines (16 loc) • 756 B
text/typescript
import { Result } from '@scrabble-solver/types';
import { CellFilterEntry } from 'types';
export const resultMatchesCellFilter = (result: Result, cellFilter: CellFilterEntry[]) => {
const excludeFilters = cellFilter.filter((filter) => filter.type === 'exclude');
const matchesExcludeFilters = excludeFilters.every(({ x, y }) => {
return result.cells.every((cell) => cell.x !== x || cell.y !== y);
});
if (!matchesExcludeFilters) {
return false;
}
const includeFilter = cellFilter.filter((filter) => filter.type === 'include');
const matchesIncludeFilters = includeFilter.every(({ x, y }) => {
return result.cells.some((cell) => cell.x === x && cell.y === y);
});
return matchesExcludeFilters && matchesIncludeFilters;
};