project-lvl1-s132
Version:
Brain Games
64 lines (48 loc) • 5.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _start = require('../start');
var _start2 = _interopRequireDefault(_start);
var _lib = require('../lib');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var rulesMessage = 'What number is missing in this progression?';
var progressionLength = 10;
var limitStartPosition = 100;
var limitDiff = 10;
var maskSymbol = '..';
var getProgression = function getProgression(diff) {
var startValue = (0, _lib.getRandomInt)(limitStartPosition);
var output = [startValue];
for (var i = 1; i < progressionLength; i += 1) {
output.push(output[i - 1] + diff);
}
return output;
};
var getQuestionAnswerPair = function getQuestionAnswerPair() {
// get question
var diff = (0, _lib.getRandomInt)(limitDiff);
diff = diff === 0 ? 1 : diff;
var questionResult = getProgression(diff);
var mask = (0, _lib.getRandomInt)(progressionLength);
questionResult[mask] = maskSymbol;
var question = questionResult.join(' ');
// get correctAnswer
var answerDigit = questionResult.map(function (val) {
var res = val === maskSymbol ? val : +val;
return res;
});
var index = answerDigit.indexOf(maskSymbol);
var result = void 0;
if (index === 0) {
result = answerDigit[1] - diff;
} else {
result = answerDigit[index - 1] + diff;
}
var correctAnswer = result.toString();
return { question: question, correctAnswer: correctAnswer };
};
exports.default = function () {
return (0, _start2.default)(rulesMessage, getQuestionAnswerPair);
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYW1lcy9wcm9ncmVzc2lvbi5qcyJdLCJuYW1lcyI6WyJydWxlc01lc3NhZ2UiLCJwcm9ncmVzc2lvbkxlbmd0aCIsImxpbWl0U3RhcnRQb3NpdGlvbiIsImxpbWl0RGlmZiIsIm1hc2tTeW1ib2wiLCJnZXRQcm9ncmVzc2lvbiIsImRpZmYiLCJzdGFydFZhbHVlIiwib3V0cHV0IiwiaSIsInB1c2giLCJnZXRRdWVzdGlvbkFuc3dlclBhaXIiLCJxdWVzdGlvblJlc3VsdCIsIm1hc2siLCJxdWVzdGlvbiIsImpvaW4iLCJhbnN3ZXJEaWdpdCIsIm1hcCIsInZhbCIsInJlcyIsImluZGV4IiwiaW5kZXhPZiIsInJlc3VsdCIsImNvcnJlY3RBbnN3ZXIiLCJ0b1N0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUVBLElBQU1BLGVBQWUsNkNBQXJCOztBQUVBLElBQU1DLG9CQUFvQixFQUExQjtBQUNBLElBQU1DLHFCQUFxQixHQUEzQjtBQUNBLElBQU1DLFlBQVksRUFBbEI7QUFDQSxJQUFNQyxhQUFhLElBQW5COztBQUVBLElBQU1DLGlCQUFpQixTQUFqQkEsY0FBaUIsQ0FBQ0MsSUFBRCxFQUFVO0FBQy9CLE1BQU1DLGFBQWEsdUJBQWFMLGtCQUFiLENBQW5CO0FBQ0EsTUFBTU0sU0FBUyxDQUFDRCxVQUFELENBQWY7QUFDQSxPQUFLLElBQUlFLElBQUksQ0FBYixFQUFnQkEsSUFBSVIsaUJBQXBCLEVBQXVDUSxLQUFLLENBQTVDLEVBQStDO0FBQzdDRCxXQUFPRSxJQUFQLENBQVlGLE9BQU9DLElBQUksQ0FBWCxJQUFnQkgsSUFBNUI7QUFDRDs7QUFFRCxTQUFPRSxNQUFQO0FBQ0QsQ0FSRDs7QUFVQSxJQUFNRyx3QkFBd0IsU0FBeEJBLHFCQUF3QixHQUFNO0FBQ2xDO0FBQ0EsTUFBSUwsT0FBTyx1QkFBYUgsU0FBYixDQUFYO0FBQ0FHLFNBQU9BLFNBQVMsQ0FBVCxHQUFhLENBQWIsR0FBaUJBLElBQXhCO0FBQ0EsTUFBTU0saUJBQWlCUCxlQUFlQyxJQUFmLENBQXZCO0FBQ0EsTUFBTU8sT0FBTyx1QkFBYVosaUJBQWIsQ0FBYjtBQUNBVyxpQkFBZUMsSUFBZixJQUF1QlQsVUFBdkI7O0FBRUEsTUFBTVUsV0FBV0YsZUFBZUcsSUFBZixDQUFvQixHQUFwQixDQUFqQjs7QUFFQTtBQUNBLE1BQU1DLGNBQWNKLGVBQWVLLEdBQWYsQ0FBbUIsVUFBQ0MsR0FBRCxFQUFTO0FBQzlDLFFBQU1DLE1BQU1ELFFBQVFkLFVBQVIsR0FBcUJjLEdBQXJCLEdBQTJCLENBQUNBLEdBQXhDO0FBQ0EsV0FBT0MsR0FBUDtBQUNELEdBSG1CLENBQXBCOztBQUtBLE1BQU1DLFFBQVFKLFlBQVlLLE9BQVosQ0FBb0JqQixVQUFwQixDQUFkO0FBQ0EsTUFBSWtCLGVBQUo7QUFDQSxNQUFJRixVQUFVLENBQWQsRUFBaUI7QUFDZkUsYUFBU04sWUFBWSxDQUFaLElBQWlCVixJQUExQjtBQUNELEdBRkQsTUFFTztBQUNMZ0IsYUFBU04sWUFBWUksUUFBUSxDQUFwQixJQUF5QmQsSUFBbEM7QUFDRDs7QUFFRCxNQUFNaUIsZ0JBQWdCRCxPQUFPRSxRQUFQLEVBQXRCOztBQUVBLFNBQU8sRUFBRVYsa0JBQUYsRUFBWVMsNEJBQVosRUFBUDtBQUNELENBM0JEOztrQkE2QmU7QUFBQSxTQUFNLHFCQUFNdkIsWUFBTixFQUFvQlcscUJBQXBCLENBQU47QUFBQSxDIiwiZmlsZSI6InByb2dyZXNzaW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0YXJ0IGZyb20gJy4uL3N0YXJ0JztcbmltcG9ydCB7IGdldFJhbmRvbUludCB9IGZyb20gJy4uL2xpYic7XG5cbmNvbnN0IHJ1bGVzTWVzc2FnZSA9ICdXaGF0IG51bWJlciBpcyBtaXNzaW5nIGluIHRoaXMgcHJvZ3Jlc3Npb24/JztcblxuY29uc3QgcHJvZ3Jlc3Npb25MZW5ndGggPSAxMDtcbmNvbnN0IGxpbWl0U3RhcnRQb3NpdGlvbiA9IDEwMDtcbmNvbnN0IGxpbWl0RGlmZiA9IDEwO1xuY29uc3QgbWFza1N5bWJvbCA9ICcuLic7XG5cbmNvbnN0IGdldFByb2dyZXNzaW9uID0gKGRpZmYpID0+IHtcbiAgY29uc3Qgc3RhcnRWYWx1ZSA9IGdldFJhbmRvbUludChsaW1pdFN0YXJ0UG9zaXRpb24pO1xuICBjb25zdCBvdXRwdXQgPSBbc3RhcnRWYWx1ZV07XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgcHJvZ3Jlc3Npb25MZW5ndGg7IGkgKz0gMSkge1xuICAgIG91dHB1dC5wdXNoKG91dHB1dFtpIC0gMV0gKyBkaWZmKTtcbiAgfVxuXG4gIHJldHVybiBvdXRwdXQ7XG59O1xuXG5jb25zdCBnZXRRdWVzdGlvbkFuc3dlclBhaXIgPSAoKSA9PiB7XG4gIC8vIGdldCBxdWVzdGlvblxuICBsZXQgZGlmZiA9IGdldFJhbmRvbUludChsaW1pdERpZmYpO1xuICBkaWZmID0gZGlmZiA9PT0gMCA/IDEgOiBkaWZmO1xuICBjb25zdCBxdWVzdGlvblJlc3VsdCA9IGdldFByb2dyZXNzaW9uKGRpZmYpO1xuICBjb25zdCBtYXNrID0gZ2V0UmFuZG9tSW50KHByb2dyZXNzaW9uTGVuZ3RoKTtcbiAgcXVlc3Rpb25SZXN1bHRbbWFza10gPSBtYXNrU3ltYm9sO1xuXG4gIGNvbnN0IHF1ZXN0aW9uID0gcXVlc3Rpb25SZXN1bHQuam9pbignICcpO1xuXG4gIC8vIGdldCBjb3JyZWN0QW5zd2VyXG4gIGNvbnN0IGFuc3dlckRpZ2l0ID0gcXVlc3Rpb25SZXN1bHQubWFwKCh2YWwpID0+IHtcbiAgICBjb25zdCByZXMgPSB2YWwgPT09IG1hc2tTeW1ib2wgPyB2YWwgOiArdmFsO1xuICAgIHJldHVybiByZXM7XG4gIH0pO1xuXG4gIGNvbnN0IGluZGV4ID0gYW5zd2VyRGlnaXQuaW5kZXhPZihtYXNrU3ltYm9sKTtcbiAgbGV0IHJlc3VsdDtcbiAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgcmVzdWx0ID0gYW5zd2VyRGlnaXRbMV0gLSBkaWZmO1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IGFuc3dlckRpZ2l0W2luZGV4IC0gMV0gKyBkaWZmO1xuICB9XG5cbiAgY29uc3QgY29ycmVjdEFuc3dlciA9IHJlc3VsdC50b1N0cmluZygpO1xuXG4gIHJldHVybiB7IHF1ZXN0aW9uLCBjb3JyZWN0QW5zd2VyIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiBzdGFydChydWxlc01lc3NhZ2UsIGdldFF1ZXN0aW9uQW5zd2VyUGFpcik7XG4iXX0=