brain-games-echo
Version:
My firts project for hexlet.io. I hope it's not the last. This is a just casual project (for someone).
46 lines (35 loc) • 4.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _ = require('..');
var _2 = _interopRequireDefault(_);
var _tools = require('../tools');
var _tools2 = _interopRequireDefault(_tools);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var mainRule = 'Find the greatest common divisor of given numbers.';
var min = 1;
var max = 100;
var commonDivisor = function commonDivisor(num1, num2) {
var minNum = Math.min(num1, num2);
var maxNum = Math.max(num1, num2);
var findCommonDivisor = function findCommonDivisor(numMin, numMax, firstMin) {
if (numMax % numMin === 0 && firstMin % numMin === 0) {
return numMin;
}
return findCommonDivisor(numMin - 1, numMax, firstMin);
};
return findCommonDivisor(minNum, maxNum, minNum);
};
var genGameData = function genGameData() {
var num1 = (0, _tools2.default)(min, max);
var num2 = (0, _tools2.default)(min, max);
var correctAnswer = String(commonDivisor(num1, num2));
var question = num1 + ' ' + num2;
return [question, correctAnswer];
};
var startGameOfGCD = function startGameOfGCD() {
return (0, _2.default)(genGameData, mainRule);
};
exports.default = startGameOfGCD;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYW1lcy9nY2QuanMiXSwibmFtZXMiOlsibWFpblJ1bGUiLCJtaW4iLCJtYXgiLCJjb21tb25EaXZpc29yIiwibnVtMSIsIm51bTIiLCJtaW5OdW0iLCJNYXRoIiwibWF4TnVtIiwiZmluZENvbW1vbkRpdmlzb3IiLCJudW1NaW4iLCJudW1NYXgiLCJmaXJzdE1pbiIsImdlbkdhbWVEYXRhIiwiY29ycmVjdEFuc3dlciIsIlN0cmluZyIsInF1ZXN0aW9uIiwic3RhcnRHYW1lT2ZHQ0QiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLFdBQVcsb0RBQWpCO0FBQ0EsSUFBTUMsTUFBTSxDQUFaO0FBQ0EsSUFBTUMsTUFBTSxHQUFaOztBQUVBLElBQU1DLGdCQUFnQixTQUFoQkEsYUFBZ0IsQ0FBQ0MsSUFBRCxFQUFPQyxJQUFQLEVBQWdCO0FBQ3BDLE1BQU1DLFNBQVNDLEtBQUtOLEdBQUwsQ0FBU0csSUFBVCxFQUFlQyxJQUFmLENBQWY7QUFDQSxNQUFNRyxTQUFTRCxLQUFLTCxHQUFMLENBQVNFLElBQVQsRUFBZUMsSUFBZixDQUFmO0FBQ0EsTUFBTUksb0JBQW9CLFNBQXBCQSxpQkFBb0IsQ0FBQ0MsTUFBRCxFQUFTQyxNQUFULEVBQWlCQyxRQUFqQixFQUE4QjtBQUN0RCxRQUFJRCxTQUFTRCxNQUFULEtBQW9CLENBQXBCLElBQXlCRSxXQUFXRixNQUFYLEtBQXNCLENBQW5ELEVBQXNEO0FBQ3BELGFBQU9BLE1BQVA7QUFDRDtBQUNELFdBQU9ELGtCQUFrQkMsU0FBUyxDQUEzQixFQUE4QkMsTUFBOUIsRUFBc0NDLFFBQXRDLENBQVA7QUFDRCxHQUxEO0FBTUEsU0FBT0gsa0JBQWtCSCxNQUFsQixFQUEwQkUsTUFBMUIsRUFBa0NGLE1BQWxDLENBQVA7QUFDRCxDQVZEOztBQVlBLElBQU1PLGNBQWMsU0FBZEEsV0FBYyxHQUFNO0FBQ3hCLE1BQU1ULE9BQU8scUJBQWdCSCxHQUFoQixFQUFxQkMsR0FBckIsQ0FBYjtBQUNBLE1BQU1HLE9BQU8scUJBQWdCSixHQUFoQixFQUFxQkMsR0FBckIsQ0FBYjtBQUNBLE1BQU1ZLGdCQUFnQkMsT0FBT1osY0FBY0MsSUFBZCxFQUFvQkMsSUFBcEIsQ0FBUCxDQUF0QjtBQUNBLE1BQU1XLFdBQWNaLElBQWQsU0FBc0JDLElBQTVCO0FBQ0EsU0FBTyxDQUFDVyxRQUFELEVBQVdGLGFBQVgsQ0FBUDtBQUNELENBTkQ7O0FBUUEsSUFBTUcsaUJBQWlCLFNBQWpCQSxjQUFpQjtBQUFBLFNBQU0sZ0JBQWFKLFdBQWIsRUFBMEJiLFFBQTFCLENBQU47QUFBQSxDQUF2Qjs7a0JBRWVpQixjIiwiZmlsZSI6ImdjZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdGFydE5ld0dhbWUgZnJvbSAnLi4nO1xuaW1wb3J0IGdldFJhbmRvbU51bWJlciBmcm9tICcuLi90b29scyc7XG5cbmNvbnN0IG1haW5SdWxlID0gJ0ZpbmQgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIGdpdmVuIG51bWJlcnMuJztcbmNvbnN0IG1pbiA9IDE7XG5jb25zdCBtYXggPSAxMDA7XG5cbmNvbnN0IGNvbW1vbkRpdmlzb3IgPSAobnVtMSwgbnVtMikgPT4ge1xuICBjb25zdCBtaW5OdW0gPSBNYXRoLm1pbihudW0xLCBudW0yKTtcbiAgY29uc3QgbWF4TnVtID0gTWF0aC5tYXgobnVtMSwgbnVtMik7XG4gIGNvbnN0IGZpbmRDb21tb25EaXZpc29yID0gKG51bU1pbiwgbnVtTWF4LCBmaXJzdE1pbikgPT4ge1xuICAgIGlmIChudW1NYXggJSBudW1NaW4gPT09IDAgJiYgZmlyc3RNaW4gJSBudW1NaW4gPT09IDApIHtcbiAgICAgIHJldHVybiBudW1NaW47XG4gICAgfVxuICAgIHJldHVybiBmaW5kQ29tbW9uRGl2aXNvcihudW1NaW4gLSAxLCBudW1NYXgsIGZpcnN0TWluKTtcbiAgfTtcbiAgcmV0dXJuIGZpbmRDb21tb25EaXZpc29yKG1pbk51bSwgbWF4TnVtLCBtaW5OdW0pO1xufTtcblxuY29uc3QgZ2VuR2FtZURhdGEgPSAoKSA9PiB7XG4gIGNvbnN0IG51bTEgPSBnZXRSYW5kb21OdW1iZXIobWluLCBtYXgpO1xuICBjb25zdCBudW0yID0gZ2V0UmFuZG9tTnVtYmVyKG1pbiwgbWF4KTtcbiAgY29uc3QgY29ycmVjdEFuc3dlciA9IFN0cmluZyhjb21tb25EaXZpc29yKG51bTEsIG51bTIpKTtcbiAgY29uc3QgcXVlc3Rpb24gPSBgJHtudW0xfSAke251bTJ9YDtcbiAgcmV0dXJuIFtxdWVzdGlvbiwgY29ycmVjdEFuc3dlcl07XG59O1xuXG5jb25zdCBzdGFydEdhbWVPZkdDRCA9ICgpID0+IHN0YXJ0TmV3R2FtZShnZW5HYW1lRGF0YSwgbWFpblJ1bGUpO1xuXG5leHBvcnQgZGVmYXVsdCBzdGFydEdhbWVPZkdDRDtcbiJdfQ==