UNPKG

console-game

Version:
53 lines (39 loc) 4.83 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _gamesEngine = require('../games-engine'); var _gamesEngine2 = _interopRequireDefault(_gamesEngine); var _utils = require('../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 rules = 'What number is missing in this progression?'; var prgLength = 10; var buildPrgColl = function buildPrgColl(start, diff, length) { var iter = function iter(coll) { var cLength = coll.length; if (cLength === length) { return coll; } var newColl = [].concat(_toConsumableArray(coll), [coll[cLength - 1] + diff]); return iter(newColl); }; return iter(start); }; var getGameSet = function getGameSet() { var prgStart = (0, _utils.getRandomNumber)(); var prgDiff = (0, _utils.getRandomNumber)(); var rndIndex = (0, _utils.getRndArrIndex)(prgLength); var prgColl = buildPrgColl([prgStart], prgDiff, prgLength); var rndEl = prgColl[rndIndex]; var collWithEmptyEl = [].concat(_toConsumableArray(prgColl.slice(0, rndIndex)), ['..'], _toConsumableArray(prgColl.slice(rndIndex + 1, prgColl.length))); return { question: collWithEmptyEl.join(' '), answer: rndEl.toString() }; }; var fillProgression = function fillProgression() { return (0, _gamesEngine2.default)(rules, getGameSet); }; exports.default = fillProgression; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYW1lcy9icmFpbi1wcm9ncmVzc2lvbi5qcyJdLCJuYW1lcyI6WyJydWxlcyIsInByZ0xlbmd0aCIsImJ1aWxkUHJnQ29sbCIsInN0YXJ0IiwiZGlmZiIsImxlbmd0aCIsIml0ZXIiLCJjb2xsIiwiY0xlbmd0aCIsIm5ld0NvbGwiLCJnZXRHYW1lU2V0IiwicHJnU3RhcnQiLCJwcmdEaWZmIiwicm5kSW5kZXgiLCJwcmdDb2xsIiwicm5kRWwiLCJjb2xsV2l0aEVtcHR5RWwiLCJzbGljZSIsInF1ZXN0aW9uIiwiam9pbiIsImFuc3dlciIsInRvU3RyaW5nIiwiZmlsbFByb2dyZXNzaW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxRQUFRLDZDQUFkO0FBQ0EsSUFBTUMsWUFBWSxFQUFsQjs7QUFFQSxJQUFNQyxlQUFlLFNBQWZBLFlBQWUsQ0FBQ0MsS0FBRCxFQUFRQyxJQUFSLEVBQWNDLE1BQWQsRUFBeUI7QUFDNUMsTUFBTUMsT0FBTyxTQUFQQSxJQUFPLENBQUNDLElBQUQsRUFBVTtBQUNyQixRQUFNQyxVQUFVRCxLQUFLRixNQUFyQjtBQUNBLFFBQUlHLFlBQVlILE1BQWhCLEVBQXdCO0FBQ3RCLGFBQU9FLElBQVA7QUFDRDtBQUNELFFBQU1FLHVDQUFjRixJQUFkLElBQW9CQSxLQUFLQyxVQUFVLENBQWYsSUFBb0JKLElBQXhDLEVBQU47QUFDQSxXQUFPRSxLQUFLRyxPQUFMLENBQVA7QUFDRCxHQVBEOztBQVNBLFNBQU9ILEtBQUtILEtBQUwsQ0FBUDtBQUNELENBWEQ7O0FBY0EsSUFBTU8sYUFBYSxTQUFiQSxVQUFhLEdBQU07QUFDdkIsTUFBTUMsV0FBVyw2QkFBakI7QUFDQSxNQUFNQyxVQUFVLDZCQUFoQjtBQUNBLE1BQU1DLFdBQVcsMkJBQWVaLFNBQWYsQ0FBakI7O0FBRUEsTUFBTWEsVUFBVVosYUFBYSxDQUFDUyxRQUFELENBQWIsRUFBeUJDLE9BQXpCLEVBQWtDWCxTQUFsQyxDQUFoQjtBQUNBLE1BQU1jLFFBQVFELFFBQVFELFFBQVIsQ0FBZDtBQUNBLE1BQU1HLCtDQUFzQkYsUUFBUUcsS0FBUixDQUFjLENBQWQsRUFBaUJKLFFBQWpCLENBQXRCLElBQWtELElBQWxELHNCQUEyREMsUUFBUUcsS0FBUixDQUFjSixXQUFXLENBQXpCLEVBQTRCQyxRQUFRVCxNQUFwQyxDQUEzRCxFQUFOOztBQUVBLFNBQU87QUFDTGEsY0FBVUYsZ0JBQWdCRyxJQUFoQixDQUFxQixHQUFyQixDQURMO0FBRUxDLFlBQVFMLE1BQU1NLFFBQU47QUFGSCxHQUFQO0FBSUQsQ0FiRDs7QUFlQSxJQUFNQyxrQkFBa0IsU0FBbEJBLGVBQWtCO0FBQUEsU0FBTSwyQkFBU3RCLEtBQVQsRUFBZ0JVLFVBQWhCLENBQU47QUFBQSxDQUF4Qjs7a0JBRWVZLGUiLCJmaWxlIjoiYnJhaW4tcHJvZ3Jlc3Npb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWFrZUdhbWUgZnJvbSAnLi4vZ2FtZXMtZW5naW5lJztcbmltcG9ydCB7IGdldFJhbmRvbU51bWJlciwgZ2V0Um5kQXJySW5kZXggfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IHJ1bGVzID0gJ1doYXQgbnVtYmVyIGlzIG1pc3NpbmcgaW4gdGhpcyBwcm9ncmVzc2lvbj8nO1xuY29uc3QgcHJnTGVuZ3RoID0gMTA7XG5cbmNvbnN0IGJ1aWxkUHJnQ29sbCA9IChzdGFydCwgZGlmZiwgbGVuZ3RoKSA9PiB7XG4gIGNvbnN0IGl0ZXIgPSAoY29sbCkgPT4ge1xuICAgIGNvbnN0IGNMZW5ndGggPSBjb2xsLmxlbmd0aDtcbiAgICBpZiAoY0xlbmd0aCA9PT0gbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gY29sbDtcbiAgICB9XG4gICAgY29uc3QgbmV3Q29sbCA9IFsuLi5jb2xsLCBjb2xsW2NMZW5ndGggLSAxXSArIGRpZmZdO1xuICAgIHJldHVybiBpdGVyKG5ld0NvbGwpO1xuICB9O1xuXG4gIHJldHVybiBpdGVyKHN0YXJ0KTtcbn07XG5cblxuY29uc3QgZ2V0R2FtZVNldCA9ICgpID0+IHtcbiAgY29uc3QgcHJnU3RhcnQgPSBnZXRSYW5kb21OdW1iZXIoKTtcbiAgY29uc3QgcHJnRGlmZiA9IGdldFJhbmRvbU51bWJlcigpO1xuICBjb25zdCBybmRJbmRleCA9IGdldFJuZEFyckluZGV4KHByZ0xlbmd0aCk7XG5cbiAgY29uc3QgcHJnQ29sbCA9IGJ1aWxkUHJnQ29sbChbcHJnU3RhcnRdLCBwcmdEaWZmLCBwcmdMZW5ndGgpO1xuICBjb25zdCBybmRFbCA9IHByZ0NvbGxbcm5kSW5kZXhdO1xuICBjb25zdCBjb2xsV2l0aEVtcHR5RWwgPSBbLi4ucHJnQ29sbC5zbGljZSgwLCBybmRJbmRleCksICcuLicsIC4uLnByZ0NvbGwuc2xpY2Uocm5kSW5kZXggKyAxLCBwcmdDb2xsLmxlbmd0aCldO1xuXG4gIHJldHVybiB7XG4gICAgcXVlc3Rpb246IGNvbGxXaXRoRW1wdHlFbC5qb2luKCcgJyksXG4gICAgYW5zd2VyOiBybmRFbC50b1N0cmluZygpLFxuICB9O1xufTtcblxuY29uc3QgZmlsbFByb2dyZXNzaW9uID0gKCkgPT4gbWFrZUdhbWUocnVsZXMsIGdldEdhbWVTZXQpO1xuXG5leHBvcnQgZGVmYXVsdCBmaWxsUHJvZ3Jlc3Npb247XG4iXX0=