diff --git a/bjs/07_Number_and_string/index.html b/bjs/07_Number_and_string/index.html index 645e1c0f..3fcaadae 100644 --- a/bjs/07_Number_and_string/index.html +++ b/bjs/07_Number_and_string/index.html @@ -1,32 +1,203 @@ - - + + Калькулятор - - - - - -
-
-
-
-
-
- -
-
- -
-
-
+ + + + + +
+
+
+
+
+
+
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+
+
+
-
- - + + diff --git a/bjs/07_Number_and_string/script.js b/bjs/07_Number_and_string/script.js index 4085abce..d4993e57 100644 --- a/bjs/07_Number_and_string/script.js +++ b/bjs/07_Number_and_string/script.js @@ -1,12 +1,152 @@ let lastOperand = 0; let operation = null; -const inputWindow = document.getElementById('inputWindow'); +const info = document.querySelector("#info"); +const inputWindow = document.getElementById("inputWindow"); +document.getElementById("btn_clr").addEventListener("click", function () { + lastOperand = 0; + operation = null; + inputWindow.value = "0"; +}); -document.getElementById('btn_clr').addEventListener('click', function () { + + +document.querySelector("#btn_1").addEventListener("click", function () { + if (inputWindow.value === "0"){inputWindow.value = "";} + inputWindow.value += "1"; +}); + +document.querySelector("#btn_2").addEventListener("click", function () { + if (inputWindow.value === "0"){inputWindow.value = "";} + inputWindow.value += "2"; +}); + +document.querySelector("#btn_3").addEventListener("click", function () { + if (inputWindow.value === "0"){inputWindow.value = "";} + inputWindow.value += "3"; +}); + +document.querySelector("#btn_4").addEventListener("click", function () { + if (inputWindow.value === "0"){inputWindow.value = "";} + inputWindow.value += "4"; +}); + +document.querySelector("#btn_5").addEventListener("click", function () { + if (inputWindow.value === "0"){inputWindow.value = "";} + inputWindow.value += "5"; +}); + +document.querySelector("#btn_6").addEventListener("click", function () { + if (inputWindow.value === "0"){inputWindow.value = "";} + inputWindow.value += "6"; +}); + +document.querySelector("#btn_7").addEventListener("click", function () { + if (inputWindow.value === "0"){inputWindow.value = "";} + inputWindow.value += "7"; +}); + +document.querySelector("#btn_8").addEventListener("click", function () { + if (inputWindow.value === "0"){inputWindow.value = "";} + inputWindow.value += "8"; +}); + +document.querySelector("#btn_9").addEventListener("click", function () { + if (inputWindow.value === "0"){inputWindow.value = "";} + inputWindow.value += "9"; +}); + +document.querySelector("#btn_0").addEventListener("click", function () { + if (inputWindow.value === "0"){ + inputWindow.value = "0"; + } else { + inputWindow.value += "0";}; +}); + +/*вещественное число*/ +document.querySelector("#btn_real").addEventListener("click", function () { + inputWindow.value = inputWindow.value + "."; +}); + +/*Сумма*/ +document.querySelector("#btn_sum").addEventListener("click", function () { + lastOperand = inputWindow.value; + operation = "sum"; + inputWindow.value = ""; +}); + +/*Разность*/ +document.querySelector("#btn_def").addEventListener("click", function () { + lastOperand = inputWindow.value; + operation = "def"; + inputWindow.value = ""; +}); + +/*умножение*/ +document.querySelector("#btn_multi").addEventListener("click", function () { + lastOperand = inputWindow.value; + operation = "multi"; + inputWindow.value = ""; +}); + +/*Деление*/ +document.querySelector("#btn_divis").addEventListener("click", function () { + lastOperand = inputWindow.value; + operation = "divis"; + inputWindow.value = ""; +}); + +/*квадратный корень*/ +document.querySelector("#btn_sqr").addEventListener("click", function () { + operation = "sqr"; +}); + +/*унарный минус*/ +document.querySelector("#btn_sum_def").addEventListener("click", function () { + inputWindow.value = (-inputWindow.value); +}); + + +/*Равно*/ +document.querySelector("#btn_calc").addEventListener("click", function () { + if (operation === "sum") { + const result = Number(lastOperand) + Number(inputWindow.value); + info.value += `${lastOperand} + ${inputWindow.value} = ${result} \n`; + operation = "null"; + lastOperand = 0; + inputWindow.value = result; + } + + if (operation === "sqr") { + const result = Math.sqrt(Number(inputWindow.value)); + info.value += `√${inputWindow.value} = ${result} \n`; + operation = "null"; + inputWindow.value = result; + } + + if (operation === "def") { + const result = Number(lastOperand) - Number(inputWindow.value); + info.value += `${lastOperand} - ${inputWindow.value} = ${result} \n`; + operation = "null"; + lastOperand = 0; + inputWindow.value = result; + } + + if (operation === "multi") { + const result = Number(lastOperand) * Number(inputWindow.value); + info.value += `${lastOperand} * ${inputWindow.value} = ${result} \n`; + operation = "null"; + lastOperand = 0; + inputWindow.value = result; + } + + if (operation === "divis") { + const result = Number(lastOperand) / Number(inputWindow.value); + info.value += `${lastOperand} / ${inputWindow.value} = ${result} \n`; + operation = "null"; lastOperand = 0; - operation = null; - inputWindow.value = ''; -}) + inputWindow.value = result; + } +}); diff --git a/bjs/07_Number_and_string/style.css b/bjs/07_Number_and_string/style.css index 5257d402..69bcacc7 100644 --- a/bjs/07_Number_and_string/style.css +++ b/bjs/07_Number_and_string/style.css @@ -7,3 +7,9 @@ text-align: end; font-size: x-large; } + +#info { + color:rgb(187, 187, 187); + text-align: right; + height: 200px; +} \ No newline at end of file diff --git a/bjs/08_if_else/index.html b/bjs/08_if_else/index.html index ff5d71f1..405ea5a2 100644 --- a/bjs/08_if_else/index.html +++ b/bjs/08_if_else/index.html @@ -3,40 +3,75 @@ Угадайка + - - + integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> + + + + + + +
+ + +
+ + +
+ +
+ + +
+ + + +
+
+
+ + +
-

