//Дополнительное задание
//Слепить все задания в один текст, таким образом что бы вначале происходил ввод названия задания, а потом с помощью if запускался код конкретного задания
    const exercise = +prompt(`Впишите номер задания и нажмите ОК.
    1.  Number: odd
    2.  String: lexics
    3.  Boolean, Boolean: if 
    4.  Comparison: sizes
    5.  Ternary
    6.  Prompt: or
    7.  Confirm: or this days
    8.  Confirm: if this days
    9.  Default: or
    10. Default: if
    11. Login and password
    12. Currency exchange
    13. Scissors
    14. Задание на черный пояс
`) 



//Number: odd
/* С помощью prompt узнайте число, введенное пользователем. С помощью if проверьте что число корректно преобразовано из строки. В случае ошибки выведите сообщение Выведите четное число или нет, используя if.*/

//вариант 1. Через regexp
//(дополнительно проверяет на пустую строку с любым кол-вом пробелов, реплейс для убирания пробела между занком - и числом, лишнрие пробелы по бокам, меняет запятую на точку в числе и т.д.)


if (exercise === 1){
    const str = prompt('введи любое целое число. Положительное, отрицательное или 0');
    const regexp = /^(\s*)(-?)(\s*)(\d+)([\.,]?)(\d*)(\s*)$/;
    let strReplaced;
    if (str !== null) {
        strReplaced = +str.replace(regexp, '$2$4.$60');
    }
    if(!regexp.test(str)){
    alert(`ОШИБКА
    1. нажал отмена
    2. ввел пустую строку или строку с пробелами
    3. ввел не целое число
    4. ввел буквы
    5. поставил пробел между цифрами или знаком -`);
        
    } else if (strReplaced === 0){
        alert(`    
        Число "${strReplaced}" чётное!!!!
        Дадада. Ты офигеешь но "0" действительно считается чётным числом.
        
        Проверь сам...:
        https://uk.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%BD%D1%96%D1%81%D1%82%D1%8C_%D1%87%D0%B8%D1%81%D0%BB%D0%B0_%D0%BD%D1%83%D0%BB%D1%8C
        `)
    } else if (strReplaced % 2 === 0){
        alert(`
            Число "${strReplaced}" чётное.
            `)
    }else{
        alert(`
            Число "${strReplaced}" не чётное.
            `)
    };
};

// Вариант 2. Проверка на число
//(не сработает если пользователь введёт пустую строку с пробелами)
/*

let number = prompt('введи число');
if(number !== "" && +number === +number && number !== null){
    alert('vse ok');
}else{
    alert("balvan")}
    
    */

//вариант 3. Ппроверка на число
//(не сработает если пользователь введёт пустую строку с пробелами)
/*

let number = prompt('введи число');
if(number == "" || isNaN(number) || number == null){
    alert('balvan');
}else{
    alert("vse ok")}

*/

//____________________________________________________


//String: lexics
/*Спросите у пользователя текст, и проверьте его на наличие некорректного слова или нескольких некорректных слов. Используйте метод indexOf (или includes) строки:*/

if (exercise === 2){
    const str = prompt('напиши пару предложений, если будешь говорить "блин" я буду ругаться');
    if(str.includes("блин")){

        alert("я же предупреждал что узнаю!");

    }else {

        alert("ты молодец");
    }
};

//___________________________________________________

//Boolean
//Напишите код, который спрашивает те или иные вопросы с ответом "да"/"нет" с помощью confirm, и сохраняет ответы в переменных.

//Boolean: if
//Расширьте предыдущее задание условиями по полученным переменным условиями (if else). Например, если вы спрашиваете пол пользователя с помощью confirm, то по условию сделайте alert("Вы женщина") и alert("Вы мужчина")

if (exercise === 3){
    const gender = confirm('Мужик?');
    if(gender){
        alert('мужик')
    }else{
        alert('не мужик')
    }
    const age = confirm('пенсия?');
    if(age){
        alert('пенсия')
    }else{
        alert('не пенсия')
    }
    const beer = confirm('пиво пьешь?');
    if(beer){
        alert('как там живот, растёт?')
    }else{
        alert('спортсмен или больной?')
    }
}

//__________________________________________________

