brain-games-v
Version:
My first project in Hexlet
51 lines (39 loc) • 5.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _core = _interopRequireDefault(require("../core"));
var _utils = _interopRequireDefault(require("../utils"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const description = 'What number is missing in the progression?';
const length = 10;
const minRandomStep = 1;
const maxRandomStep = 10;
const minRandomFirstEl = 1;
const maxRandomFirstEl = 100;
const firstIndexEl = 0;
const lastIndexEl = length - 1;
const getArrProgression = (firstEl, step, progressionlength) => {
const arr = [];
for (let i = 0; i < progressionlength - 1; i += 1) {
arr.push(firstEl + step * i);
}
return arr;
};
const getArrProgressionForQuestion = (arrProgression, hideIndexEl) => arrProgression.map((el, i) => i === hideIndexEl ? '...' : el);
const getGameData = () => {
const firstEl = (0, _utils.default)(minRandomFirstEl, maxRandomFirstEl);
const step = (0, _utils.default)(minRandomStep, maxRandomStep);
const hiddenElementIndex = (0, _utils.default)(firstIndexEl, lastIndexEl);
const progression = getArrProgression(firstEl, step, length);
const answer = String(progression[hiddenElementIndex]);
const question = getArrProgressionForQuestion(progression, hiddenElementIndex).join(',');
return {
question,
answer
};
};
var _default = () => (0, _core.default)(description, getGameData);
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYW1lcy9wcm9ncmVzc2lvbi5qcyJdLCJuYW1lcyI6WyJkZXNjcmlwdGlvbiIsImxlbmd0aCIsIm1pblJhbmRvbVN0ZXAiLCJtYXhSYW5kb21TdGVwIiwibWluUmFuZG9tRmlyc3RFbCIsIm1heFJhbmRvbUZpcnN0RWwiLCJmaXJzdEluZGV4RWwiLCJsYXN0SW5kZXhFbCIsImdldEFyclByb2dyZXNzaW9uIiwiZmlyc3RFbCIsInN0ZXAiLCJwcm9ncmVzc2lvbmxlbmd0aCIsImFyciIsImkiLCJwdXNoIiwiZ2V0QXJyUHJvZ3Jlc3Npb25Gb3JRdWVzdGlvbiIsImFyclByb2dyZXNzaW9uIiwiaGlkZUluZGV4RWwiLCJtYXAiLCJlbCIsImdldEdhbWVEYXRhIiwiaGlkZGVuRWxlbWVudEluZGV4IiwicHJvZ3Jlc3Npb24iLCJhbnN3ZXIiLCJTdHJpbmciLCJxdWVzdGlvbiIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7OztBQUVBLE1BQU1BLFdBQVcsR0FBRyw0Q0FBcEI7QUFFQSxNQUFNQyxNQUFNLEdBQUcsRUFBZjtBQUVBLE1BQU1DLGFBQWEsR0FBRyxDQUF0QjtBQUNBLE1BQU1DLGFBQWEsR0FBRyxFQUF0QjtBQUVBLE1BQU1DLGdCQUFnQixHQUFHLENBQXpCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsR0FBekI7QUFFQSxNQUFNQyxZQUFZLEdBQUcsQ0FBckI7QUFDQSxNQUFNQyxXQUFXLEdBQUdOLE1BQU0sR0FBRyxDQUE3Qjs7QUFFQSxNQUFNTyxpQkFBaUIsR0FBRyxDQUFDQyxPQUFELEVBQVVDLElBQVYsRUFBZ0JDLGlCQUFoQixLQUFzQztBQUM5RCxRQUFNQyxHQUFHLEdBQUcsRUFBWjs7QUFDQSxPQUFLLElBQUlDLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdGLGlCQUFpQixHQUFHLENBQXhDLEVBQTJDRSxDQUFDLElBQUksQ0FBaEQsRUFBbUQ7QUFDakRELElBQUFBLEdBQUcsQ0FBQ0UsSUFBSixDQUFTTCxPQUFPLEdBQUdDLElBQUksR0FBR0csQ0FBMUI7QUFDRDs7QUFDRCxTQUFPRCxHQUFQO0FBQ0QsQ0FORDs7QUFRQSxNQUFNRyw0QkFBNEIsR0FBRyxDQUFDQyxjQUFELEVBQWlCQyxXQUFqQixLQUFpQ0QsY0FBYyxDQUFDRSxHQUFmLENBQW1CLENBQUNDLEVBQUQsRUFBS04sQ0FBTCxLQUFhQSxDQUFDLEtBQUtJLFdBQVAsR0FBc0IsS0FBdEIsR0FBOEJFLEVBQTdELENBQXRFOztBQUVBLE1BQU1DLFdBQVcsR0FBRyxNQUFNO0FBQ3hCLFFBQU1YLE9BQU8sR0FBRyxvQkFBYUwsZ0JBQWIsRUFBK0JDLGdCQUEvQixDQUFoQjtBQUNBLFFBQU1LLElBQUksR0FBRyxvQkFBYVIsYUFBYixFQUE0QkMsYUFBNUIsQ0FBYjtBQUNBLFFBQU1rQixrQkFBa0IsR0FBRyxvQkFBYWYsWUFBYixFQUEyQkMsV0FBM0IsQ0FBM0I7QUFFQSxRQUFNZSxXQUFXLEdBQUdkLGlCQUFpQixDQUFDQyxPQUFELEVBQVVDLElBQVYsRUFBZ0JULE1BQWhCLENBQXJDO0FBQ0EsUUFBTXNCLE1BQU0sR0FBR0MsTUFBTSxDQUFDRixXQUFXLENBQUNELGtCQUFELENBQVosQ0FBckI7QUFDQSxRQUFNSSxRQUFRLEdBQUdWLDRCQUE0QixDQUFDTyxXQUFELEVBQWNELGtCQUFkLENBQTVCLENBQThESyxJQUE5RCxDQUFtRSxHQUFuRSxDQUFqQjtBQUVBLFNBQU87QUFDTEQsSUFBQUEsUUFESztBQUVMRixJQUFBQTtBQUZLLEdBQVA7QUFJRCxDQWJEOztlQWVlLE1BQU0sbUJBQUt2QixXQUFMLEVBQWtCb0IsV0FBbEIsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb3JlIGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IGdldFJhbmRvbUludCBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGRlc2NyaXB0aW9uID0gJ1doYXQgbnVtYmVyIGlzIG1pc3NpbmcgaW4gdGhlIHByb2dyZXNzaW9uPyc7XG5cbmNvbnN0IGxlbmd0aCA9IDEwO1xuXG5jb25zdCBtaW5SYW5kb21TdGVwID0gMTtcbmNvbnN0IG1heFJhbmRvbVN0ZXAgPSAxMDtcblxuY29uc3QgbWluUmFuZG9tRmlyc3RFbCA9IDE7XG5jb25zdCBtYXhSYW5kb21GaXJzdEVsID0gMTAwO1xuXG5jb25zdCBmaXJzdEluZGV4RWwgPSAwO1xuY29uc3QgbGFzdEluZGV4RWwgPSBsZW5ndGggLSAxO1xuXG5jb25zdCBnZXRBcnJQcm9ncmVzc2lvbiA9IChmaXJzdEVsLCBzdGVwLCBwcm9ncmVzc2lvbmxlbmd0aCkgPT4ge1xuICBjb25zdCBhcnIgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9ncmVzc2lvbmxlbmd0aCAtIDE7IGkgKz0gMSkge1xuICAgIGFyci5wdXNoKGZpcnN0RWwgKyBzdGVwICogaSk7XG4gIH1cbiAgcmV0dXJuIGFycjtcbn07XG5cbmNvbnN0IGdldEFyclByb2dyZXNzaW9uRm9yUXVlc3Rpb24gPSAoYXJyUHJvZ3Jlc3Npb24sIGhpZGVJbmRleEVsKSA9PiBhcnJQcm9ncmVzc2lvbi5tYXAoKGVsLCBpKSA9PiAoKGkgPT09IGhpZGVJbmRleEVsKSA/ICcuLi4nIDogZWwpKTtcblxuY29uc3QgZ2V0R2FtZURhdGEgPSAoKSA9PiB7XG4gIGNvbnN0IGZpcnN0RWwgPSBnZXRSYW5kb21JbnQobWluUmFuZG9tRmlyc3RFbCwgbWF4UmFuZG9tRmlyc3RFbCk7XG4gIGNvbnN0IHN0ZXAgPSBnZXRSYW5kb21JbnQobWluUmFuZG9tU3RlcCwgbWF4UmFuZG9tU3RlcCk7XG4gIGNvbnN0IGhpZGRlbkVsZW1lbnRJbmRleCA9IGdldFJhbmRvbUludChmaXJzdEluZGV4RWwsIGxhc3RJbmRleEVsKTtcblxuICBjb25zdCBwcm9ncmVzc2lvbiA9IGdldEFyclByb2dyZXNzaW9uKGZpcnN0RWwsIHN0ZXAsIGxlbmd0aCk7XG4gIGNvbnN0IGFuc3dlciA9IFN0cmluZyhwcm9ncmVzc2lvbltoaWRkZW5FbGVtZW50SW5kZXhdKTtcbiAgY29uc3QgcXVlc3Rpb24gPSBnZXRBcnJQcm9ncmVzc2lvbkZvclF1ZXN0aW9uKHByb2dyZXNzaW9uLCBoaWRkZW5FbGVtZW50SW5kZXgpLmpvaW4oJywnKTtcblxuICByZXR1cm4ge1xuICAgIHF1ZXN0aW9uLFxuICAgIGFuc3dlcixcbiAgfTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IGNvcmUoZGVzY3JpcHRpb24sIGdldEdhbWVEYXRhKTtcbiJdfQ==