UNPKG

scrabble-solver

Version:

Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Crossplay, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.

24 lines (18 loc) 791 B
import { type Config, isMultiplierBingo, isScoreBingo, type Pattern } from '@scrabble-solver/types'; import { getCellsScore } from './getCellsScore'; export const getPatternScore = (config: Config, pattern: Pattern) => { const areAllTilesUsed = pattern.getEmptyCellsCount() === config.rackSize; const baseScore = getCellsScore(config, pattern.cells); const collisionsScore = pattern .getCollisions() .reduce((sum, collision) => sum + getCellsScore(config, collision.cells), 0); if (areAllTilesUsed) { if (isScoreBingo(config.bingo)) { return baseScore + collisionsScore + config.bingo.score; } if (isMultiplierBingo(config.bingo)) { return baseScore * config.bingo.multiplier + collisionsScore; } } return baseScore + collisionsScore; };