@logic-pad/core
Version:
47 lines (46 loc) • 1.31 kB
JavaScript
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();