|
@@ -0,0 +1,464 @@
|
|
|
+//switch: sizes
|
|
|
+//Сделайте задание Comparison: sizes из предыдущего ДЗ используя switch
|
|
|
+
|
|
|
+const changeSystem = () => {
|
|
|
+ const value = prompt(
|
|
|
+ 'write down size of jeans in measure USA from 6 to 16',
|
|
|
+ ''
|
|
|
+ );
|
|
|
+ if (value.trim() === '') return changeSystem();
|
|
|
+ let usaSystemToRussian;
|
|
|
+ switch (Number(value)) {
|
|
|
+ case 6:
|
|
|
+ usaSystemToRussian = 40;
|
|
|
+ break;
|
|
|
+ case 8:
|
|
|
+ usaSystemToRussian = 42;
|
|
|
+ break;
|
|
|
+ case 10:
|
|
|
+ usaSystemToRussian = 44;
|
|
|
+ break;
|
|
|
+ case 12:
|
|
|
+ usaSystemToRussian = 46;
|
|
|
+ break;
|
|
|
+ case 14:
|
|
|
+ usaSystemToRussian = 48;
|
|
|
+ break;
|
|
|
+ case 16:
|
|
|
+ usaSystemToRussian = 50;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ usaSystemToRussian = null;
|
|
|
+ }
|
|
|
+ usaSystemToRussian
|
|
|
+ ? alert(`size in Ukraine equal to ${usaSystemToRussian}`)
|
|
|
+ : changeSystem();
|
|
|
+};
|
|
|
+
|
|
|
+//switch: if
|
|
|
+//Перепишите пример ниже, используя if.
|
|
|
+// let color = prompt('Введите цвет', '');
|
|
|
+// switch (color) {
|
|
|
+// case 'red':
|
|
|
+// document.write("<div style='background-color: red;'>красный</div>");
|
|
|
+// case 'black':
|
|
|
+// document.write(
|
|
|
+// "<div style='background-color: black; color: white;'>черный</div>"
|
|
|
+// );
|
|
|
+// break;
|
|
|
+// case 'blue':
|
|
|
+// document.write("<div style='background-color: blue;'>синий</div>");
|
|
|
+// case 'green':
|
|
|
+// document.write("<div style='background-color: green;'>зеленый</div>");
|
|
|
+// break;
|
|
|
+// default:
|
|
|
+// document.write("<div style='background-color: gray;'>Я не понял</div>");
|
|
|
+// }
|
|
|
+
|
|
|
+const switchIf = () => {
|
|
|
+ let color = prompt('Введите цвет', '');
|
|
|
+ if (color === 'red') {
|
|
|
+ document.write("<div style='background-color: red;'>красный</div>");
|
|
|
+ } else if (color === 'black') {
|
|
|
+ document.write(
|
|
|
+ "<div style='background-color: black; color: white;'>черный</div>"
|
|
|
+ );
|
|
|
+ } else if (color === 'blue') {
|
|
|
+ document.write("<div style='background-color: blue;'>синий</div>");
|
|
|
+ } else if (color === 'green') {
|
|
|
+ document.write("<div style='background-color: gray;'>Я не понял</div>");
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+//prompt: or
|
|
|
+//Для задания Number: age используя ИЛИ || вывести сообщение об ошибке (alert)
|
|
|
+//если пользователь не введет возраст или нажмет отмену
|
|
|
+//(т.е.prompt выдаст пустую строку или null, интерпретируемую как false).
|
|
|
+
|
|
|
+const age = (message) => {
|
|
|
+ const value = prompt(`How old are you ${message}`);
|
|
|
+ if (value === null || value.trim() === '') return;
|
|
|
+ Number(value)
|
|
|
+ ? alert(`you was born in ${new Date().getFullYear() - value}`)
|
|
|
+ : age('? Please file field!!!');
|
|
|
+};
|
|
|
+
|
|
|
+//confirm: or this days
|
|
|
+//C помощью этого же трюка сделайте капризного робота, который в confirm
|
|
|
+//спрашивает "шопинг?", а в случае отказа - выводить alert "ты - бяка".
|
|
|
+
|
|
|
+const robotConfirm = () => {
|
|
|
+ const value = confirm(`Do you wanna shop?`);
|
|
|
+ switch (value) {
|
|
|
+ case false:
|
|
|
+ alert(`Are you coddled girl!!!`);
|
|
|
+ break;
|
|
|
+ case true:
|
|
|
+ alert(`Keep going daddy!!!`);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ console.log(`whoops`);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+//confirm: if this days
|
|
|
+//Сделать тоже самое с помощью if.
|
|
|
+
|
|
|
+const robotConfirmIf = () => {
|
|
|
+ const value = confirm(`Do you wanna shop?`);
|
|
|
+ if (value === false) {
|
|
|
+ alert(`are you coddled girl!!!`);
|
|
|
+ } else {
|
|
|
+ alert(`Keep going`);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+//triple prompt
|
|
|
+//Трижды вызывать prompt, сохранить в переменные фамилию,
|
|
|
+//имя и отчество.Вывести ФИО c помощью alert.
|
|
|
+
|
|
|
+const triplePrompt = () => {
|
|
|
+ const secondName = prompt('Write down your second name please');
|
|
|
+ const firstName = prompt('write down your first name please');
|
|
|
+ const patronymic = prompt('write down your patronymic please');
|
|
|
+ if (!secondName || !firstName || !patronymic) return triplePrompt();
|
|
|
+ alert(`${secondName} ${firstName} ${patronymic}`);
|
|
|
+};
|
|
|
+
|
|
|
+//default: or
|
|
|
+//Используя ИЛИ || добавьте имена по умолчанию, которые будут сохраняться во
|
|
|
+//внутренних переменных если пользователь ввел пустую строку или нажал
|
|
|
+//"Отмена".Например, если вы на шаге ввода Фамилии нажмете Escape, фамилия будет "Иванов"
|
|
|
+
|
|
|
+const triplePromptOr = () => {
|
|
|
+ const secondName = prompt('Write down your second name please') || 'Golovko';
|
|
|
+ const firstName = prompt('write down your first name please') || 'Svetlana';
|
|
|
+ const patronymic =
|
|
|
+ prompt('write down your patronymic please') || 'Fedorovna';
|
|
|
+ alert(`${secondName} ${firstName} ${patronymic}`);
|
|
|
+};
|
|
|
+
|
|
|
+//default: if
|
|
|
+//Сделайте тоже самое с помощью if и else
|
|
|
+
|
|
|
+const triplePromptIf = () => {
|
|
|
+ const secondName = prompt('Write down your second name please');
|
|
|
+ const firstName = prompt('write down your first name please');
|
|
|
+ const patronymic = prompt('write down your patronymic please');
|
|
|
+ if ((secondName, firstName, patronymic)) {
|
|
|
+ alert(`${secondName} ${firstName} ${patronymic}`);
|
|
|
+ } else {
|
|
|
+ alert('Zubenko Vladimir Viktorovich');
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+//login and password
|
|
|
+//Напишите код, который спрашивает логин, проверяет его на верность,
|
|
|
+//в случае если логин верен, просит ввести пароль и проверяет его.В случае
|
|
|
+//несовпадения логина или пароля выводить alert с текстом ошибки.
|
|
|
+//В случае успешного логина - alert с поздравлением.Правильные логин: admin и пароль: qwerty.Используйте вложенные if и else.
|
|
|
+
|
|
|
+const LogIn = () => {
|
|
|
+ const rightCredentials = {
|
|
|
+ login: 'Yaho',
|
|
|
+ password: 'Qwerty',
|
|
|
+ };
|
|
|
+ const login = prompt('Write down your login please', '');
|
|
|
+ const password = prompt('Write down your password please', '');
|
|
|
+ if (
|
|
|
+ login === rightCredentials.login &&
|
|
|
+ password === rightCredentials.password
|
|
|
+ ) {
|
|
|
+ alert('Well done you are loged!');
|
|
|
+ } else {
|
|
|
+ alert('Wrong credentials');
|
|
|
+ LogIn();
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+//currency calc
|
|
|
+//Калькулятор обмена валют. Первый prompt спрашивает валюту:
|
|
|
+//"usd" или "eur".С помощью switch установите обменный курс для валюты,
|
|
|
+//выбранной пользователем, после чего спросите величину
|
|
|
+//и переведите её из гривны в выбранную на первом prompt валюту.Выведите результат в alert()
|
|
|
+
|
|
|
+const currencyCalc = () => {
|
|
|
+ let currency = prompt('Choose currency "usd" or "eur"');
|
|
|
+ switch (currency) {
|
|
|
+ case 'usd':
|
|
|
+ 27;
|
|
|
+ currency = 27;
|
|
|
+ break;
|
|
|
+ case 'eur':
|
|
|
+ 33;
|
|
|
+ currency = 33;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ null;
|
|
|
+ }
|
|
|
+
|
|
|
+ const amountInGrn = prompt('Write down amount in grivnas', '');
|
|
|
+ console.log(Number(amountInGrn), currency);
|
|
|
+ Number(amountInGrn) && currency
|
|
|
+ ? alert(`It will be ${Number(amountInGrn) / currency}`)
|
|
|
+ : currencyCalc();
|
|
|
+};
|
|
|
+
|
|
|
+//currency calc: improved
|
|
|
+//Улучшить предыдущее задание: сделать возможность ввода валюты
|
|
|
+//любыми буквами(usd, uSd, USD), используйте str.toLowerCase().
|
|
|
+
|
|
|
+const currencyCalcImprowed = () => {
|
|
|
+ let currency = prompt('Choose currency "usd" or "eur"');
|
|
|
+ switch (currency.toLowerCase()) {
|
|
|
+ case 'usd':
|
|
|
+ 27;
|
|
|
+ currency = 27;
|
|
|
+ break;
|
|
|
+ case 'eur':
|
|
|
+ 33;
|
|
|
+ currency = 33;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ null;
|
|
|
+ }
|
|
|
+
|
|
|
+ const amountInGrn = prompt('Write down amount in grivnas', '');
|
|
|
+ console.log(Number(amountInGrn), currency);
|
|
|
+ Number(amountInGrn) && currency
|
|
|
+ ? alert(`It will be ${Number(amountInGrn) / currency}`)
|
|
|
+ : currencyCalcImprowed();
|
|
|
+};
|
|
|
+
|
|
|
+//currency calc: two rates
|
|
|
+//Добавить к возможность выбора обменного курса на продажу и покупку.
|
|
|
+//Используйте confirm для ввода пользователя и тернарный оператор для величины курса.
|
|
|
+
|
|
|
+const currencyCalcTwoRates = () => {
|
|
|
+ const value = prompt('Choose currency "usd" or "eur"');
|
|
|
+ let currency;
|
|
|
+ switch (value.toLowerCase()) {
|
|
|
+ case 'usd':
|
|
|
+ 27;
|
|
|
+ currency = 27;
|
|
|
+ break;
|
|
|
+ case 'eur':
|
|
|
+ 33;
|
|
|
+ currency = 33;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ null;
|
|
|
+ }
|
|
|
+
|
|
|
+ const amountInGrn = prompt('Write down amount in grivnas', '');
|
|
|
+ const selOrBay = confirm(
|
|
|
+ 'confrim OK if you want bay or press cancel for sale'
|
|
|
+ );
|
|
|
+ Number(amountInGrn) && currency
|
|
|
+ ? selOrBay
|
|
|
+ ? alert(
|
|
|
+ `You will bay ${
|
|
|
+ Number(amountInGrn) / currency
|
|
|
+ } ${value} on yor ${amountInGrn} grivnas`
|
|
|
+ )
|
|
|
+ : alert(
|
|
|
+ `You need to sell ${
|
|
|
+ Number(amountInGrn) / (currency - 0.4)
|
|
|
+ } ${value} to get ${amountInGrn} grivnas`
|
|
|
+ )
|
|
|
+ : currencyCalcTwoRates();
|
|
|
+};
|
|
|
+
|
|
|
+//currency calc: if
|
|
|
+
|
|
|
+const currencyCalcTwoRatesIf = () => {
|
|
|
+ const value = (
|
|
|
+ prompt('Choose currency "usd" or "eur"', '') || ''
|
|
|
+ ).toLowerCase();
|
|
|
+ let currency;
|
|
|
+
|
|
|
+ const amountInGrn = prompt('Write down amount in grivnas', '');
|
|
|
+ const selOrBay = confirm(
|
|
|
+ 'confrim OK if you want bay or press cancel for sale'
|
|
|
+ );
|
|
|
+ if (value === 'usd') {
|
|
|
+ currency = 27;
|
|
|
+ } else if (value === 'eur') {
|
|
|
+ currency = 33;
|
|
|
+ }
|
|
|
+
|
|
|
+ Number(amountInGrn) && currency
|
|
|
+ ? selOrBay
|
|
|
+ ? alert(
|
|
|
+ `You will bay ${
|
|
|
+ Number(amountInGrn) / currency
|
|
|
+ } ${value} on yor ${amountInGrn} grivnas`
|
|
|
+ )
|
|
|
+ : alert(
|
|
|
+ `You need to sell ${
|
|
|
+ Number(amountInGrn) / (currency - 0.4)
|
|
|
+ } ${value} to get ${amountInGrn} grivnas`
|
|
|
+ )
|
|
|
+ : currencyCalcTwoRatesIf();
|
|
|
+};
|
|
|
+
|
|
|
+//scissors
|
|
|
+//Сделайте игру "камень-ножницы-бумага". Пользователь вводит свой вариант через prompt,
|
|
|
+//программа генерирует свой вариант через Math.random() и выводит через alert.
|
|
|
+//Следующий alert выводит имя победителя или "ничья"
|
|
|
+
|
|
|
+const scissorsGame = () => {
|
|
|
+ const value = prompt('Write down a number for play from 1 to 10', '');
|
|
|
+ Number(value) / 10 > Math.random(value)
|
|
|
+ ? alert('You won')
|
|
|
+ : alert('You lost');
|
|
|
+};
|
|
|
+
|
|
|
+//Задание на синий пояс
|
|
|
+//Сделать задания обмена валют используя ассоциативный массив (объект)
|
|
|
+//подобной структуры.Добавьте дополнительные поля при надобности
|
|
|
+//.Для обращения к нужному полю используйте[].
|
|
|
+
|
|
|
+const currencyCalcTwoRatesBlueBelt = () => {
|
|
|
+ const ratios = {
|
|
|
+ usd: 25.6,
|
|
|
+ eur: 29,
|
|
|
+ different: 0.4,
|
|
|
+ };
|
|
|
+ const value = (
|
|
|
+ prompt('Choose currency "usd" or "eur"', '') || ''
|
|
|
+ ).toLowerCase();
|
|
|
+ const currency = ratios[value];
|
|
|
+ const amountInGrn = prompt('Write down amount in grivnas', '');
|
|
|
+ const selOrBay = confirm(
|
|
|
+ 'confrim OK if you want bay or press cancel for sale'
|
|
|
+ );
|
|
|
+
|
|
|
+ Number(amountInGrn) && currency
|
|
|
+ ? selOrBay
|
|
|
+ ? alert(
|
|
|
+ `You will bay ${
|
|
|
+ Number(amountInGrn) / currency
|
|
|
+ } ${value} on yor ${amountInGrn} grivnas`
|
|
|
+ )
|
|
|
+ : alert(
|
|
|
+ `You need to sell ${
|
|
|
+ Number(amountInGrn) / (currency - ratios.different)
|
|
|
+ } ${value} to get ${amountInGrn} grivnas`
|
|
|
+ )
|
|
|
+ : currencyCalcTwoRatesBlueBelt();
|
|
|
+};
|
|
|
+
|
|
|
+//real data
|
|
|
+//Иcпользуя заготовку ниже реализуйте перевод валют с реальными данными.
|
|
|
+
|
|
|
+const currencyCalcTwoRatesRealData = async () => {
|
|
|
+ try {
|
|
|
+ const ratios = await fetch('https://open.er-api.com/v6/latest/USD')
|
|
|
+ .then((res) => res.json())
|
|
|
+ .then(({ rates }) => rates);
|
|
|
+ const value = (
|
|
|
+ prompt('Choose currency "usd" or "eur"', '') || ''
|
|
|
+ ).toUpperCase();
|
|
|
+ const currency = ratios[value];
|
|
|
+ const amountInGrn = prompt('Write down amount in grivnas', '');
|
|
|
+ const selOrBay = confirm(
|
|
|
+ 'confrim OK if you want bay or press cancel for sale'
|
|
|
+ );
|
|
|
+
|
|
|
+ Number(amountInGrn) && currency
|
|
|
+ ? selOrBay
|
|
|
+ ? alert(
|
|
|
+ `You will bay ${Number(amountInGrn) / (ratios.UAH / currency)}
|
|
|
+ ${value} on yor ${amountInGrn} grivnas`
|
|
|
+ )
|
|
|
+ : alert(
|
|
|
+ `You need to sell ${
|
|
|
+ (currency - 0.05) / Number(amountInGrn)
|
|
|
+ } ${value} to get ${amountInGrn} grivnas`
|
|
|
+ )
|
|
|
+ : currencyCalcTwoRatesRealData();
|
|
|
+ } catch (e) {
|
|
|
+ currencyCalcTwoRatesRealData();
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+//Дополнительное задание
|
|
|
+//Слепить все задания в один текст, таким образом что бы вначале происходил ввод
|
|
|
+//названия задания, каждое задание при этом находится в отдельном case оператора
|
|
|
+//switch.Например case "currency calc" для калькулятора обмена валют.
|
|
|
+
|
|
|
+const adiditonalExercise = () => {
|
|
|
+ const expr = prompt(`Write down name of exercise`) || '';
|
|
|
+ switch (expr.toLowerCase()) {
|
|
|
+ case 'switch: sizes':
|
|
|
+ changeSystem();
|
|
|
+ break;
|
|
|
+ case 'switch: if':
|
|
|
+ switchIf();
|
|
|
+ break;
|
|
|
+ case 'prompt: or':
|
|
|
+ age('?');
|
|
|
+ break;
|
|
|
+ case 'confirm: or this days':
|
|
|
+ robotConfirm();
|
|
|
+ break;
|
|
|
+ case 'confirm: if this days':
|
|
|
+ robotConfirmIf();
|
|
|
+ break;
|
|
|
+ case 'triple prompt':
|
|
|
+ triplePrompt();
|
|
|
+ break;
|
|
|
+ case 'default: or':
|
|
|
+ triplePromptOr();
|
|
|
+ break;
|
|
|
+ case 'default: if':
|
|
|
+ triplePromptIf();
|
|
|
+ break;
|
|
|
+ case 'login and password':
|
|
|
+ LogIn();
|
|
|
+ break;
|
|
|
+ case 'currency calc':
|
|
|
+ currencyCalc();
|
|
|
+ break;
|
|
|
+ case 'currency calc: improved':
|
|
|
+ currencyCalcImprowed();
|
|
|
+ break;
|
|
|
+ case 'currency calc: two rates':
|
|
|
+ currencyCalcTwoRates();
|
|
|
+ break;
|
|
|
+ case 'currency calc: if':
|
|
|
+ currencyCalcTwoRatesIf();
|
|
|
+ break;
|
|
|
+ case 'scissors':
|
|
|
+ scissorsGame();
|
|
|
+ break;
|
|
|
+ case 'задание на синий пояс':
|
|
|
+ currencyCalcTwoRatesBlueBelt();
|
|
|
+ break;
|
|
|
+ case 'real data':
|
|
|
+ currencyCalcTwoRatesRealData();
|
|
|
+ break;
|
|
|
+ case 'задание на черный пояс':
|
|
|
+ blackBelt();
|
|
|
+ break;
|
|
|
+ case '':
|
|
|
+ adiditonalExercise();
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ alert(`We do not have exercise with it name ${expr}`);
|
|
|
+ adiditonalExercise();
|
|
|
+ }
|
|
|
+};
|
|
|
+adiditonalExercise();
|
|
|
+
|
|
|
+//Задание на черный пояс
|
|
|
+
|
|
|
+function blackBelt() {
|
|
|
+ const value = prompt('Write down a number for play from 1 to 10', '');
|
|
|
+ Number(value) !== NaN && value !== null
|
|
|
+ ? Number(value) / 10 > Math.random(value)
|
|
|
+ ? alert('You won')
|
|
|
+ : alert('You lost')
|
|
|
+ : blackBelt();
|
|
|
+}
|