UNPKG

littelbit-brain-games

Version:
60 lines (46 loc) 1.71 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _hexletPairs = require('hexlet-pairs'); var _gameFlow = require('../gameFlow'); var _gameFlow2 = _interopRequireDefault(_gameFlow); var _utils = require('../utils'); var _utils2 = _interopRequireDefault(_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 rule = 'Balance the given number.'; var rebuildArrNum = function rebuildArrNum(arr) { var max = arr[0]; var min = arr[0]; for (var i = 1; i < arr.length; i += 1) { if (max < arr[i]) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } } var newArr = [].slice.call(arr); newArr.splice(arr.indexOf(max), 1, arr[arr.indexOf(max)] - 1); newArr.splice(arr.indexOf(min), 1, arr[arr.indexOf(min)] + 1); return newArr; }; var isDiffMoreOne = function isDiffMoreOne(arr) { return Math.max.apply(Math, _toConsumableArray(arr)) - Math.min.apply(Math, _toConsumableArray(arr)) > 1; }; var getBalance = function getBalance(num) { var arrNum = num.toString().split('').map(Number); while (isDiffMoreOne(arrNum)) { arrNum = rebuildArrNum(arrNum); } return arrNum.sort().join(''); }; var getGameData = function getGameData() { var question = (0, _utils2.default)(1, 10000); var rightAnswer = getBalance(question); return (0, _hexletPairs.cons)(question, rightAnswer); }; exports.default = function () { return (0, _gameFlow2.default)(rule, getGameData); };