Вопрос №5

+

Вопрос №1

-

Вы загадали число 5?

+

Введите значение.

+
- + - +
+ + +
+ + + + diff --git a/bjs/08_if_else/script.js b/bjs/08_if_else/script.js index d5a2e4a5..a2eda9e4 100644 --- a/bjs/08_if_else/script.js +++ b/bjs/08_if_else/script.js @@ -1,46 +1,409 @@ -let minValue = parseInt(prompt('Минимальное знание числа для игры','0')); -let maxValue = parseInt(prompt('Максимальное знание числа для игры','100')); -alert(`Загадайте любое целое число от ${minValue} до ${maxValue}, а я его угадаю`); -let answerNumber = Math.floor((minValue + maxValue) / 2); -let orderNumber = 1; -let gameRun = true; - -const orderNumberField = document.getElementById('orderNumberField'); -const answerField = document.getElementById('answerField'); - -orderNumberField.innerText = orderNumber; -answerField.innerText = `Вы загадали число ${answerNumber }?`; - -document.getElementById('btnRetry').addEventListener('click', function () { - minValue = 0; - maxValue = 100; - orderNumber = 0; -}) - -document.getElementById('btnOver').addEventListener('click', function () { - if (gameRun){ - if (minValue === maxValue){ - const phraseRandom = Math.round( Math.random()); - const answerPhrase = (phraseRandom === 1) ? - `Вы загадали неправильное число!\n\u{1F914}` : - `Я сдаюсь..\n\u{1F92F}`; - - answerField.innerText = answerPhrase; - gameRun = false; - } else { - minValue = answerNumber + 1; - answerNumber = Math.floor((minValue + maxValue) / 2); - orderNumber++; - orderNumberField.innerText = orderNumber; - answerField.innerText = `Вы загадали число ${answerNumber }?`; - } +let formMinValue = document.querySelector("#formMinValue"); +let formMaxValue = document.querySelector("#formMaxValue"); + +let minValue = +formMinValue.value; +let maxValue = +formMaxValue.value; + + + + +let ed; +let desEleven; +let des; +let sot; + +let minus; +let ostatok; +let stringNumber; + +let answerNumber; +let orderNumber; +let gameRun = false; +let on = true; +let discharge; + +let phraseRandom; + +const orderNumberField = document.getElementById("orderNumberField"); +const answerField = document.getElementById("answerField"); + + +/*Связываем riddle c выпадающем элементом с сообщением */ +const riddle = document.querySelector("#riddle"); +const start = document.querySelector("#start"); + +formMinValue.value = "0"; /* Минимальное значение */ +formMaxValue.value = "100"; /* Минимальное значение */ + +start.addEventListener("click", NewGame); + +function NewGame() { + orderNumber = 1; + orderNumberField.innerText = orderNumber; + + if (on) { + start.textContent = "ЗАНОВО"; + start.className = "btn btn-danger btn-lg btn-block"; + minValue = +formMinValue.value; /* Минимальное значение */ + maxValue = +formMaxValue.value; /*Максимальное значение*/ + + minValue = minValue >= 1000 ? 999 : minValue <= -1000 ? -999 : minValue; + maxValue = maxValue >= 1000 ? 999 : maxValue <= -1000 ? -999 : maxValue; + + minValue = (minValue === 0 && "0") || (minValue !== 0 && minValue) || 20; + maxValue = (maxValue === 0 && "0") || (maxValue !== 0 && maxValue) || 80; + + answerNumber = Math.floor((minValue + maxValue) / 2); + + + gameRun = true; + + + answerField.innerText = `Вы загадали число ${answerNumber}?`; + + /*Сообщение в выпадающем элементе*/ + riddle.innerText = `Загадайте любое целое число от ${minValue} + до ${maxValue}, а я его угадаю`; + on = false; + + } else { + on = true; + start.textContent = "НАЧАТЬ ИГРУ"; + formMinValue.value = "0"; /* Минимальное значение */ + formMaxValue.value = "100"; /* Минимальное значение */ + start.className = "btn btn-success btn-lg btn-block"; + answerField.textContent = "Введите значения."; + } +} + +function messageError() { + phraseRandom = Math.round(Math.random() * 3); + const answerPhrase = + phraseRandom == 0 + ? `Вы загадали неправильное число!` + : phraseRandom == 1 + ? `Я сдаюсь..` + : `Шутки шутить вздумал?`; + answerField.innerText = answerPhrase; + gameRun = false; +} + +function messageQuestion() { +if (gameRun) { + + discharge = answerNumber; + + if (String(discharge)[0] == "-") { + discharge = String(-discharge); + } + + +/***************************/ +/* Обработка и вывод сотен */ +/***************************/ + if (String(discharge).length == "2") { + ostatok = discharge / 10; + ostatok = String(ostatok).substring(2, 3); + + + } else if (String(discharge).length == "3") { + ostatok = discharge / 100; + + if (String(ostatok).length == 4) { + ostatok = String(ostatok).substring(2, 4); + + } else if (String(ostatok).length == 3) { + ostatok = String(discharge).substring(1, 3) ; + } + } + + +/***************************/ +/* Обработка и вывод десятков */ +/***************************/ + + if (String(discharge).length == "1") { + ed = +(discharge); + edinici(); + stringNumber = ed + /*alert(stringNumber);*/ + + + } else if (discharge % 10 == "0" && String(discharge).length == "2") { + des = +(discharge); + desyatki(); + stringNumber = des; + /*alert(stringNumber);*/ + + + } else if (discharge >= 11 && discharge <= 19 && String(discharge).length == "2") { + desEleven = +(discharge); + desyatkiEleven(); + stringNumber = desEleven; + /*alert(stringNumber);*/ + + + } else if (discharge % 10 != 0 && discharge > 19 && String(discharge).length == "2") { + des = +(discharge - ostatok); + desyatki(); + + ed = +(ostatok); + edinici(); + + stringNumber = (des + " " + ed); + console.log(stringNumber); + /*alert(stringNumber);*/ + + } + + + + +/***************************/ +/* Обработка и вывод сотен */ +/***************************/ + +if (discharge % 100 == 0 && String(discharge).length == "3") { + sot = +(discharge); + sotni(); + stringNumber = sot + /*alert(stringNumber);*/ + +/*******Сотни + еденици (101, 102, 103)*****/ + +} else if (discharge % 100 != 0 && ostatok[0] == 0 && String(discharge).length == "3") { + sot = +(discharge - ostatok[1]); + sotni(); + + ed = +(ostatok[1]); + edinici(); + + stringNumber = (sot + " " + ed); + /*alert(stringNumber);*/ + + /*******Сотни + десятки (110, 120, 250, 360)*********/ + +} else if (discharge % 100 != 0 && String(discharge)[2] == 0 && String(discharge).length == "3") { + sot = +(discharge - ostatok); + sotni(); + + des = +(ostatok); + desyatki(); + + stringNumber = (sot + " " + des); + /*alert(stringNumber);*/ + + /*******Сотни + десятки (11, 12, 13)*********/ + +} else if (ostatok >= 11 && ostatok <= 19 && String(discharge).length == "3") { + sot = +(discharge - ostatok); + sotni(); + + desEleven = +(ostatok); + desyatkiEleven(); + + stringNumber = (sot + " " + desEleven); + /*alert(stringNumber);*/ + +/*******Сотни + десятки + единицы (121, 365, 249)*********/ + +} else if (discharge % 100 != 0 && discharge > 119 && String(discharge).length == "3") { + sot = +(discharge - ostatok); + sotni(); + + des = +(ostatok - ostatok[1]); + desyatki(); + + ed = +(ostatok[1]); + edinici(); + + stringNumber = (sot + " " + des + " " + ed); + /*alert(stringNumber);*/ +} + + +/*answerPhrase = + phraseRandom === 1 + ? `Вы загадали число ${answerNumber}?` + : phraseRandom === 2 + ? `Я думаю, это оно ${answerNumber}?` + : `Скажи что я прав ${answerNumber}?`; +answerField.innerText = answerPhrase;*/ +phraseRandom = Math.round(Math.random() * 3); + +console.log(phraseRandom) +switch(phraseRandom) { + case 0: + if (stringNumber.length < 20 && answerNumber > 0) { + answerField.innerText = `Вы загадали число ${stringNumber}?`; + + } else if (stringNumber.length > 20 && answerNumber > 0 ){ + answerField.innerText = `Вы загадали число ${answerNumber}?`; + + } else if (stringNumber.length < 20 && answerNumber < 0 ){ + answerField.innerText = `Вы загадали число минус ${stringNumber}?`; + + } else if (stringNumber.length > 20 && answerNumber < 0 ){ + answerField.innerText = `Вы загадали число минус ${answerNumber}?`; + } + break; + + + case 1: + if (stringNumber.length < 20 && answerNumber > 0) { + answerField.innerText = `Я думаю, это оно ${stringNumber}?`; + + } else if (stringNumber.length > 20 && answerNumber > 0 ){ + answerField.innerText = `Я думаю, это оно ${answerNumber}?`; + + } else if (stringNumber.length < 20 && answerNumber < 0 ){ + answerField.innerText = `Я думаю, это оно минус ${stringNumber}?`; + + } else if (stringNumber.length > 20 && answerNumber < 0 ){ + answerField.innerText = `Я думаю, это оно минус ${answerNumber}?`; + } + break; + + + case 2: + if (stringNumber.length < 20 && answerNumber > 0) { + answerField.innerText = `Скажи что я прав ${stringNumber}?`; + + } else if (stringNumber.length > 20 && answerNumber > 0 ){ + answerField.innerText = `Скажи что я прав ${answerNumber}?`; + + } else if (stringNumber.length < 20 && answerNumber < 0 ){ + answerField.innerText = `Скажи что я прав минус ${stringNumber}?`; + + } else if (stringNumber.length > 20 && answerNumber < 0 ){ + answerField.innerText = `Скажи что я прав минус ${answerNumber}?`; + } + break; + + default: + if (stringNumber.length < 20 && answerNumber > 0) { + answerField.innerText = `Скажи что я прав ${stringNumber}?`; + + } else if (stringNumber.length > 20 && answerNumber > 0 ){ + answerField.innerText = `Скажи что я прав ${answerNumber}?`; + + } else if (stringNumber.length < 20 && answerNumber < 0 ){ + answerField.innerText = `Скажи что я прав минус ${stringNumber}?`; + + } else if (stringNumber.length > 20 && answerNumber < 0 ){ + answerField.innerText = `Скажи что я прав минус ${answerNumber}?`; + } + } +} +} + + +function desyatkiEleven() { + switch (desEleven) { + case 11: desEleven = "одиннадцать"; break; + case 12: desEleven = "двенадцать"; break; + case 13: desEleven = "тринадцать"; break; + case 14: desEleven = "четырнадцать"; break; + case 15: desEleven = "пятнадцать"; break; + case 16: desEleven = "шестнадцать"; break; + case 17: desEleven = "семнадцать"; break; + case 18: desEleven = "восемнадцать"; break; + case 19: desEleven = "девятнадцать"; break; + } +} + +function edinici() { + switch (ed) { + case 0: ed = "ноль"; break; + case 1: ed = "один"; break; + case 2: ed = "два"; break; + case 3: ed = "три"; break; + case 4: ed = "четыре"; break; + case 5: ed = "пять"; break; + case 6: ed = "шесть"; break; + case 7: ed = "семь"; break; + case 8: ed = "восемь"; break; + case 9: ed = "девять"; break; + } +} + + + +function desyatki() { + switch (des) { + case 10: des = "десять"; break; + case 20: des = "двадцать"; break; + case 30: des = "тридцать"; break; + case 40: des = "сорок"; break; + case 50: des = "пятьдесят"; break; + case 60: des = "шестьдесят"; break; + case 70: des = "семьдесят"; break; + case 80: des = "восемьдесят"; break; + case 90: des = "девяносто"; break; + } +} + +function sotni() { + switch (sot) { + case 100: sot = "сто"; break; + case 200: sot = "двести"; break; + case 300: sot = "триста"; break; + case 400: sot = "четыреста"; break; + case 500: sot = "пятьсот"; break; + case 600: sot = "шестьсот"; break; + case 700: sot = "семьсот"; break; + case 800: sot = "восемьсот"; break; + case 900: sot = "девятьсот"; break; + } +} + + +/* Кнопка больше */ +document.querySelector("#btnOver").addEventListener("click", function () { + if (gameRun && on==false) { + if (minValue === maxValue || minValue > maxValue) { + messageError(); + + } else { + minValue = answerNumber + 1; + answerNumber = Math.floor((minValue + maxValue) / 2); + console.log(`minValue ${minValue}, maxValue ${maxValue}`); + orderNumber++; + orderNumberField.innerText = orderNumber; + messageQuestion(); } -}) + } +}); -document.getElementById('btnEqual').addEventListener('click', function () { - if (gameRun){ - answerField.innerText = `Я всегда угадываю\n\u{1F60E}` - gameRun = false; +/* Кнопка меньше */ +document.querySelector("#btnLess").addEventListener("click", function () { + if (gameRun && on==false) { + if (minValue >= maxValue) { + messageError(); + + } else { + maxValue = answerNumber - 1; + answerNumber = Math.ceil((minValue + maxValue) / 2); + console.log(`maxValue ${maxValue}, minValue ${minValue}`); + orderNumber++; + orderNumberField.innerText = orderNumber; + messageQuestion(); } -}) + } +}); + +/* Кнопка верно */ +document.getElementById("btnEqual").addEventListener("click", function () { + if (gameRun) { + phraseRandom = Math.round(Math.random() * 3); + const answerPhrase = + phraseRandom == 0 + ? `Я всегда угадываю :)` + : phraseRandom == 1 + ? `Я говорил, говорил что угадаю :)` + : `Прорицатель, мое второе имя :)`; + answerField.innerText = answerPhrase; + gameRun = false; + } +}); diff --git a/bjs/08_if_else/style.css b/bjs/08_if_else/style.css index f8d7aec7..d2f23ea7 100644 --- a/bjs/08_if_else/style.css +++ b/bjs/08_if_else/style.css @@ -1,4 +1,12 @@ .game-card { - height: 100vh; - font-family: 'Open Sans', monospace; + height: 100vh; + font-family: 'Roboto', sans-serif; +} + +#start, #collapseExample { + margin: 0 0 10px; +} + +#riddle { + text-align: center; } diff --git a/bjs/10_function_object/index.html b/bjs/10_function_object/index.html index 9852f4cd..e843491b 100644 --- a/bjs/10_function_object/index.html +++ b/bjs/10_function_object/index.html @@ -3,36 +3,64 @@ Генератор случайных пользователей - - - + + + + -
-
-
-
-
-

Окно результатов генерации

+ +
+
+
+

ОКНО РЕЗУЛЬТАТОВ ГЕНЕРАЦИИ

+
+
+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+
-
-
-
-

Генерация фамилии

-

Имя: Иван

-

- Генерация пола - , - Генерация года рождения -

-
-
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ + + diff --git a/bjs/10_function_object/init.js b/bjs/10_function_object/init.js index 84f4db29..00cfd467 100644 --- a/bjs/10_function_object/init.js +++ b/bjs/10_function_object/init.js @@ -1,7 +1,23 @@ -window.onload = function() -{ + +document.querySelector('#start').addEventListener("click", function(){ + const initPerson = personGenerator.getPerson(); - document.getElementById('firstNameOutput').innerText = initPerson.firstName; -}; + document.getElementById('firstNameOutput').value = initPerson.firstName; + document.querySelector('#surnameOutput').value = initPerson.surname; + document.querySelector('#genderOutput').value = initPerson.gender; + document.querySelector('#middleNameOutput').value = initPerson.middleName; + document.querySelector('#professionOutput').value = initPerson.profession; + document.querySelector('#birthYearOutput').value = `${initPerson.birthYear} года`; +}); + +document.querySelector('#reset').addEventListener("click", function(){ + const initPerson = personGenerator.getPerson(); + document.getElementById('firstNameOutput').value = ""; + document.querySelector('#surnameOutput').value = ""; + document.querySelector('#genderOutput').value = ""; + document.querySelector('#middleNameOutput').value = ""; + document.querySelector('#professionOutput').value = ""; + document.querySelector('#birthYearOutput').value = ""; +}); \ No newline at end of file diff --git a/bjs/10_function_object/personGenerator.js b/bjs/10_function_object/personGenerator.js index 1aabfe9b..da4dfd4f 100644 --- a/bjs/10_function_object/personGenerator.js +++ b/bjs/10_function_object/personGenerator.js @@ -1,25 +1,28 @@ -const personGenerator = { - surnameJson: `{ +const personGenerator = { /* Создаем объек*/ + /*Мужские Фамилии (свойство объекта) : со значением JSON объекта */ + surnameJson: `{ "count": 15, "list": { - "id_1": "Иванов", + "id_1": "Бабкин", "id_2": "Смирнов", "id_3": "Кузнецов", "id_4": "Васильев", "id_5": "Петров", "id_6": "Михайлов", "id_7": "Новиков", - "id_8": "Федоров", + "id_8": "Буров", "id_9": "Кравцов", "id_10": "Николаев", "id_11": "Семёнов", "id_12": "Славин", "id_13": "Степанов", "id_14": "Павлов", - "id_15": "Александров", + "id_15": "Зенин", "id_16": "Морозов" } }`, + + /*Мужские Имена (свойство объекта) : со значением JSON объекта */ firstNameMaleJson: `{ "count": 10, "list": { @@ -36,35 +39,257 @@ const personGenerator = { } }`, - GENDER_MALE: 'Мужчина', + firstNameFemaleJson: `{ + "count": 10, + "list": { + "id_1": "Александра", + "id_2": "Екатерина", + "id_3": "Елизавета", + "id_4": "Вера", + "id_5": "Анна", + "id_6": "Мария", + "id_7": "Анастасия", + "id_8": "Елена", + "id_9": "Виктория", + "id_10": "Светлана" + } + }`, + + middleNameMaleJson: `{ + "count" : 10, + "list" : { + "id_1": "Валерьевич", + "id_2": "Петрович", + "id_3": "Васильевич", + "id_4": "Тимофеевич", + "id_5": "Сергеевич", + "id_6": "Владимирович", + "id_7": "Игоревич", + "id_8": "Николаевич", + "id_9": "Федорович", + "id_10": "Андреевич" + } + }`, + + middleNameFemaleJson: `{ + "count" : 10, + "list" : { + "id_1": "Валерьевна", + "id_2": "Петровна", + "id_3": "Васильевна", + "id_4": "Тимофеевна", + "id_5": "Сергеевна", + "id_6": "Владимировна", + "id_7": "Игоревна", + "id_8": "Николаевна", + "id_9": "Федоровна", + "id_10": "Андреевна" + } + }`, + + + professionMaleJson: `{ + "count" : 12, + "list" : { + "id_1" : "Токарь", + "id_2" : "Электрик", + "id_3" : "Энергетик", + "id_4" : "Сварщик", + "id_5" : "Слесарь", + "id_6" : "Инженер", + "id_7" : "Кузнец", + "id_8" : "Моряк", + "id_9" : "Летчик", + "id_10" : "Шахтер", + "id_11" : "Лесоруб", + "id_12" : "Сантехник" + } + }`, + + professionFemaleJson: `{ + "count" : 9, + "list" : { + "id_1" : "Швея", + "id_2" : "Учитель", + "id_3" : "Косметолог", + "id_4" : "Врач", + "id_5" : "Бухгалтер", + "id_6" : "Маркетолог", + "id_7" : "Стюардесса", + "id_8" : "Косметолог", + "id_9" : "Веб-дизайнер" + } + }`, + + + /*dateOfbirth :*/ + + + /*ПЕРЕМЕННЫЕ ЖЕНСКОГО И МУЖСКОГО ПОЛА КОТОРЫЕ НУЖНО БУДЕТ ДОБАВИТЬ В СЛУЧАЙНУЮ ГЕНЕРАЦИЮ + ПРИ ДОБАВЛЕНИЕ ПОЛА ПОТРЕБУЕТСЯ СОБЛЮДАТЬ ЖЕНСКИЕ И МУЖСКИЕ ИМЕНА */ + GENDER_MALE: 'Мужчина', GENDER_FEMALE: 'Женщина', + /*метод объекта ----randomIntNumber---- отвечает за случайную генерацию*/ + /*к методу присваивается стрелочная функция которая генерирует случайные целые числа*/ randomIntNumber: (max = 1, min = 0) => Math.floor(Math.random() * (max - min + 1) + min), + + /*метот ---randomValue--- отвечает за преобразование строк JSON в объект JS + благодаря объекту JSON.parse(json) и происходит это преобразование, + внутри метода анонимная функция принимает аргумент json*/ + randomValue: function (json) { - const obj = JSON.parse(json); + const obj = JSON.parse(json); + + /*id_(формируется номер для вывода. вызывается метод randomIntNumber(max, min) + max=obj.count, min=1) и по итогу id=3 (значения id генерируются разные)*/ + const prop = `id_${this.randomIntNumber(obj.count, 1)}`; // this = personGenerator + + /*возвращает значение свойства id_3*/ return obj.list[prop]; }, - randomFirstName: function() { - - return this.randomValue(this.firstNameMaleJson); + /*метод активирующий случайную генерацию Имен*/ + randomFirstName: function() { + /*Вызываем метот объекта this = personGenerator + с аргументом на JSON объект*/ + if (this.person.gender == this.GENDER_MALE){ + return this.randomValue(this.firstNameMaleJson); + } else { + return this.randomValue(this.firstNameFemaleJson); + }; }, + /*метод активирующий случайную генерацию Фамилий*/ + randomSurname: function() { + if (this.person.gender == this.GENDER_MALE) { + return this.randomValue(this.surnameJson); + + } else { + let surnamefeMale = this.randomValue(this.surnameJson); + return (`${surnamefeMale}а`) + }; + }, - randomSurname: function() { + /*метод активирующий случайную генерацию Отчества*/ + randomMiddleName : function() { + if (this.person.gender == this.GENDER_MALE) { + return this.randomValue(this.middleNameMaleJson); + } else { + return this.randomValue(this.middleNameFemaleJson); + } + }, - return this.randomValue(this.surnameJson); + /*метод активирующий случайную генерацию профессии*/ + randomProfession : function() { + + if (this.person.gender == this.GENDER_MALE) { + return this.randomValue(this.professionMaleJson); + } else { + return this.randomValue(this.professionFemaleJson); + } + }, + randomGender: function() { + return this.randomIntNumber() ? this.GENDER_MALE : this.GENDER_FEMALE; }, + + randomBirthYear: function () { + var monthRandom = this.randomIntNumber(12, 1); + var year = this.randomIntNumber(2020, 1980); + var dayRandom; + var month; + + switch(monthRandom) { + case 1: + month = 'Января'; + dayRandom = this.randomIntNumber(31, 1); + break; + + case 2: + month = 'Февраля'; + if (year % 4 != 0 || (year % 100 == 0 & year % 400 != 0)) { + dayRandom = this.randomIntNumber(29, 1); + /*console.log('Обычный');*/ + + } else { + dayRandom = this.randomIntNumber(28, 1); + data = dayRandom + month + year; + /*console.log('Високосный');*/ + }; + break; + + case 3: + month = 'Марта'; + dayRandom = this.randomIntNumber(31, 1); + break; + + case 4: + month = 'Апреля'; + dayRandom = this.randomIntNumber(30, 1); + break; + + case 5: + month = 'Мая'; + dayRandom = this.randomIntNumber(31, 1); + break; + + case 6: + month = 'Июня'; + dayRandom = this.randomIntNumber(30, 1); + break; + + case 7: + month = 'Июля'; + dayRandom = this.randomIntNumber(31, 1); + break; + + case 8: + month = 'Августа'; + dayRandom = this.randomIntNumber(31, 1); + break; + + case 9: + month = 'Сентября'; + dayRandom = this.randomIntNumber(30, 1); + break; + + case 10: + month = 'Октября'; + dayRandom = this.randomIntNumber(31, 1); + break; + + case 11: + month = 'Ноября'; + dayRandom = this.randomIntNumber(30, 1); + break; + + case 12: + month = 'Декабря'; + dayRandom = this.randomIntNumber(31, 1); + break; + }; + + /*return this.randomIntNumber(2020, 1980);*/ + return (dayRandom + " " + month + " " + year); + }, + getPerson: function () { + this.person = {}; - // this.person.gender = this.randomGender(); + this.person.gender = this.randomGender(); + this.person.profession = this.randomProfession(); this.person.firstName = this.randomFirstName(); + this.person.surname = this.randomSurname(); + this.person.middleName = this.randomMiddleName(); + + + this.person.birthYear = this.randomBirthYear(); return this.person; } }; diff --git a/bjs/10_function_object/style.css b/bjs/10_function_object/style.css new file mode 100644 index 00000000..dd4ac22e --- /dev/null +++ b/bjs/10_function_object/style.css @@ -0,0 +1,21 @@ +.container { + height: 100vh; + font-family: 'Roboto', sans-serif; + display: flex; + justify-content: center; + align-items: center; +} + +p.m-0 { + text-align: center;; + color: white; +} + +.card-header { + background-color: cadetblue; +} + +label { + font-size: 10pt; + font-weight: 600; +}