uladzislau97-brain-games
Version:
Set of console mini-games.
54 lines (41 loc) • 4.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _readlineSync = _interopRequireDefault(require("readline-sync"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const questionsMaxNumber = 3;
const askQuestion = (generateTask, questionNumber = 1) => {
if (questionNumber > questionsMaxNumber) {
return {
isVictory: true
};
}
const {
question,
correctAnswer
} = generateTask();
console.log(`Question: ${question}`);
const givenAnswer = _readlineSync.default.question('Your answer: ');
if (givenAnswer !== correctAnswer) {
return {
isVictory: false,
givenAnswer,
correctAnswer
};
}
console.log('Correct!');
return askQuestion(generateTask, questionNumber + 1);
};
var _default = (gameDescription, generateTask) => {
console.log('Welcome to the Brain Games!');
console.log(`${gameDescription}\n`);
const name = _readlineSync.default.question('May I have your name? ');
console.log(`Hello, ${name}!`);
const gameResult = askQuestion(generateTask);
const finalMessage = gameResult.isVictory ? `Congratulations, ${name}!` : `'${gameResult.givenAnswer}' is wrong answer ;(. Correct answer was '${gameResult.correctAnswer}'.`;
console.log(finalMessage);
};
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9nYW1lLWVuZ2luZS5qcyJdLCJuYW1lcyI6WyJxdWVzdGlvbnNNYXhOdW1iZXIiLCJhc2tRdWVzdGlvbiIsImdlbmVyYXRlVGFzayIsInF1ZXN0aW9uTnVtYmVyIiwiaXNWaWN0b3J5IiwicXVlc3Rpb24iLCJjb3JyZWN0QW5zd2VyIiwiY29uc29sZSIsImxvZyIsImdpdmVuQW5zd2VyIiwicmVhZGxpbmVTeW5jIiwiZ2FtZURlc2NyaXB0aW9uIiwibmFtZSIsImdhbWVSZXN1bHQiLCJmaW5hbE1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUVBLE1BQU1BLGtCQUFrQixHQUFHLENBQTNCOztBQUVBLE1BQU1DLFdBQVcsR0FBRyxDQUFDQyxZQUFELEVBQWVDLGNBQWMsR0FBRyxDQUFoQyxLQUFzQztBQUN4RCxNQUFJQSxjQUFjLEdBQUdILGtCQUFyQixFQUF5QztBQUN2QyxXQUFPO0FBQUVJLE1BQUFBLFNBQVMsRUFBRTtBQUFiLEtBQVA7QUFDRDs7QUFFRCxRQUFNO0FBQUVDLElBQUFBLFFBQUY7QUFBWUMsSUFBQUE7QUFBWixNQUE4QkosWUFBWSxFQUFoRDtBQUNBSyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBYSxhQUFZSCxRQUFTLEVBQWxDOztBQUNBLFFBQU1JLFdBQVcsR0FBR0Msc0JBQWFMLFFBQWIsQ0FBc0IsZUFBdEIsQ0FBcEI7O0FBRUEsTUFBSUksV0FBVyxLQUFLSCxhQUFwQixFQUFtQztBQUNqQyxXQUFPO0FBQUVGLE1BQUFBLFNBQVMsRUFBRSxLQUFiO0FBQW9CSyxNQUFBQSxXQUFwQjtBQUFpQ0gsTUFBQUE7QUFBakMsS0FBUDtBQUNEOztBQUVEQyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxVQUFaO0FBQ0EsU0FBT1AsV0FBVyxDQUFDQyxZQUFELEVBQWVDLGNBQWMsR0FBRyxDQUFoQyxDQUFsQjtBQUNELENBZkQ7O2VBaUJlLENBQUNRLGVBQUQsRUFBa0JULFlBQWxCLEtBQW1DO0FBQ2hESyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSw2QkFBWjtBQUNBRCxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBYSxHQUFFRyxlQUFnQixJQUEvQjs7QUFDQSxRQUFNQyxJQUFJLEdBQUdGLHNCQUFhTCxRQUFiLENBQXNCLHdCQUF0QixDQUFiOztBQUNBRSxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBYSxVQUFTSSxJQUFLLEdBQTNCO0FBQ0EsUUFBTUMsVUFBVSxHQUFHWixXQUFXLENBQUNDLFlBQUQsQ0FBOUI7QUFDQSxRQUFNWSxZQUFZLEdBQUdELFVBQVUsQ0FBQ1QsU0FBWCxHQUNoQixvQkFBbUJRLElBQUssR0FEUixHQUVoQixJQUFHQyxVQUFVLENBQUNKLFdBQVksNkNBQTRDSSxVQUFVLENBQUNQLGFBQWMsSUFGcEc7QUFHQUMsRUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVlNLFlBQVo7QUFDRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlYWRsaW5lU3luYyBmcm9tICdyZWFkbGluZS1zeW5jJztcblxuY29uc3QgcXVlc3Rpb25zTWF4TnVtYmVyID0gMztcblxuY29uc3QgYXNrUXVlc3Rpb24gPSAoZ2VuZXJhdGVUYXNrLCBxdWVzdGlvbk51bWJlciA9IDEpID0+IHtcbiAgaWYgKHF1ZXN0aW9uTnVtYmVyID4gcXVlc3Rpb25zTWF4TnVtYmVyKSB7XG4gICAgcmV0dXJuIHsgaXNWaWN0b3J5OiB0cnVlIH07XG4gIH1cblxuICBjb25zdCB7IHF1ZXN0aW9uLCBjb3JyZWN0QW5zd2VyIH0gPSBnZW5lcmF0ZVRhc2soKTtcbiAgY29uc29sZS5sb2coYFF1ZXN0aW9uOiAke3F1ZXN0aW9ufWApO1xuICBjb25zdCBnaXZlbkFuc3dlciA9IHJlYWRsaW5lU3luYy5xdWVzdGlvbignWW91ciBhbnN3ZXI6ICcpO1xuXG4gIGlmIChnaXZlbkFuc3dlciAhPT0gY29ycmVjdEFuc3dlcikge1xuICAgIHJldHVybiB7IGlzVmljdG9yeTogZmFsc2UsIGdpdmVuQW5zd2VyLCBjb3JyZWN0QW5zd2VyIH07XG4gIH1cblxuICBjb25zb2xlLmxvZygnQ29ycmVjdCEnKTtcbiAgcmV0dXJuIGFza1F1ZXN0aW9uKGdlbmVyYXRlVGFzaywgcXVlc3Rpb25OdW1iZXIgKyAxKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IChnYW1lRGVzY3JpcHRpb24sIGdlbmVyYXRlVGFzaykgPT4ge1xuICBjb25zb2xlLmxvZygnV2VsY29tZSB0byB0aGUgQnJhaW4gR2FtZXMhJyk7XG4gIGNvbnNvbGUubG9nKGAke2dhbWVEZXNjcmlwdGlvbn1cXG5gKTtcbiAgY29uc3QgbmFtZSA9IHJlYWRsaW5lU3luYy5xdWVzdGlvbignTWF5IEkgaGF2ZSB5b3VyIG5hbWU/ICcpO1xuICBjb25zb2xlLmxvZyhgSGVsbG8sICR7bmFtZX0hYCk7XG4gIGNvbnN0IGdhbWVSZXN1bHQgPSBhc2tRdWVzdGlvbihnZW5lcmF0ZVRhc2spO1xuICBjb25zdCBmaW5hbE1lc3NhZ2UgPSBnYW1lUmVzdWx0LmlzVmljdG9yeVxuICAgID8gYENvbmdyYXR1bGF0aW9ucywgJHtuYW1lfSFgXG4gICAgOiBgJyR7Z2FtZVJlc3VsdC5naXZlbkFuc3dlcn0nIGlzIHdyb25nIGFuc3dlciA7KC4gQ29ycmVjdCBhbnN3ZXIgd2FzICcke2dhbWVSZXN1bHQuY29ycmVjdEFuc3dlcn0nLmA7XG4gIGNvbnNvbGUubG9nKGZpbmFsTWVzc2FnZSk7XG59O1xuIl19