UNPKG

@logic-pad/core

Version:
47 lines (46 loc) 1.31 kB
import GridData from '../grid.js'; import { MajorRule, State } from '../primitives.js'; import Rule from './rule.js'; export default class CompletePatternRule extends Rule { title = 'Complete The Pattern'; get configExplanation() { return 'Complete the grid by pattern recognition. Your provided solution may override auto-validation.'; } static EXAMPLE_GRID = Object.freeze(GridData.create(['wbwbw', 'bwbwb', 'wbwbw', 'bwbwb'])); static SEARCH_VARIANTS = [ new CompletePatternRule().searchVariant(), ]; /** * **Complete the pattern** * * This rule validates answers based on the provided solution. */ constructor() { super(); } get id() { return MajorRule.CompletePattern; } get explanation() { return `Complete the pattern`; } createExampleGrid() { return CompletePatternRule.EXAMPLE_GRID; } get searchVariants() { return CompletePatternRule.SEARCH_VARIANTS; } validateGrid(_grid) { return { state: State.Incomplete }; } copyWith(_) { return new CompletePatternRule(); } get validateWithSolution() { return true; } get isSingleton() { return true; } } export const instance = new CompletePatternRule();