uladzislau97-brain-games
Version:
Set of console mini-games.
74 lines (53 loc) • 7.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _readlineSync = _interopRequireDefault(require("readline-sync"));
var _ = require(".");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const QUESTIONS_MAX_NUMBER = 3;
const MIN_RANDOM_NUMBER = 1;
const MAX_RANDOM_NUMBER = 100;
const displayBrainEvenInitialGreeting = () => {
(0, _.displayInitialGreeting)();
console.log('Answer "yes" if number even otherwise answer "no".');
(0, _.moveToNewLine)();
};
const displayBrainEvenGreeting = name => {
(0, _.displayGreeting)(name);
(0, _.moveToNewLine)();
};
const displayCongratulations = name => console.log(`Congratulations, ${name}!`);
const generateRandomNumber = () => Math.floor(Math.random() * (MAX_RANDOM_NUMBER - MIN_RANDOM_NUMBER) + MIN_RANDOM_NUMBER);
const displayQuestion = number => console.log(`Question: ${number}`);
const askForAnswer = () => _readlineSync.default.question('Your answer: ');
const isEven = number => number % 2 === 0;
const isAnswerCorrect = (answer, number) => isEven(number) && answer === 'yes' || !isEven(number) && answer === 'no';
const displayCorrectMessage = () => console.log('Correct!');
const displayIncorrectMessage = (givenAnswer, correctAnswer) => console.log(`'${givenAnswer}' is wrong answer ;(. Correct answer was '${correctAnswer}'.`);
const askQuestion = (playerName, questionNumber = 1) => {
if (questionNumber > QUESTIONS_MAX_NUMBER) {
displayCongratulations(playerName);
return;
}
const number = generateRandomNumber();
displayQuestion(number);
const answer = askForAnswer();
if (isAnswerCorrect(answer, number)) {
displayCorrectMessage();
askQuestion(playerName, questionNumber + 1);
return;
}
const correctAnswer = isEven(number) ? 'yes' : 'no';
displayIncorrectMessage(answer, correctAnswer);
};
var _default = () => {
displayBrainEvenInitialGreeting();
const name = (0, _.askName)();
const firstQuestionNumber = 1;
displayBrainEvenGreeting(name);
askQuestion(name, firstQuestionNumber);
};
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9icmFpbi1ldmVuLmpzIl0sIm5hbWVzIjpbIlFVRVNUSU9OU19NQVhfTlVNQkVSIiwiTUlOX1JBTkRPTV9OVU1CRVIiLCJNQVhfUkFORE9NX05VTUJFUiIsImRpc3BsYXlCcmFpbkV2ZW5Jbml0aWFsR3JlZXRpbmciLCJjb25zb2xlIiwibG9nIiwiZGlzcGxheUJyYWluRXZlbkdyZWV0aW5nIiwibmFtZSIsImRpc3BsYXlDb25ncmF0dWxhdGlvbnMiLCJnZW5lcmF0ZVJhbmRvbU51bWJlciIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsImRpc3BsYXlRdWVzdGlvbiIsIm51bWJlciIsImFza0ZvckFuc3dlciIsInJlYWRsaW5lU3luYyIsInF1ZXN0aW9uIiwiaXNFdmVuIiwiaXNBbnN3ZXJDb3JyZWN0IiwiYW5zd2VyIiwiZGlzcGxheUNvcnJlY3RNZXNzYWdlIiwiZGlzcGxheUluY29ycmVjdE1lc3NhZ2UiLCJnaXZlbkFuc3dlciIsImNvcnJlY3RBbnN3ZXIiLCJhc2tRdWVzdGlvbiIsInBsYXllck5hbWUiLCJxdWVzdGlvbk51bWJlciIsImZpcnN0UXVlc3Rpb25OdW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7OztBQU9BLE1BQU1BLG9CQUFvQixHQUFHLENBQTdCO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUcsQ0FBMUI7QUFDQSxNQUFNQyxpQkFBaUIsR0FBRyxHQUExQjs7QUFFQSxNQUFNQywrQkFBK0IsR0FBRyxNQUFNO0FBQzVDO0FBQ0FDLEVBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLG9EQUFaO0FBQ0E7QUFDRCxDQUpEOztBQU1BLE1BQU1DLHdCQUF3QixHQUFJQyxJQUFELElBQVU7QUFDekMseUJBQWdCQSxJQUFoQjtBQUNBO0FBQ0QsQ0FIRDs7QUFLQSxNQUFNQyxzQkFBc0IsR0FBR0QsSUFBSSxJQUFJSCxPQUFPLENBQUNDLEdBQVIsQ0FBYSxvQkFBbUJFLElBQUssR0FBckMsQ0FBdkM7O0FBRUEsTUFBTUUsb0JBQW9CLEdBQUcsTUFBTUMsSUFBSSxDQUFDQyxLQUFMLENBQ2pDRCxJQUFJLENBQUNFLE1BQUwsTUFBaUJWLGlCQUFpQixHQUFHRCxpQkFBckMsSUFBMERBLGlCQUR6QixDQUFuQzs7QUFJQSxNQUFNWSxlQUFlLEdBQUdDLE1BQU0sSUFBSVYsT0FBTyxDQUFDQyxHQUFSLENBQWEsYUFBWVMsTUFBTyxFQUFoQyxDQUFsQzs7QUFFQSxNQUFNQyxZQUFZLEdBQUcsTUFBTUMsc0JBQWFDLFFBQWIsQ0FBc0IsZUFBdEIsQ0FBM0I7O0FBRUEsTUFBTUMsTUFBTSxHQUFHSixNQUFNLElBQUlBLE1BQU0sR0FBRyxDQUFULEtBQWUsQ0FBeEM7O0FBRUEsTUFBTUssZUFBZSxHQUFHLENBQUNDLE1BQUQsRUFBU04sTUFBVCxLQUFxQkksTUFBTSxDQUFDSixNQUFELENBQU4sSUFDeENNLE1BQU0sS0FBSyxLQUQ0QixJQUNqQixDQUFDRixNQUFNLENBQUNKLE1BQUQsQ0FBUCxJQUFtQk0sTUFBTSxLQUFLLElBRHpEOztBQUdBLE1BQU1DLHFCQUFxQixHQUFHLE1BQU1qQixPQUFPLENBQUNDLEdBQVIsQ0FBWSxVQUFaLENBQXBDOztBQUVBLE1BQU1pQix1QkFBdUIsR0FBRyxDQUFDQyxXQUFELEVBQWNDLGFBQWQsS0FBZ0NwQixPQUFPLENBQUNDLEdBQVIsQ0FDN0QsSUFBR2tCLFdBQVksNkNBQTRDQyxhQUFjLElBRFosQ0FBaEU7O0FBSUEsTUFBTUMsV0FBVyxHQUFHLENBQUNDLFVBQUQsRUFBYUMsY0FBYyxHQUFHLENBQTlCLEtBQW9DO0FBQ3RELE1BQUlBLGNBQWMsR0FBRzNCLG9CQUFyQixFQUEyQztBQUN6Q1EsSUFBQUEsc0JBQXNCLENBQUNrQixVQUFELENBQXRCO0FBQ0E7QUFDRDs7QUFFRCxRQUFNWixNQUFNLEdBQUdMLG9CQUFvQixFQUFuQztBQUNBSSxFQUFBQSxlQUFlLENBQUNDLE1BQUQsQ0FBZjtBQUNBLFFBQU1NLE1BQU0sR0FBR0wsWUFBWSxFQUEzQjs7QUFFQSxNQUFJSSxlQUFlLENBQUNDLE1BQUQsRUFBU04sTUFBVCxDQUFuQixFQUFxQztBQUNuQ08sSUFBQUEscUJBQXFCO0FBQ3JCSSxJQUFBQSxXQUFXLENBQUNDLFVBQUQsRUFBYUMsY0FBYyxHQUFHLENBQTlCLENBQVg7QUFDQTtBQUNEOztBQUVELFFBQU1ILGFBQWEsR0FBR04sTUFBTSxDQUFDSixNQUFELENBQU4sR0FBaUIsS0FBakIsR0FBeUIsSUFBL0M7QUFDQVEsRUFBQUEsdUJBQXVCLENBQUNGLE1BQUQsRUFBU0ksYUFBVCxDQUF2QjtBQUNELENBbEJEOztlQW9CZSxNQUFNO0FBQ25CckIsRUFBQUEsK0JBQStCO0FBQy9CLFFBQU1JLElBQUksR0FBRyxnQkFBYjtBQUNBLFFBQU1xQixtQkFBbUIsR0FBRyxDQUE1QjtBQUNBdEIsRUFBQUEsd0JBQXdCLENBQUNDLElBQUQsQ0FBeEI7QUFDQWtCLEVBQUFBLFdBQVcsQ0FBQ2xCLElBQUQsRUFBT3FCLG1CQUFQLENBQVg7QUFDRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlYWRsaW5lU3luYyBmcm9tICdyZWFkbGluZS1zeW5jJztcbmltcG9ydCB7XG4gIGRpc3BsYXlJbml0aWFsR3JlZXRpbmcsXG4gIGFza05hbWUsXG4gIGRpc3BsYXlHcmVldGluZyxcbiAgbW92ZVRvTmV3TGluZSxcbn0gZnJvbSAnLic7XG5cbmNvbnN0IFFVRVNUSU9OU19NQVhfTlVNQkVSID0gMztcbmNvbnN0IE1JTl9SQU5ET01fTlVNQkVSID0gMTtcbmNvbnN0IE1BWF9SQU5ET01fTlVNQkVSID0gMTAwO1xuXG5jb25zdCBkaXNwbGF5QnJhaW5FdmVuSW5pdGlhbEdyZWV0aW5nID0gKCkgPT4ge1xuICBkaXNwbGF5SW5pdGlhbEdyZWV0aW5nKCk7XG4gIGNvbnNvbGUubG9nKCdBbnN3ZXIgXCJ5ZXNcIiBpZiBudW1iZXIgZXZlbiBvdGhlcndpc2UgYW5zd2VyIFwibm9cIi4nKTtcbiAgbW92ZVRvTmV3TGluZSgpO1xufTtcblxuY29uc3QgZGlzcGxheUJyYWluRXZlbkdyZWV0aW5nID0gKG5hbWUpID0+IHtcbiAgZGlzcGxheUdyZWV0aW5nKG5hbWUpO1xuICBtb3ZlVG9OZXdMaW5lKCk7XG59O1xuXG5jb25zdCBkaXNwbGF5Q29uZ3JhdHVsYXRpb25zID0gbmFtZSA9PiBjb25zb2xlLmxvZyhgQ29uZ3JhdHVsYXRpb25zLCAke25hbWV9IWApO1xuXG5jb25zdCBnZW5lcmF0ZVJhbmRvbU51bWJlciA9ICgpID0+IE1hdGguZmxvb3IoXG4gIE1hdGgucmFuZG9tKCkgKiAoTUFYX1JBTkRPTV9OVU1CRVIgLSBNSU5fUkFORE9NX05VTUJFUikgKyBNSU5fUkFORE9NX05VTUJFUixcbik7XG5cbmNvbnN0IGRpc3BsYXlRdWVzdGlvbiA9IG51bWJlciA9PiBjb25zb2xlLmxvZyhgUXVlc3Rpb246ICR7bnVtYmVyfWApO1xuXG5jb25zdCBhc2tGb3JBbnN3ZXIgPSAoKSA9PiByZWFkbGluZVN5bmMucXVlc3Rpb24oJ1lvdXIgYW5zd2VyOiAnKTtcblxuY29uc3QgaXNFdmVuID0gbnVtYmVyID0+IG51bWJlciAlIDIgPT09IDA7XG5cbmNvbnN0IGlzQW5zd2VyQ29ycmVjdCA9IChhbnN3ZXIsIG51bWJlcikgPT4gKGlzRXZlbihudW1iZXIpXG4gICYmIGFuc3dlciA9PT0gJ3llcycpIHx8ICghaXNFdmVuKG51bWJlcikgJiYgYW5zd2VyID09PSAnbm8nKTtcblxuY29uc3QgZGlzcGxheUNvcnJlY3RNZXNzYWdlID0gKCkgPT4gY29uc29sZS5sb2coJ0NvcnJlY3QhJyk7XG5cbmNvbnN0IGRpc3BsYXlJbmNvcnJlY3RNZXNzYWdlID0gKGdpdmVuQW5zd2VyLCBjb3JyZWN0QW5zd2VyKSA9PiBjb25zb2xlLmxvZyhcbiAgYCcke2dpdmVuQW5zd2VyfScgaXMgd3JvbmcgYW5zd2VyIDsoLiBDb3JyZWN0IGFuc3dlciB3YXMgJyR7Y29ycmVjdEFuc3dlcn0nLmAsXG4pO1xuXG5jb25zdCBhc2tRdWVzdGlvbiA9IChwbGF5ZXJOYW1lLCBxdWVzdGlvbk51bWJlciA9IDEpID0+IHtcbiAgaWYgKHF1ZXN0aW9uTnVtYmVyID4gUVVFU1RJT05TX01BWF9OVU1CRVIpIHtcbiAgICBkaXNwbGF5Q29uZ3JhdHVsYXRpb25zKHBsYXllck5hbWUpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG51bWJlciA9IGdlbmVyYXRlUmFuZG9tTnVtYmVyKCk7XG4gIGRpc3BsYXlRdWVzdGlvbihudW1iZXIpO1xuICBjb25zdCBhbnN3ZXIgPSBhc2tGb3JBbnN3ZXIoKTtcblxuICBpZiAoaXNBbnN3ZXJDb3JyZWN0KGFuc3dlciwgbnVtYmVyKSkge1xuICAgIGRpc3BsYXlDb3JyZWN0TWVzc2FnZSgpO1xuICAgIGFza1F1ZXN0aW9uKHBsYXllck5hbWUsIHF1ZXN0aW9uTnVtYmVyICsgMSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29ycmVjdEFuc3dlciA9IGlzRXZlbihudW1iZXIpID8gJ3llcycgOiAnbm8nO1xuICBkaXNwbGF5SW5jb3JyZWN0TWVzc2FnZShhbnN3ZXIsIGNvcnJlY3RBbnN3ZXIpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKCkgPT4ge1xuICBkaXNwbGF5QnJhaW5FdmVuSW5pdGlhbEdyZWV0aW5nKCk7XG4gIGNvbnN0IG5hbWUgPSBhc2tOYW1lKCk7XG4gIGNvbnN0IGZpcnN0UXVlc3Rpb25OdW1iZXIgPSAxO1xuICBkaXNwbGF5QnJhaW5FdmVuR3JlZXRpbmcobmFtZSk7XG4gIGFza1F1ZXN0aW9uKG5hbWUsIGZpcnN0UXVlc3Rpb25OdW1iZXIpO1xufTtcbiJdfQ==