//Comparison: sizes
//Сделайте перевод перевод из нашей системы размеров в американскую или любую на выбор. Используйте prompt, условия сравнения и alert.

if (exercise === 4){
    const sizeUA = prompt('введи размер верхней одежды, платья, брюк в системе UA (40, 42, 44, .., 54), а я перевду в буквенную USA')
    
    const sizeUSA =
    sizeUA < 40 ? "Детский размер" :
    sizeUA <= 41 ? "S" :
    sizeUA <= 43 ? "M" :
    sizeUA <= 47 ? "L" :
    sizeUA <= 51 ? "XL" :
    sizeUA <= 55 ? "XXL" :
    "XXXL или более";
    
    alert(`ваш размер "${sizeUSA}" в системе USA`);
}

//________________________________________________

//Ternary
//Спросите у пользователя пол (confirm). Выведите с помощью alert "Вы мужчина" или "Вы женщина". Используйте тернарный оператор.

if (exercise === 5){
    const gender = confirm("мужик? жми ок!");
    gender ? alert("хорош!") : alert("не расстраивайся сильно, тебе еще детей рожать"); 
}

//_________________________________________________

//Prompt: or
//Для задания Number: age используя ИЛИ || вывести сообщение об ошибке (alert) если пользователь не введет возраст или нажмет отмену (т. е. prompt выдаст пустую строку или null, интерпретируемую как false).

if (exercise === 6){
    const age = prompt ("введите ваш возраст");
    !(age === ""|| isNaN(age) || age === null) || alert('бокопор');
}

//_________________________________________________

//Confirm: or this days
//C помощью этого же трюка (использование ИЛИ для запуска альтернативы) сделайте капризного робота, который в confirm спрашивает "шопинг?", а в случае отказа - выводить alert "ты - бяка".

if (exercise === 7){
    const str = confirm ("шопинг?") || alert('бяка')
}

//_________________________________________________

//Confirm: if this days
//Сделать тоже самое с помощью if.

if (exercise === 8){
    const shoping = confirm("шопинг?")
    if(!shoping) {
        alert('бяка');
    }
}

//________________________________________________

// Default: or
// Попросите пользователя ввести ФИО в три разныe переменныe. Используя ИЛИ || добавьте строки по умолчанию, которые будут сохраняться во внутренних переменных если пользователь ввел пустую строку или нажал "Отмена". Например, если вы на шаге ввода Фамилии нажмете Escape, фамилия будет "Иванов"

if (exercise === 9){
    let name = prompt("Name");
    if (name === ""|| name === null || !isNaN(name)){
        name = "user";
    }

    let lastname = prompt('lastname');
    if (lastname === ""|| lastname === null || !isNaN(lastname)){
        lastname = "usernameov";
    }
    alert(`${name} ${lastname}`);
}

//________________________________________________

//Default: if
//Сделайте тоже самое с помощью if и else

if (exercise === 10){
    let name = prompt( "Name" );
    
    if ( name === "" ){
        name = "user";
    }else if ( name === null ){
        name = "user";
    }else if ( !isNaN(name) ){
        name = "user";
    }
    let lastname = prompt( "LastName" );
    
    if ( lastname === "" ){
        lastname = "usernameov";
    }else if ( lastname === null ){
        lastname = "usernameov";
    }else if ( !isNaN(lastname) ){
        lastname = "usernameov";
    }

    alert(`${name} ${lastname}`);
}

//Login and password
//Напишите код, который спрашивает логин, проверяет его на верность, в случае если логин верен, просит ввести пароль и проверяет его. В случае несовпадения логина или пароля выводить alert с текстом ошибки. В случае успешного логина - alert с поздравлением. Правильные логин: admin и пароль: qwerty. Используйте вложенные if и else.

if (exercise === 11){
    const loginTrue = "admin";
    const passTrue = "qwerty";
    const login = prompt("login");

    if (login !== loginTrue){

        alert("Миша всЁ херня, давай по новой")

    }else{

        const passs = prompt("pass");
        if (passs !== passTrue){

            alert("если не вспомнишь пароль, тебе никто денег не даст");

        }else{

            alert("mission complet")
        }
    }
}

//____________________________________________________

