@nox_wave/hexlet-braingames
Version:
Brain Games. A set of mini-games.
46 lines (36 loc) • 4.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _hexletPairs = require('hexlet-pairs');
var _ = require('..');
var _2 = _interopRequireDefault(_);
var _utils = require('../utils');
var _utils2 = _interopRequireDefault(_utils);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var progressionLength = 10;
exports.default = function () {
var addNumberToSequence = function addNumberToSequence(sequence, maxSequenceLength, commonDiff) {
if (sequence.length === maxSequenceLength) return sequence;
var lastElement = sequence[sequence.length - 1];
var nextElement = lastElement + commonDiff;
return addNumberToSequence([].concat(_toConsumableArray(sequence), [nextElement]), maxSequenceLength, commonDiff);
};
var getGameData = function getGameData() {
var firstElement = (0, _utils2.default)(2, 100);
var commonDiff = (0, _utils2.default)(2, 100);
var sequence = addNumberToSequence([firstElement], progressionLength, commonDiff);
var elementIndex = (0, _utils2.default)(0, sequence.length - 1);
var question = sequence.map(function (digit, index) {
return index === elementIndex ? '..' : digit;
}).join(' ');
var answer = '' + sequence[elementIndex];
return (0, _hexletPairs.cons)(question, answer);
};
(0, _2.default)({
instruction: 'What number is missing in this progression?',
getGameData: getGameData
});
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYW1lcy9wcm9ncmVzc2lvbi5qcyJdLCJuYW1lcyI6WyJwcm9ncmVzc2lvbkxlbmd0aCIsImFkZE51bWJlclRvU2VxdWVuY2UiLCJzZXF1ZW5jZSIsIm1heFNlcXVlbmNlTGVuZ3RoIiwiY29tbW9uRGlmZiIsImxlbmd0aCIsImxhc3RFbGVtZW50IiwibmV4dEVsZW1lbnQiLCJnZXRHYW1lRGF0YSIsImZpcnN0RWxlbWVudCIsImVsZW1lbnRJbmRleCIsInF1ZXN0aW9uIiwibWFwIiwiZGlnaXQiLCJpbmRleCIsImpvaW4iLCJhbnN3ZXIiLCJpbnN0cnVjdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7QUFFQSxJQUFNQSxvQkFBb0IsRUFBMUI7O2tCQUNlLFlBQU07QUFDbkIsTUFBTUMsc0JBQXNCLFNBQXRCQSxtQkFBc0IsQ0FBQ0MsUUFBRCxFQUFXQyxpQkFBWCxFQUE4QkMsVUFBOUIsRUFBNkM7QUFDdkUsUUFBSUYsU0FBU0csTUFBVCxLQUFvQkYsaUJBQXhCLEVBQTJDLE9BQU9ELFFBQVA7QUFDM0MsUUFBTUksY0FBY0osU0FBU0EsU0FBU0csTUFBVCxHQUFrQixDQUEzQixDQUFwQjtBQUNBLFFBQU1FLGNBQWNELGNBQWNGLFVBQWxDO0FBQ0EsV0FBT0gsaURBQXdCQyxRQUF4QixJQUFrQ0ssV0FBbEMsSUFBZ0RKLGlCQUFoRCxFQUFtRUMsVUFBbkUsQ0FBUDtBQUNELEdBTEQ7QUFNQSxNQUFNSSxjQUFjLFNBQWRBLFdBQWMsR0FBTTtBQUN4QixRQUFNQyxlQUFlLHFCQUFpQixDQUFqQixFQUFvQixHQUFwQixDQUFyQjtBQUNBLFFBQU1MLGFBQWEscUJBQWlCLENBQWpCLEVBQW9CLEdBQXBCLENBQW5CO0FBQ0EsUUFBTUYsV0FBV0Qsb0JBQW9CLENBQUNRLFlBQUQsQ0FBcEIsRUFBb0NULGlCQUFwQyxFQUF1REksVUFBdkQsQ0FBakI7QUFDQSxRQUFNTSxlQUFlLHFCQUFpQixDQUFqQixFQUFvQlIsU0FBU0csTUFBVCxHQUFrQixDQUF0QyxDQUFyQjtBQUNBLFFBQU1NLFdBQVdULFNBQVNVLEdBQVQsQ0FBYSxVQUFDQyxLQUFELEVBQVFDLEtBQVI7QUFBQSxhQUFtQkEsVUFBVUosWUFBVixHQUF5QixJQUF6QixHQUFnQ0csS0FBbkQ7QUFBQSxLQUFiLEVBQXdFRSxJQUF4RSxDQUE2RSxHQUE3RSxDQUFqQjtBQUNBLFFBQU1DLGNBQVlkLFNBQVNRLFlBQVQsQ0FBbEI7QUFDQSxXQUFPLHVCQUFLQyxRQUFMLEVBQWVLLE1BQWYsQ0FBUDtBQUNELEdBUkQ7QUFTQSxrQkFBUTtBQUNOQyxpQkFBYSw2Q0FEUDtBQUVOVDtBQUZNLEdBQVI7QUFJRCxDIiwiZmlsZSI6InByb2dyZXNzaW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29ucyB9IGZyb20gJ2hleGxldC1wYWlycyc7XG5pbXBvcnQgcnVuR2FtZSBmcm9tICcuLic7XG5pbXBvcnQgZ2V0UmFuZG9tSW50ZWdlciBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IHByb2dyZXNzaW9uTGVuZ3RoID0gMTA7XG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIGNvbnN0IGFkZE51bWJlclRvU2VxdWVuY2UgPSAoc2VxdWVuY2UsIG1heFNlcXVlbmNlTGVuZ3RoLCBjb21tb25EaWZmKSA9PiB7XG4gICAgaWYgKHNlcXVlbmNlLmxlbmd0aCA9PT0gbWF4U2VxdWVuY2VMZW5ndGgpIHJldHVybiBzZXF1ZW5jZTtcbiAgICBjb25zdCBsYXN0RWxlbWVudCA9IHNlcXVlbmNlW3NlcXVlbmNlLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IG5leHRFbGVtZW50ID0gbGFzdEVsZW1lbnQgKyBjb21tb25EaWZmO1xuICAgIHJldHVybiBhZGROdW1iZXJUb1NlcXVlbmNlKFsuLi5zZXF1ZW5jZSwgbmV4dEVsZW1lbnRdLCBtYXhTZXF1ZW5jZUxlbmd0aCwgY29tbW9uRGlmZik7XG4gIH07XG4gIGNvbnN0IGdldEdhbWVEYXRhID0gKCkgPT4ge1xuICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IGdldFJhbmRvbUludGVnZXIoMiwgMTAwKTtcbiAgICBjb25zdCBjb21tb25EaWZmID0gZ2V0UmFuZG9tSW50ZWdlcigyLCAxMDApO1xuICAgIGNvbnN0IHNlcXVlbmNlID0gYWRkTnVtYmVyVG9TZXF1ZW5jZShbZmlyc3RFbGVtZW50XSwgcHJvZ3Jlc3Npb25MZW5ndGgsIGNvbW1vbkRpZmYpO1xuICAgIGNvbnN0IGVsZW1lbnRJbmRleCA9IGdldFJhbmRvbUludGVnZXIoMCwgc2VxdWVuY2UubGVuZ3RoIC0gMSk7XG4gICAgY29uc3QgcXVlc3Rpb24gPSBzZXF1ZW5jZS5tYXAoKGRpZ2l0LCBpbmRleCkgPT4gKGluZGV4ID09PSBlbGVtZW50SW5kZXggPyAnLi4nIDogZGlnaXQpKS5qb2luKCcgJyk7XG4gICAgY29uc3QgYW5zd2VyID0gYCR7c2VxdWVuY2VbZWxlbWVudEluZGV4XX1gO1xuICAgIHJldHVybiBjb25zKHF1ZXN0aW9uLCBhbnN3ZXIpO1xuICB9O1xuICBydW5HYW1lKHtcbiAgICBpbnN0cnVjdGlvbjogJ1doYXQgbnVtYmVyIGlzIG1pc3NpbmcgaW4gdGhpcyBwcm9ncmVzc2lvbj8nLFxuICAgIGdldEdhbWVEYXRhLFxuICB9KTtcbn07XG4iXX0=