UNPKG

brain-game-108

Version:
59 lines (40 loc) 5.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _hexletPairsData = require("hexlet-pairs-data"); var pairs = _interopRequireWildcard(require("hexlet-pairs")); var _utils = require("../utils"); var _ = _interopRequireDefault(require("..")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } const header = 'What number is missing in the progression?\n'; const func = x => x + 3; const gameProgressionBody = () => { const startNumber = (0, _utils.randomNumber)(0, 100); const progressionLength = 10; const positionOfAnswer = (0, _utils.randomNumber)(0, progressionLength - 1); const createList = (length, acc) => { if (length === 1) { return (0, _hexletPairsData.reverse)(acc); } return createList(length - 1, (0, _hexletPairsData.cons)(func((0, _hexletPairsData.head)(acc)), acc)); }; const list = createList(progressionLength, (0, _hexletPairsData.l)(startNumber)); const listWithQuestion = (count, acc) => { if (count === progressionLength) { return (0, _hexletPairsData.reverse)(acc); } if (count === positionOfAnswer) { return listWithQuestion(count + 1, (0, _hexletPairsData.cons)('..', acc)); } return listWithQuestion(count + 1, (0, _hexletPairsData.cons)((0, _hexletPairsData.get)(count, list), acc)); }; const question = (0, _hexletPairsData.toString)(listWithQuestion(0, (0, _hexletPairsData.l)())); const answer = (0, _hexletPairsData.get)(positionOfAnswer, list); return pairs.cons(question, String(answer)); }; var _default = () => (0, _.default)(header, gameProgressionBody); exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYW1lcy9icmFpbi1wcm9ncmVzc2lvbi5qcyJdLCJuYW1lcyI6WyJoZWFkZXIiLCJmdW5jIiwieCIsImdhbWVQcm9ncmVzc2lvbkJvZHkiLCJzdGFydE51bWJlciIsInByb2dyZXNzaW9uTGVuZ3RoIiwicG9zaXRpb25PZkFuc3dlciIsImNyZWF0ZUxpc3QiLCJsZW5ndGgiLCJhY2MiLCJsaXN0IiwibGlzdFdpdGhRdWVzdGlvbiIsImNvdW50IiwicXVlc3Rpb24iLCJhbnN3ZXIiLCJwYWlycyIsImNvbnMiLCJTdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFRQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsTUFBTUEsTUFBTSxHQUFHLDhDQUFmOztBQUNBLE1BQU1DLElBQUksR0FBR0MsQ0FBQyxJQUFJQSxDQUFDLEdBQUcsQ0FBdEI7O0FBRUEsTUFBTUMsbUJBQW1CLEdBQUcsTUFBTTtBQUNoQyxRQUFNQyxXQUFXLEdBQUcseUJBQWEsQ0FBYixFQUFnQixHQUFoQixDQUFwQjtBQUNBLFFBQU1DLGlCQUFpQixHQUFHLEVBQTFCO0FBQ0EsUUFBTUMsZ0JBQWdCLEdBQUcseUJBQWEsQ0FBYixFQUFnQkQsaUJBQWlCLEdBQUcsQ0FBcEMsQ0FBekI7O0FBQ0EsUUFBTUUsVUFBVSxHQUFHLENBQUNDLE1BQUQsRUFBU0MsR0FBVCxLQUFpQjtBQUNsQyxRQUFJRCxNQUFNLEtBQUssQ0FBZixFQUFrQjtBQUNoQixhQUFPLDhCQUFRQyxHQUFSLENBQVA7QUFDRDs7QUFDRCxXQUFPRixVQUFVLENBQUNDLE1BQU0sR0FBRyxDQUFWLEVBQWEsMkJBQUtQLElBQUksQ0FBQywyQkFBS1EsR0FBTCxDQUFELENBQVQsRUFBc0JBLEdBQXRCLENBQWIsQ0FBakI7QUFDRCxHQUxEOztBQU1BLFFBQU1DLElBQUksR0FBR0gsVUFBVSxDQUFDRixpQkFBRCxFQUFvQix3QkFBRUQsV0FBRixDQUFwQixDQUF2Qjs7QUFDQSxRQUFNTyxnQkFBZ0IsR0FBRyxDQUFDQyxLQUFELEVBQVFILEdBQVIsS0FBZ0I7QUFDdkMsUUFBSUcsS0FBSyxLQUFLUCxpQkFBZCxFQUFpQztBQUMvQixhQUFPLDhCQUFRSSxHQUFSLENBQVA7QUFDRDs7QUFDRCxRQUFJRyxLQUFLLEtBQUtOLGdCQUFkLEVBQWdDO0FBQzlCLGFBQU9LLGdCQUFnQixDQUFDQyxLQUFLLEdBQUcsQ0FBVCxFQUFZLDJCQUFLLElBQUwsRUFBV0gsR0FBWCxDQUFaLENBQXZCO0FBQ0Q7O0FBQ0QsV0FBT0UsZ0JBQWdCLENBQUNDLEtBQUssR0FBRyxDQUFULEVBQVksMkJBQUssMEJBQUlBLEtBQUosRUFBV0YsSUFBWCxDQUFMLEVBQXVCRCxHQUF2QixDQUFaLENBQXZCO0FBQ0QsR0FSRDs7QUFTQSxRQUFNSSxRQUFRLEdBQUcsK0JBQVNGLGdCQUFnQixDQUFDLENBQUQsRUFBSSx5QkFBSixDQUF6QixDQUFqQjtBQUNBLFFBQU1HLE1BQU0sR0FBRywwQkFBSVIsZ0JBQUosRUFBc0JJLElBQXRCLENBQWY7QUFDQSxTQUFPSyxLQUFLLENBQUNDLElBQU4sQ0FBV0gsUUFBWCxFQUFxQkksTUFBTSxDQUFDSCxNQUFELENBQTNCLENBQVA7QUFDRCxDQXZCRDs7ZUF5QmUsTUFBTSxlQUFLZCxNQUFMLEVBQWFHLG1CQUFiLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjb25zLFxuICBsLFxuICBnZXQsXG4gIGhlYWQsXG4gIHRvU3RyaW5nLFxuICByZXZlcnNlLFxufSBmcm9tICdoZXhsZXQtcGFpcnMtZGF0YSc7XG5pbXBvcnQgKiBhcyBwYWlycyBmcm9tICdoZXhsZXQtcGFpcnMnO1xuaW1wb3J0IHsgcmFuZG9tTnVtYmVyIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IGdhbWUgZnJvbSAnLi4nO1xuXG5jb25zdCBoZWFkZXIgPSAnV2hhdCBudW1iZXIgaXMgbWlzc2luZyBpbiB0aGUgcHJvZ3Jlc3Npb24/XFxuJztcbmNvbnN0IGZ1bmMgPSB4ID0+IHggKyAzO1xuXG5jb25zdCBnYW1lUHJvZ3Jlc3Npb25Cb2R5ID0gKCkgPT4ge1xuICBjb25zdCBzdGFydE51bWJlciA9IHJhbmRvbU51bWJlcigwLCAxMDApO1xuICBjb25zdCBwcm9ncmVzc2lvbkxlbmd0aCA9IDEwO1xuICBjb25zdCBwb3NpdGlvbk9mQW5zd2VyID0gcmFuZG9tTnVtYmVyKDAsIHByb2dyZXNzaW9uTGVuZ3RoIC0gMSk7XG4gIGNvbnN0IGNyZWF0ZUxpc3QgPSAobGVuZ3RoLCBhY2MpID0+IHtcbiAgICBpZiAobGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gcmV2ZXJzZShhY2MpO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlTGlzdChsZW5ndGggLSAxLCBjb25zKGZ1bmMoaGVhZChhY2MpKSwgYWNjKSk7XG4gIH07XG4gIGNvbnN0IGxpc3QgPSBjcmVhdGVMaXN0KHByb2dyZXNzaW9uTGVuZ3RoLCBsKHN0YXJ0TnVtYmVyKSk7XG4gIGNvbnN0IGxpc3RXaXRoUXVlc3Rpb24gPSAoY291bnQsIGFjYykgPT4ge1xuICAgIGlmIChjb3VudCA9PT0gcHJvZ3Jlc3Npb25MZW5ndGgpIHtcbiAgICAgIHJldHVybiByZXZlcnNlKGFjYyk7XG4gICAgfVxuICAgIGlmIChjb3VudCA9PT0gcG9zaXRpb25PZkFuc3dlcikge1xuICAgICAgcmV0dXJuIGxpc3RXaXRoUXVlc3Rpb24oY291bnQgKyAxLCBjb25zKCcuLicsIGFjYykpO1xuICAgIH1cbiAgICByZXR1cm4gbGlzdFdpdGhRdWVzdGlvbihjb3VudCArIDEsIGNvbnMoZ2V0KGNvdW50LCBsaXN0KSwgYWNjKSk7XG4gIH07XG4gIGNvbnN0IHF1ZXN0aW9uID0gdG9TdHJpbmcobGlzdFdpdGhRdWVzdGlvbigwLCBsKCkpKTtcbiAgY29uc3QgYW5zd2VyID0gZ2V0KHBvc2l0aW9uT2ZBbnN3ZXIsIGxpc3QpO1xuICByZXR1cm4gcGFpcnMuY29ucyhxdWVzdGlvbiwgU3RyaW5nKGFuc3dlcikpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4gZ2FtZShoZWFkZXIsIGdhbWVQcm9ncmVzc2lvbkJvZHkpO1xuIl19