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
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;
|
|
|