UNPKG

project-lvl1-s132

Version:

Brain Games

64 lines (48 loc) 5.54 kB
'use strict'; 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=