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.
42 lines
936 B
42 lines
936 B
const validate = function(value, level) {
|
|
return ((value || -1) % (level + 2) === 0);
|
|
};
|
|
|
|
const ValuesCtrl = {
|
|
// Anagrams, multiples, equality
|
|
generate(n, level) {
|
|
const values = [];
|
|
let v;
|
|
|
|
for (let i = 0; i < n; i++) {
|
|
v = Math.ceil(Math.random() * 1000);
|
|
values.push({
|
|
value: v,
|
|
show: true,
|
|
valid: validate(v, level)
|
|
});
|
|
};
|
|
|
|
return values;
|
|
},
|
|
|
|
getTitle(level) {
|
|
return `Multiples of ${level + 2}`;
|
|
},
|
|
|
|
getError(value, level) {
|
|
return `Oops! ${value} is not a multiple of ${level + 2}.`;
|
|
},
|
|
|
|
checkComplete(values, level) {
|
|
for (let i = 0; i < values.length; i++) {
|
|
if (values[i].valid === true && values[i].show === true) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
};
|
|
|
|
export default ValuesCtrl;
|
|
|