// Дополнительное задание
// Слепить все задания в один текст, таким образом что бы вначале происходил ввод названия задания,
// каждое задание при этом находится в отдельном case оператора switch.
// Например case "currency calc" для калькулятора обмена валют.
do {
var Task = prompt('Введите название задания, которое хотите просмотреть.\n\nСписок выполненных заданий: \n1. switch: sizes\n2. switch: if\n3. prompt: or\n4. confirm: or this days\n5. confirm: if this days\n6. triple prompt\n7. default: or\n8. default: if\n9. login and password\n10. currency calc\n11. currency calc: improved\n12. currency calc: two rates\n13. currency calc: if\n14. scissors\n15. Задание на синий пояс\n16. real data').toLowerCase();
switch (Task) {
case 'switch: sizes':
// Сделайте задание Comparison: sizes из предыдущего ДЗ используя switch.
var clothesSize = +prompt('Введите размер одежды по украинским меркам:');
switch (true) {
case (clothesSize >= 40 && clothesSize < 42): alert('S');
break;
case (clothesSize >= 42 && clothesSize < 46): alert('M');
break;
case (clothesSize >= 46 && clothesSize < 50): alert('L');
break;
case (clothesSize >= 50 && clothesSize < 54): alert('XL');
break;
case (clothesSize == 54): alert('XXL');
break;
default: alert('Тут что-то не так...');
}
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'switch: if':
// Перепишите пример ниже, используя if.
let color = prompt("Введите цвет");
/*switch (color){
case "red": document.write("
красный
");
case "black": document.write("черный
");
break;
case "blue": document.write("синий
");
case "green": document.write("зеленый
");
break;
default: document.write("Я не понял
");
}*/
if (color == 'red') {
document.write("красный
");
document.write("черный
");
}
else if (color == 'black') {
document.write("черный
");
}
else if (color == 'blue') {
document.write("синий
");
document.write("зеленый
");
}
else if (color == 'green') {
document.write("зеленый
");
}
else {
document.write("Я не понял
");
}
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'prompt: or':
// Для задания Number: age используя ИЛИ || вывести сообщение об ошибке (alert) если пользователь не введет возраст
// или нажмет отмену (т. е. prompt выдаст пустую строку или null, интерпретируемую как false).
var age = (+prompt('Сколько вам сейчас лет?') || alert('Ошибка, возраст не указан!'));
var YearOfBirth = 2022 - age;
alert(YearOfBirth || 'Ошибка, возраст не указан!');
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'confirm: or this days':
// C помощью этого же трюка сделайте капризного робота, который в confirm спрашивает "шопинг?",
// а в случае отказа - выводить alert "ты - бяка".
var Shopping = window.confirm('Шоппинг?');
alert(Shopping || 'ты - бяка');
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'confirm: if this days':
// Сделать тоже самое с помощью if.
var Shopping = window.confirm('Шоппинг?');
if (Shopping == true) {
alert('Yay!');
}
else {
alert('ты - бяка');
}
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'triple prompt':
// Трижды вызывать prompt, сохранить в переменные фамилию, имя и отчество. Вывести ФИО c помощью alert.
var Surname = prompt('Surname:');
var Name = prompt('Name:');
var Fathername = prompt('Fathername:');
alert(Surname + ' ' + Name + ' ' + Fathername);
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'default: or':
// Используя ИЛИ || добавьте имена по умолчанию, которые будут сохраняться во внутренних переменных
// если пользователь ввел пустую строку или нажал "Отмена".
// Например, если вы на шаге ввода Фамилии нажмете Escape, фамилия будет "Иванов"
var Surname = (prompt('Surname:') || "Иванов");
var Name = (prompt('Name:') || "Иван");
var Fathername = (prompt('Fathername:') || "Иванович");
alert(Surname + ' ' + Name + ' ' + Fathername);
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'default: if':
// Сделайте тоже самое с помощью if и else
var Surname = prompt('Surname:');
var Name = prompt('Name:');
var Fathername = prompt('Fathername:');
if (Surname == null) {
Surname = "Иванов";
}
if (Name == null) {
Name = "Иван";
}
if (Fathername == null) {
Fathername = "Иванович";
}
alert(Surname + ' ' + Name + ' ' + Fathername);
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'login and password':
// Напишите код, который спрашивает логин, проверяет его на верность,
// в случае если логин верен, просит ввести пароль и проверяет его.
// В случае несовпадения логина или пароля выводить alert с текстом ошибки.
// В случае успешного логина - alert с поздравлением. Правильные логин: admin и пароль: qwerty.
// Используйте вложенные if и else.
var login = prompt('Enter login:');
var password = prompt('Enter password');
if (login != 'admin') {
alert('Wrong login!')
}
else {
if (password == 'qwerty') {
alert('Congratulations!');
}
else {
alert('Wrong password!')
}
}
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'currency calc':
// Калькулятор обмена валют.
// Первый prompt спрашивает валюту: "usd" или "eur".
// С помощью switch установите обменный курс для валюты, выбранной пользователем, после чего
// спросите величину и переведите её из гривны в выбранную на первом prompt валюту.
// Выведите результат в alert()
var Currency = prompt('usd or eur?');
switch (Currency) {
case 'usd': var Amount = prompt('Enter the amount of usd to be converted:');
alert((Amount * 29.60).toFixed(4) + '$');
break;
case 'eur': var Amount = prompt('Enter the amount of eur to be converted:');
alert((Amount * 31.08).toFixed(4) + '€');
break;
default: alert('Converting issue, please check the entered currency!');
}
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'currency calc: improved':
// Улучшить предыдущее задание: сделать возможность ввода валюты
// любыми буквами (usd, uSd, USD), используйте str.toLowerCase().
var Currency = prompt('usd or eur?').toLowerCase();
switch (Currency) {
case 'usd': var Amount = prompt('Enter the amount of usd to be converted:');
alert((Amount * 29.60).toFixed(4) + '$');
break;
case 'eur': var Amount = prompt('Enter the amount of eur to be converted:');
alert((Amount * 31.08).toFixed(4) + '€');
break;
default: alert('Converting issue, please check the entered currency!');
}
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'currency calc: two rates':
// Добавить возможность выбора обменного курса на продажу и покупку.
// Используйте confirm для ввода пользователя и тернарный оператор для величины курса.
var Currency = prompt('usd or eur?').toLowerCase();
var Amount;
switch (Currency) {
case 'usd': window.confirm('Do you want to buy the currency?') ? (
Amount = prompt('Enter the amount of $ to be converted:'),
alert((Amount * 35.5058).toFixed(4) + '$')
) : (Amount = prompt('Enter the amount of $ to be converted:'),
alert((Amount * 35.6328).toFixed(4) + '$'));
break;
case 'eur': window.confirm('Do you want to buy the currency?') ? (
Amount = prompt('Enter the amount of € to be converted:'),
alert((Amount * 37.3050).toFixed(4) + '€')
) : (Amount = prompt('Enter the amount of € to be converted:'),
alert((Amount * 37.6362).toFixed(4) + '€'));
break;
default: alert('Converting issue, please check the entered currency!');
}
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'currency calc: if':
// Сделать тоже самое на if
var Currency = prompt('usd or eur?').toLowerCase();
var Amount;
switch (Currency) {
case 'usd': var BuySell = window.confirm('Do you want to buy the currency?');
if (BuySell == true) {
Amount = prompt('Enter the amount of $ to be converted:');
alert((Amount * 35.5058).toFixed(4) + '$');
}
else {
Amount = prompt('Enter the amount of $ to be converted:');
alert((Amount * 35.6328).toFixed(4) + '$');
}
break;
case 'eur': var BuySell = window.confirm('Do you want to buy the currency?');;
if (BuySell == true) {
Amount = prompt('Enter the amount of € to be converted:');
alert((Amount * 37.3050).toFixed(4) + '€');
}
else {
Amount = prompt('Enter the amount of € to be converted:');
alert((Amount * 37.6362).toFixed(4) + '€');
}
break;
default: alert('Converting issue, please check the entered currency!');
}
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'scissors':
// Сделайте игру "камень-ножницы-бумага".
// Пользователь вводит свой вариант через prompt, программа генерирует свой вариант через Math.random()
// и выводит через alert. Следующий alert выводит имя победителя или "ничья"
// 'Paper' > 'Stone';
// 'Paper' < 'Scissors';
// 'Scissors' < 'Stone';
do {
var botVariables = ['Stone', 'Scissors', 'Paper'];
var player = prompt('Enter Stone, Scissors or Paper');
var bot = botVariables[Math.floor(Math.random() * botVariables.length)];
alert(bot);
if (player == bot) {
alert('Ничья.');
}
else if (player == 'Stone' && bot == 'Scissors'
|| player == 'Scissors' && bot == 'Paper'
|| player == 'Paper' && bot == 'Stone') {
alert('You win!');
}
else if (bot == 'Stone' && player == 'Scissors'
|| bot == 'Scissors' && player == 'Paper'
|| bot == 'Paper' && player == 'Stone') {
alert('You lose!');
}
else {
alert('Something\'s gone wrong...');
}
var doPlay = window.confirm('Do you want to replay?');
}
while (doPlay == true);
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'Задание на синий пояс':
// Сделать задания обмена валют используя ассоциативный массив (объект) подобной структуры.
// Добавьте дополнительные поля при надобности. Для обращения к нужному полю используйте [].
let ratios = {
usdSell: 35.6328,
usdBuy: 35.5058,
eurSell: 37.6362,
eurBuy: 37.3050,
}
var Currency = prompt('usd or eur?').toLowerCase();
var Amount;
switch (Currency) {
case 'usd': window.confirm('Do you want to buy the currency?') ? (
Amount = prompt('Enter the amount of $ to be converted:'),
alert((Amount * ratios['usdBuy']).toFixed(4) + '$')
) : (Amount = prompt('Enter the amount of $ to be converted:'),
alert((Amount * ratios['usdSell']).toFixed(4) + '$'));
break;
case 'eur': window.confirm('Do you want to buy the currency?') ? (
Amount = prompt('Enter the amount of € to be converted:'),
alert((Amount * ratios['eurBuy']).toFixed(4) + '€')
) : (Amount = prompt('Enter the amount of € to be converted:'),
alert((Amount * ratios['eurSell']).toFixed(4) + '€'));
break;
default: alert('Converting issue, please check the entered currency!');
}
var Continue = window.confirm('Вы хотите продолжить?');
break;
case 'real data':
// Иcпользуя заготовку ниже реализуйте перевод валют с реальными данными.
alert('Press \'Esc\' or \'Cancel\' 4 times(it is a temporary bug, idk how to fix)');
fetch('https://open.er-api.com/v6/latest/USD').then(res => res.json())
.then(data => {
var Currency = prompt('Enter the currency code in ISO 4217 standart.').toUpperCase();
var Amount;
Amount = prompt('Enter the amount of $ to be converted:');
alert((Amount * data.rates[Currency]).toFixed(4) + ' ' + Currency);
});
var Continue = window.confirm('Вы хотите продолжить?');
default: alert('Что-то пошло не так...\nПопробуйте еще раз.'); Continue = true;
}
} while (Continue == true);