//Currency exchange
/*Попросите пользователя ввести валюту (например, usd, eur, другие валюты добавить по вкусу) с помощью prompt.
Также поинтересуйтесь купить или продать он желает (используйте confirm).
С помощью нескольких if и тернарного оператора внутри каждого из if задайте переменную rate, определяющую курс конкретной валюты на покупку или продажу. Обратите внимание на место объявления переменной rate - она должна быть доступна в коде после всех этих if.
Попросите пользователя ввести сумму на обмен
Посчитайте и выведите результат путем умножения или деления на rate
Дайте возможность пользователю вводить названия валют в любом регистре (UsD, eUR). Для этого в if используйте toUpperCase (или toLowerCase)*/
if (exercise === 12){
    let currency = prompt(`введи валюту из спсика:
    USD
    EUR`);
    if (currency !== null) currency = currency.toUpperCase();
    const buy = confirm(`покупаете - "OK"
    продаете - "Отмена"`);
    let rate;

    if (currency === "USD"){
        buy ? rate = 41 : rate = 39
    }
    else if (currency === "EUR"){
        buy ? rate = 40 : rate = 38
    }else{
        alert("тебе стоит быть внимательнее, ты ввёл валюту которой у нас нет.")
    }

    if(rate){
        const summ = prompt ("введите сумму");
        if(buy){
            alert(`вам потребуется ${summ * rate} грн. для покупки`);
        }else{
            alert(`вы получите ${summ * rate} грн.`);
        }
    }
}

//______________________________________________________

//Scissors
//Сделайте игру "камень-ножницы-бумага". Пользователь вводит свой вариант через prompt, программа генерирует свой вариант через Math.random() и выводит через alert. Следующий alert выводит имя победителя или "ничья"
if (exercise === 13){
    let userMove = prompt('напиши "камень", "ножницы" или "бумага" и посмотрим кто выиграет');
    if (userMove !==null) userMove = userMove.toLowerCase()
    if(userMove === "камень" || userMove === "ножницы" || userMove === "бумага"){
        let pcMove = Math.random() * 3;
        pcMove < 1 ? pcMove = "камень" :
        pcMove < 2 ? pcMove = "ножницы" :
        pcMove = "бумага";

        alert(`а у меня ${pcMove}!`);

        userMove === pcMove ? alert("ничья!") :
        userMove === "камень" && pcMove === "ножницы" ? alert("Ты выиграл :(") :
        userMove === "камень" && pcMove === "бумага" ? alert("Бумага круче камня, а ты неудачник!") :
        userMove === "ножницы" && pcMove === "камень" ? alert("Твои ножницы перед камнем ничто! отдыхай") :
        userMove === "ножницы" && pcMove === "бумага" ? alert("Ты разрезал меня на куски :(") :
        userMove === "бумага" && pcMove === "камень" ? alert("Никогда не понимал почему бумага выигрывает у камня :(") :
        userMove === "бумага" && pcMove === "ножницы" ? alert("Я разрезал тебя на куски!") : alert (false);
    }else{
        alert(`ты должен был ввести "камень", "ножницы" или "бумага". Таковы правила!!!!`)
    }
}

//________________________________________________

//Задание на черный пояс
//Сделайте игру "камень-ножницы-бумага", как описано выше, пользуясь логическими операциями (&&, ||, !), не используя if. Задание должно быть решено одним выражением

if (exercise === 14){
    const userMove = +prompt (`Игра камень, ножницы бумага
    для выбора введи цифру и нажми ОК:
    1 - камень
    2 - ножницы
    3 - бумага`)
    const pcMove = Math.ceil(Math.random() * 3);
    alert( `у меня выпало ${pcMove === 1 ? "камень" : pcMove === 2 ? "ножницы" : "бумага"} `)

    alert(
        
        (  ( userMove === 1 && pcMove == 2 || userMove == 2 && pcMove == 3 || userMove == 3 && pcMove == 1) && "победил человек" )   ||
        (  ( userMove === 2 && pcMove == 1 || userMove === 3 && pcMove == 2 || userMove === 1 && pcMove == 3) && "победил компьютер"  )   ||
        "ничья"
    )
}
    

   /* console.log(
    
        ((false || false || false) && "человек")   ||
        ((false || false || false) && "компьютер") ||
        "ничья"
    )*/
