Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.04.2019, 22:08
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 113

Как сделать вопрос ответ в readline
Мне нужно реализовать код который сможет задавать вопрос пользователю, а пользователь сможет на него ответить и таких вопросов должно быть несколько штук.

Вот что получилось, но сам счётчик работает неправильно, не знаю как записать конец вопроса.

Помогите решить проблему.


const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
// Предметная область
// Основы CSS  
const questions = [
    'Многоцелевое свойство, которое определяет, как элемент должен быть показан в документе, называется?',
    'Свойство которое, устанавливает способ позиционирования элемента относительно окна браузера или других объектов на веб-странице, называется?',
    'Свойство которое, определяет цвет текста элемента, называется?',
    'Свойство которое, устанавливает величину отступа от каждого края элемента, называется?',
    'Свойство, предназначенное для отображения или скрытия элемента, включая рамку вокруг него и фон, называется?'
];

let scoreW = 0,
    scoreL = 0;


console.log(
 `Тестировщик знаний.
  Тема: Основы CSS.`
);
readline.clearLine()


rl.question('Для старта нажмите Enter', () => {
    console.clear();
});



rl.question(questions[0], (say) => {
    say == 'display' || say == 'Display' ? scoreW++ : scoreL++;
    console.clear();

});

rl.question(questions[1], (say) => {
    say == 'position' || say == 'Position' ? scoreW++ : scoreL++;
    console.clear();
    console.log(
        `Правильные ответы:${scoreW} Неправильные ответы:${scoreL}`
    );
});
Ответить с цитированием
  #2 (permalink)  
Старый 28.04.2019, 10:35
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Кхе-кхе...
const readline = require('readline');
	 
const rl = readline.createInterface({
		input: process.stdin,
		output: process.stdout
});
// Предметная область
// Основы CSS 
const questions = [
		'Многоцелевое свойство, которое определяет, как элемент должен быть показан в документе, называется?',
		'Свойство которое, устанавливает способ позиционирования элемента относительно окна браузера или других объектов на веб-странице, называется?',
		'Свойство которое, определяет цвет текста элемента, называется?',
		'Свойство которое, устанавливает величину отступа от каждого края элемента, называется?',
		'Свойство, предназначенное для отображения или скрытия элемента, включая рамку вокруг него и фон, называется?'
];
 
let scoreW = 0,
		scoreL = 0;
console.log(
 `Тестировщик знаний.
	Тема: Основы CSS.`
);

rl.on('close', function() {
	console.log(`Правильные ответы:${scoreW} Неправильные ответы:${scoreL}`);
});

rl.question('Для старта нажмите Enter', () => {
	
	rl.question(questions[0], say => {
		say == 'display' || say == 'Display' ? scoreW++ : scoreL++;

		rl.question(questions[1], say => {
			say == 'display' || say == 'Display' ? scoreW++ : scoreL++;

			rl.question(questions[2], say => {
				say == 'display' || say == 'Display' ? scoreW++ : scoreL++;

				rl.question(questions[3], say => {
					say == 'display' || say == 'Display' ? scoreW++ : scoreL++;

					rl.question(questions[4], say => {
						say == 'display' || say == 'Display' ? scoreW++ : scoreL++;
						rl.close();
					});
				});
			});
		});
	});
});


Ну, или...
const readline = require('readline');
	 
const rl = readline.createInterface({
		input: process.stdin,
		output: process.stdout
});
// Предметная область
// Основы CSS 
const questions = [
		'Многоцелевое свойство, которое определяет, как элемент должен быть показан в документе, называется?',
		'Свойство которое, устанавливает способ позиционирования элемента относительно окна браузера или других объектов на веб-странице, называется?',
		'Свойство которое, определяет цвет текста элемента, называется?',
		'Свойство которое, устанавливает величину отступа от каждого края элемента, называется?',
		'Свойство, предназначенное для отображения или скрытия элемента, включая рамку вокруг него и фон, называется?'
];
var answers = ['display', 'dfdf', 'dfdf', 'dfdf', 'dfdf'];
 
let scoreW = 0,
		scoreL = 0;
console.log(
 `Тестировщик знаний.
	Тема: Основы CSS.`
);

rl.on('close', function() {
	console.log(`Правильные ответы:${scoreW} Неправильные ответы:${scoreL}`);
});

goQuest();

async function goQuest() {
	for(var i=0; i<questions.length; i++) {
		var res = await foo(questions[i], answers[i]);
		if(res == 1) scoreW++;
		else scoreL++;
	}
	rl.close();
}

function foo(q, a) {
	return new Promise( function(resolve, reject) {
		rl.question(q, say => {
			say.toLowerCase() == a ? resolve(1) : resolve(0);
		});
	});
}

Последний раз редактировалось Audaxviator, 28.04.2019 в 11:45.
Ответить с цитированием
  #3 (permalink)  
Старый 28.04.2019, 16:11
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 113

Я просто пока это писал, думал о прелестном паскале, который позволяет делать это в разы легче)
Мне понравился вариант с матрёшкой, спасибо большое!
Ответить с цитированием
  #4 (permalink)  
Старый 28.04.2019, 16:36
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Вот так всегда. Хочешь как лучше, а нравится - что похуже.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что бы картинки с другого url отображались как свои zlodey Серверные языки и технологии 1 04.05.2015 21:30
Почему ошибка при статусе 200, или как сформировать ответ? [NodeJS&AJAX] blacklool AJAX и COMET 2 10.03.2015 21:36
Как сделать такую страницу mortido Элементы интерфейса 11 02.10.2014 07:20
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24