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.
 
 

37 lines
947 B

import BaseModel from './base.model';
const MultiplesModel = Object.create(BaseModel);
MultiplesModel.generate = function(n, level) {
const multiples = [];
const nonmultiples = [];
const target = 19//level + 2;
const upperLimit = target * 150;
let tmp;
while (multiples.length < Math.ceil(n * 4)) {
tmp = Math.ceil(Math.random() * upperLimit);
if (tmp % target === 0) {
multiples.push(tmp);
}
}
while (nonmultiples.length < Math.floor(n * 4)) {
tmp = Math.ceil(Math.random() * upperLimit);
if (tmp % target !== 0) {
nonmultiples.push(tmp);
}
}
return this.buildResults(multiples, nonmultiples, n);
};
MultiplesModel.getTitle = (level) => {
return `Multiples of ${level + 2}`;
};
MultiplesModel.getError = (value, level) => {
return `Oops! ${value} is not a multiple of ${level + 2}.`;
};
export default MultiplesModel;