You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

41 lines
1.1 KiB

import BaseModel from './base.model';
const SubtractionModel = Object.create(BaseModel);
SubtractionModel.generate = function(n, level) {
const equals = [];
const notequals = [];
const target = level + 2;
const upperLimit = target * 10;
let g1, g2, b1, b2, b3;
for (let i = target + 1; i < upperLimit; i++) {
g1 = i;
g2 = i - target;
b1 = i + Math.ceil(Math.random() * 3);
b2 = Math.max(1, i - Math.ceil(Math.random() * 3));
b3 = i - target;
// console.log(`(${i}) ${g1} - ${g2} = ${g1 - g2}`);
// console.error(`(${i}) ${b1} - ${b3} = ${b1 - b3}`);
// console.error(`(${i}) ${b2} - ${b3} = ${b2 - b3}`);
equals.push(`${g1}-${g2}`);
notequals.push(`${b1}-${b3}`);
notequals.push(`${b2}-${b3}`);
}
return this.buildResults(equals, notequals, n);
};
SubtractionModel.getTitle = (level) => {
return `Equals ${level + 2}`;
};
SubtractionModel.getError = (value, level) => {
return `Oops! ${value} does not equal ${level + 2}.`;
};
export default SubtractionModel;