UNPKG

brain-games-mserov

Version:

[![Code Climate](https://api.codeclimate.com/v1/badges/edabc82c09506de9145f/maintainability)](https://codeclimate.com/github/mserov/project-lvl1-s192/maintainability) [![Build Status](https://travis-ci.org/mserov/project-lvl1-s192.svg?branch=master)](http

58 lines (39 loc) 4.92 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _hexletPairs = require('hexlet-pairs'); var _ = require('..'); var _2 = _interopRequireDefault(_); 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 game = function game() { var rules = 'Balance the given number.'; var generateQuestionAnswer = function generateQuestionAnswer() { var balance = function balance(num) { var digits = String(num).split(''); var max = Math.max.apply(Math, _toConsumableArray(digits)); var min = Math.min.apply(Math, _toConsumableArray(digits)); if (max - min <= 1) { var digitsRes = digits.sort(function (num1, num2) { return num1 - num2; }).join(''); return digitsRes; } var indOfMax = digits.indexOf(String(max)); var indOfMin = digits.indexOf(String(min)); digits[indOfMax] = max - 1; digits[indOfMin] = min + 1; var digitsNew = digits.join(''); return balance(Number(digitsNew)); }; var maxNum = 10000; var num = Math.floor(Math.random() * maxNum); var question = '' + num; var correctAnswer = String(balance(num)); return (0, _hexletPairs.cons)(question, correctAnswer); }; (0, _2.default)(rules, generateQuestionAnswer); }; exports.default = game; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nYW1lcy9icmFpbi1iYWxhbmNlLmpzIl0sIm5hbWVzIjpbImdhbWUiLCJydWxlcyIsImdlbmVyYXRlUXVlc3Rpb25BbnN3ZXIiLCJiYWxhbmNlIiwibnVtIiwiZGlnaXRzIiwiU3RyaW5nIiwic3BsaXQiLCJtYXgiLCJNYXRoIiwibWluIiwiZGlnaXRzUmVzIiwic29ydCIsIm51bTEiLCJudW0yIiwiam9pbiIsImluZE9mTWF4IiwiaW5kZXhPZiIsImluZE9mTWluIiwiZGlnaXRzTmV3IiwiTnVtYmVyIiwibWF4TnVtIiwiZmxvb3IiLCJyYW5kb20iLCJxdWVzdGlvbiIsImNvcnJlY3RBbnN3ZXIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOzs7Ozs7OztBQUVBLElBQU1BLE9BQU8sU0FBUEEsSUFBTyxHQUFNO0FBQ2pCLE1BQU1DLFFBQVEsMkJBQWQ7O0FBRUEsTUFBTUMseUJBQXlCLFNBQXpCQSxzQkFBeUIsR0FBTTtBQUNuQyxRQUFNQyxVQUFVLFNBQVZBLE9BQVUsQ0FBQ0MsR0FBRCxFQUFTO0FBQ3ZCLFVBQU1DLFNBQVNDLE9BQU9GLEdBQVAsRUFBWUcsS0FBWixDQUFrQixFQUFsQixDQUFmO0FBQ0EsVUFBTUMsTUFBTUMsS0FBS0QsR0FBTCxnQ0FBWUgsTUFBWixFQUFaO0FBQ0EsVUFBTUssTUFBTUQsS0FBS0MsR0FBTCxnQ0FBWUwsTUFBWixFQUFaOztBQUVBLFVBQUlHLE1BQU1FLEdBQU4sSUFBYSxDQUFqQixFQUFvQjtBQUNsQixZQUFNQyxZQUFZTixPQUFPTyxJQUFQLENBQVksVUFBQ0MsSUFBRCxFQUFPQyxJQUFQO0FBQUEsaUJBQWdCRCxPQUFPQyxJQUF2QjtBQUFBLFNBQVosRUFBeUNDLElBQXpDLENBQThDLEVBQTlDLENBQWxCOztBQUVBLGVBQU9KLFNBQVA7QUFDRDs7QUFFRCxVQUFNSyxXQUFXWCxPQUFPWSxPQUFQLENBQWVYLE9BQU9FLEdBQVAsQ0FBZixDQUFqQjtBQUNBLFVBQU1VLFdBQVdiLE9BQU9ZLE9BQVAsQ0FBZVgsT0FBT0ksR0FBUCxDQUFmLENBQWpCO0FBQ0FMLGFBQU9XLFFBQVAsSUFBbUJSLE1BQU0sQ0FBekI7QUFDQUgsYUFBT2EsUUFBUCxJQUFtQlIsTUFBTSxDQUF6Qjs7QUFFQSxVQUFNUyxZQUFZZCxPQUFPVSxJQUFQLENBQVksRUFBWixDQUFsQjs7QUFFQSxhQUFPWixRQUFRaUIsT0FBT0QsU0FBUCxDQUFSLENBQVA7QUFDRCxLQW5CRDs7QUFxQkEsUUFBTUUsU0FBUyxLQUFmOztBQUVBLFFBQU1qQixNQUFNSyxLQUFLYSxLQUFMLENBQVdiLEtBQUtjLE1BQUwsS0FBZ0JGLE1BQTNCLENBQVo7O0FBRUEsUUFBTUcsZ0JBQWNwQixHQUFwQjtBQUNBLFFBQU1xQixnQkFBZ0JuQixPQUFPSCxRQUFRQyxHQUFSLENBQVAsQ0FBdEI7O0FBRUEsV0FBTyx1QkFBS29CLFFBQUwsRUFBZUMsYUFBZixDQUFQO0FBQ0QsR0E5QkQ7O0FBZ0NBLGtCQUFPeEIsS0FBUCxFQUFjQyxzQkFBZDtBQUNELENBcENEOztrQkFzQ2VGLEkiLCJmaWxlIjoiYnJhaW4tYmFsYW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnMgfSBmcm9tICdoZXhsZXQtcGFpcnMnO1xuaW1wb3J0IGVuZ2luZSBmcm9tICcuLic7XG5cbmNvbnN0IGdhbWUgPSAoKSA9PiB7XG4gIGNvbnN0IHJ1bGVzID0gJ0JhbGFuY2UgdGhlIGdpdmVuIG51bWJlci4nO1xuXG4gIGNvbnN0IGdlbmVyYXRlUXVlc3Rpb25BbnN3ZXIgPSAoKSA9PiB7XG4gICAgY29uc3QgYmFsYW5jZSA9IChudW0pID0+IHtcbiAgICAgIGNvbnN0IGRpZ2l0cyA9IFN0cmluZyhudW0pLnNwbGl0KCcnKTtcbiAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KC4uLmRpZ2l0cyk7XG4gICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbiguLi5kaWdpdHMpO1xuXG4gICAgICBpZiAobWF4IC0gbWluIDw9IDEpIHtcbiAgICAgICAgY29uc3QgZGlnaXRzUmVzID0gZGlnaXRzLnNvcnQoKG51bTEsIG51bTIpID0+IG51bTEgLSBudW0yKS5qb2luKCcnKTtcblxuICAgICAgICByZXR1cm4gZGlnaXRzUmVzO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbmRPZk1heCA9IGRpZ2l0cy5pbmRleE9mKFN0cmluZyhtYXgpKTtcbiAgICAgIGNvbnN0IGluZE9mTWluID0gZGlnaXRzLmluZGV4T2YoU3RyaW5nKG1pbikpO1xuICAgICAgZGlnaXRzW2luZE9mTWF4XSA9IG1heCAtIDE7XG4gICAgICBkaWdpdHNbaW5kT2ZNaW5dID0gbWluICsgMTtcblxuICAgICAgY29uc3QgZGlnaXRzTmV3ID0gZGlnaXRzLmpvaW4oJycpO1xuXG4gICAgICByZXR1cm4gYmFsYW5jZShOdW1iZXIoZGlnaXRzTmV3KSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG1heE51bSA9IDEwMDAwO1xuXG4gICAgY29uc3QgbnVtID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbWF4TnVtKTtcblxuICAgIGNvbnN0IHF1ZXN0aW9uID0gYCR7bnVtfWA7XG4gICAgY29uc3QgY29ycmVjdEFuc3dlciA9IFN0cmluZyhiYWxhbmNlKG51bSkpO1xuXG4gICAgcmV0dXJuIGNvbnMocXVlc3Rpb24sIGNvcnJlY3RBbnN3ZXIpO1xuICB9O1xuXG4gIGVuZ2luZShydWxlcywgZ2VuZXJhdGVRdWVzdGlvbkFuc3dlcik7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBnYW1lO1xuIl19