UNPKG

uladzislau97-brain-games

Version:

Set of console mini-games.

40 lines (30 loc) 4.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _gameEngine = _interopRequireDefault(require("./game-engine")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const INCLUDED_MIN_RANDOM_NUMBER = 1; const EXCLUDED_MAX_RANDOM_NUMBER = 101; const GAME_DESCRIPTION = 'Find the greatest common divisor of given numbers.'; const generateRandomNumber = () => Math.floor(Math.random() * (EXCLUDED_MAX_RANDOM_NUMBER - INCLUDED_MIN_RANDOM_NUMBER) + INCLUDED_MIN_RANDOM_NUMBER); const findGCD = (a, b) => { if (a === 0) return b; if (b === 0) return a; return a >= b ? findGCD(a % b, b) : findGCD(a, b % a); }; const generateQuestion = () => { const firstNumber = generateRandomNumber(); const secondNumber = generateRandomNumber(); return `${firstNumber} ${secondNumber}`; }; const getCorrectAnswer = question => { const numbers = question.split(' '); return findGCD(...numbers).toString(); }; var _default = () => { (0, _gameEngine.default)(GAME_DESCRIPTION, generateQuestion, getCorrectAnswer); }; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYW1lcy9icmFpbi1nY2QuanMiXSwibmFtZXMiOlsiSU5DTFVERURfTUlOX1JBTkRPTV9OVU1CRVIiLCJFWENMVURFRF9NQVhfUkFORE9NX05VTUJFUiIsIkdBTUVfREVTQ1JJUFRJT04iLCJnZW5lcmF0ZVJhbmRvbU51bWJlciIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsImZpbmRHQ0QiLCJhIiwiYiIsImdlbmVyYXRlUXVlc3Rpb24iLCJmaXJzdE51bWJlciIsInNlY29uZE51bWJlciIsImdldENvcnJlY3RBbnN3ZXIiLCJxdWVzdGlvbiIsIm51bWJlcnMiLCJzcGxpdCIsInRvU3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFFQSxNQUFNQSwwQkFBMEIsR0FBRyxDQUFuQztBQUNBLE1BQU1DLDBCQUEwQixHQUFHLEdBQW5DO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsb0RBQXpCOztBQUVBLE1BQU1DLG9CQUFvQixHQUFHLE1BQU1DLElBQUksQ0FBQ0MsS0FBTCxDQUNqQ0QsSUFBSSxDQUFDRSxNQUFMLE1BQWlCTCwwQkFBMEIsR0FBR0QsMEJBQTlDLElBQ0lBLDBCQUY2QixDQUFuQzs7QUFLQSxNQUFNTyxPQUFPLEdBQUcsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVU7QUFDeEIsTUFBSUQsQ0FBQyxLQUFLLENBQVYsRUFBYSxPQUFPQyxDQUFQO0FBQ2IsTUFBSUEsQ0FBQyxLQUFLLENBQVYsRUFBYSxPQUFPRCxDQUFQO0FBRWIsU0FBT0EsQ0FBQyxJQUFJQyxDQUFMLEdBQVNGLE9BQU8sQ0FBQ0MsQ0FBQyxHQUFHQyxDQUFMLEVBQVFBLENBQVIsQ0FBaEIsR0FBNkJGLE9BQU8sQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFDLEdBQUdELENBQVIsQ0FBM0M7QUFDRCxDQUxEOztBQU9BLE1BQU1FLGdCQUFnQixHQUFHLE1BQU07QUFDN0IsUUFBTUMsV0FBVyxHQUFHUixvQkFBb0IsRUFBeEM7QUFDQSxRQUFNUyxZQUFZLEdBQUdULG9CQUFvQixFQUF6QztBQUNBLFNBQVEsR0FBRVEsV0FBWSxJQUFHQyxZQUFhLEVBQXRDO0FBQ0QsQ0FKRDs7QUFNQSxNQUFNQyxnQkFBZ0IsR0FBSUMsUUFBRCxJQUFjO0FBQ3JDLFFBQU1DLE9BQU8sR0FBR0QsUUFBUSxDQUFDRSxLQUFULENBQWUsR0FBZixDQUFoQjtBQUNBLFNBQU9ULE9BQU8sQ0FBQyxHQUFHUSxPQUFKLENBQVAsQ0FBb0JFLFFBQXBCLEVBQVA7QUFDRCxDQUhEOztlQUtlLE1BQU07QUFDbkIsMkJBQVFmLGdCQUFSLEVBQTBCUSxnQkFBMUIsRUFBNENHLGdCQUE1QztBQUNELEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcnVuR2FtZSBmcm9tICcuL2dhbWUtZW5naW5lJztcblxuY29uc3QgSU5DTFVERURfTUlOX1JBTkRPTV9OVU1CRVIgPSAxO1xuY29uc3QgRVhDTFVERURfTUFYX1JBTkRPTV9OVU1CRVIgPSAxMDE7XG5jb25zdCBHQU1FX0RFU0NSSVBUSU9OID0gJ0ZpbmQgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIGdpdmVuIG51bWJlcnMuJztcblxuY29uc3QgZ2VuZXJhdGVSYW5kb21OdW1iZXIgPSAoKSA9PiBNYXRoLmZsb29yKFxuICBNYXRoLnJhbmRvbSgpICogKEVYQ0xVREVEX01BWF9SQU5ET01fTlVNQkVSIC0gSU5DTFVERURfTUlOX1JBTkRPTV9OVU1CRVIpXG4gICAgKyBJTkNMVURFRF9NSU5fUkFORE9NX05VTUJFUixcbik7XG5cbmNvbnN0IGZpbmRHQ0QgPSAoYSwgYikgPT4ge1xuICBpZiAoYSA9PT0gMCkgcmV0dXJuIGI7XG4gIGlmIChiID09PSAwKSByZXR1cm4gYTtcblxuICByZXR1cm4gYSA+PSBiID8gZmluZEdDRChhICUgYiwgYikgOiBmaW5kR0NEKGEsIGIgJSBhKTtcbn07XG5cbmNvbnN0IGdlbmVyYXRlUXVlc3Rpb24gPSAoKSA9PiB7XG4gIGNvbnN0IGZpcnN0TnVtYmVyID0gZ2VuZXJhdGVSYW5kb21OdW1iZXIoKTtcbiAgY29uc3Qgc2Vjb25kTnVtYmVyID0gZ2VuZXJhdGVSYW5kb21OdW1iZXIoKTtcbiAgcmV0dXJuIGAke2ZpcnN0TnVtYmVyfSAke3NlY29uZE51bWJlcn1gO1xufTtcblxuY29uc3QgZ2V0Q29ycmVjdEFuc3dlciA9IChxdWVzdGlvbikgPT4ge1xuICBjb25zdCBudW1iZXJzID0gcXVlc3Rpb24uc3BsaXQoJyAnKTtcbiAgcmV0dXJuIGZpbmRHQ0QoLi4ubnVtYmVycykudG9TdHJpbmcoKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHtcbiAgcnVuR2FtZShHQU1FX0RFU0NSSVBUSU9OLCBnZW5lcmF0ZVF1ZXN0aW9uLCBnZXRDb3JyZWN0QW5zd2VyKTtcbn07XG4iXX0=