diff --git a/Images/background_for_games.jpg b/Images/background_for_games.jpg new file mode 100644 index 0000000..a53d48c Binary files /dev/null and b/Images/background_for_games.jpg differ diff --git a/_mobile.scss b/_mobile.scss index 2f15a2f..302bd35 100644 --- a/_mobile.scss +++ b/_mobile.scss @@ -1,4 +1,4 @@ -@media (max-width: 767px) { +@media (max-width: 768px) { .center { padding-left: 16px; padding-right: 16px; @@ -73,11 +73,11 @@ font-size: 14px; line-height: 22px; } - .footer____game-1 { + .footer__game-1 { display: flex; flex-direction: column; } - .footer____game-2 { + .footer__game-2 { display: flex; flex-direction: column-reverse; } diff --git a/game1script.js b/game1script.js new file mode 100644 index 0000000..e69de29 diff --git a/game2script.js b/game2script.js new file mode 100644 index 0000000..754bc3f --- /dev/null +++ b/game2script.js @@ -0,0 +1,29 @@ +function wordsGame() { + let arr = [ + "Яблоко", + "Груша", + "Дыня", + "Виноград", + "Персик", + "Апельсин", + "Мандарин", + ]; + arr = arr.sort(() => Math.random() - 0.5); + alert(arr); + let userAnswer1 = prompt("Чему равнялся первый элемент массива?"); + let userAnswer2 = prompt("Чему равнялся первый элемент массива?"); + if ( + userAnswer1.toLowerCase() == arr[0].toLowerCase() && + userAnswer2.toLowerCase() == arr[6].toLowerCase() + ) { + alert("Поздравляем, Вы угадили!"); + } else if ( + userAnswer1.toLowerCase() == arr[0].toLowerCase() || + userAnswer2.toLowerCase() == arr[6].toLowerCase() + ) { + alert("Вы были близки к победе!"); + } else { + alert("Все ответы неверные"); + } +} +wordsGame(); diff --git a/hw4script.js b/hw4script.js index c108a29..c31f8d5 100644 --- a/hw4script.js +++ b/hw4script.js @@ -52,10 +52,28 @@ // } // alert("Iterated " + num + " times!"); // Exercise 6 -let day = 5; -for (let day = 5; day <= 31; day += 7) { - // почему +=? почему +=7 не в фигурных скобках? - alert( - "Сегодня пятница, " + day + " -е число. Необходимо подготовить отчет.!" - ); +// let day = 5; +// for (let day = 5; day <= 31; day += 7) { +// // почему +=? почему +=7 не в фигурных скобках??? +// alert( +// "Сегодня пятница, " + day + " -е число. Необходимо подготовить отчет.!" +// ); +// } + +// Exercise 7 +// const obj = { +// Але: "ша", +// Гри: "ша", +// Ди: "ма", +// }; +// for (const capital in obj) { +// alert(capital + "- это " + obj[capital]); +// } +const obj = { + Baby: "Boss", + Art: "Museum", + Assassin: "creed Brotherhood", +}; +for (const game in obj) { + alert(game + "'S " + obj[game]); } diff --git a/hw5script.js b/hw5script.js new file mode 100644 index 0000000..60cfc0f --- /dev/null +++ b/hw5script.js @@ -0,0 +1,144 @@ +// Exercise 1 +const least = (a, b) => { + if (a < b) { + return a; + } else { + return b; + } +}; +console.log(least(4, 8)); +console.log(least(6, 6)); +// or +function min(a, b) { + return a < b ? a : b; +} +console.log(min(4, 8)); +// Exercise 2 +const evenNum = (a) => { + if (a % 2 == 0) { + return "Четное число"; + } else { + return "Нечетное число"; + } + // Как сделать с prompt? +}; +alert(evenNum(7)); +or + +let number = prompt("Введите число"); + +if (number % 2 == 0) { + function evenNum() { + alert("Четное число"); + } +} else { + function evenNum() { + alert("Нечетное число"); + } +} +evenNum(); +// or +function evenNum(a) { + return a % 2 == 0 ? "Четное число" : "Нечетное число"; +} +alert(evenNum(7)); +// Exercise 3.2 +const squareNum = (a) => { + let result = a ** 2; + return result; +}; +console.log(squareNum(3)); +// Exercise 3.1 +let number = prompt("Введите число"); +function squareNum(a) { + return a ** 2; +} +alert(squareNum(Number)); +// Exercise 4 +let age = prompt("Сколько Вам лет?"); +if (age < 0) { + function printMessage() { + alert("Вы ввели неправильное значение"); + } +} else if (age < 12) { + function printMessage() { + alert("Привет, друг!"); + } +} else { + function printMessage() { + alert("Добро пожаловать!"); + } +} +{ +} +printMessage(); +// Exercise 5 +const mult = (a, b) => { + if (isNaN(a) || isNaN(b)) { + return "Одно или оба значения не являются числом"; + } + let result = a * b; + return result; +}; +alert(mult(prompt("Введите первое число"), prompt("Введите второе число"))); + +// // Exercise 6 +const mult = (a) => { + if (isNaN(a)) { + return "Значение не является числом"; + } + let result = a ** 3; + return result; +}; +alert(mult(prompt("Введите первое число"))); +// Exercise 7 +function getСircleArea() { + return this.radius ** 2 * Math.PI; +} +function getСirclePerimeter() { + return this.radius * 2 * Math.PI; +} + +const circle1 = { + radius: 3, + + getArea: getСircleArea, + getPerimeter: getСirclePerimeter, +}; + +const circle2 = { + radius: 7, + + getArea: getСircleArea, + getPerimeter: getСirclePerimeter, +}; + +alert(circle1.getArea()); +alert(circle1.getPerimeter()); +alert(circle2.getArea()); +alert(circle2.getPerimeter()); +// Exercise 8 +const season = (a) => { + if (isNaN(a)) { + return "Вы ввели не число"; + } + if (a == 12 || (a >= 1 && a <= 2)) { + // Ошибка в синтаксисе? Не видит число 12 + return "Зима"; + } else if (a >= 3 && a <= 5) { + return "Весна"; + } else if (a >= 6 && a <= 8) { + return "Лето"; + } else if (a >= 9 && a <= 11) { + return "Осень"; + } else { + return "Такого месяца не существует"; + } + { + } + { + } + { + } +}; +alert(season(prompt("Введите номер месяца"))); diff --git a/hw6script.js b/hw6script.js new file mode 100644 index 0000000..fd8dd26 --- /dev/null +++ b/hw6script.js @@ -0,0 +1,110 @@ +const newspaper = { + sports: { + title: "ARod Hits Home Run", + writers: ["Miramon Nuevo", "Rick Reilly", "Woddy Paige"], + }, + business: { + title: "GE Stock Dips Again", + writers: ["Adam Smith", "Albert Humphrey", "Charles Handy"], + }, + movies: { + title: "Superman Is A Flop", + writers: ["Rogert Ebert", "Andrew Sarris", "Wesley Morris"], + }, +}; +newspaper.sports.title; +newspaper.business.writers[0]; +newspaper.movies.writers[1]; +// Exersice 1 +const numbers = [1, 5, 4, 10, 0, 3]; + +for (let i = 0; i < numbers.length; i++) { + alert(numbers[i]); + if (numbers[i] === 10) break; + +} + +// Exersice 2 +const numbers = [1, 5, 4, 10, 0, 3]; +alert(numbers.indexOf(4)); +// Exersice 3 +let numbers = [1, 3, 5, 10, 20]; +numbers = numbers.join(" "); +alert(numbers); +// Exersice 4 + +const arr = []; +for (let i = 0; i < 3; i++) { + arr[i] = []; + for (let a = 0; a < 3; a++) { + arr[i][a] = 1; + } +} +alert(arr); +// Exersice 5 +let numbers = [1, 1, 1]; +numbers.push(2, 2, 2); +alert(numbers); +// Exercise 6 +let arrNum = [9, 8, 7, "a", 6, 5]; +arrNum = arrNum.sort(); +arrNum.pop(); +alert(arrNum); +// Exersice 7 +const numbers = [9, 8, 7, 6, 5]; +let num = Number(prompt("Пожалуйста, введите любое число")); +let search = numbers.includes(num); +alert(numbers.includes(num)); +// Exersice 8 +let letters = "abcdef"; +letters = letters.split(""); +letters.sort(); +letters.reverse(); +letters = letters.join(" "); +alert(letters); +// Exersice 9 +let arrNum = [ + [1, 2, 3], + [4, 5, 6], +]; +for (let item of arrNum) { + item = item.join(" "); +} +alert(arrNum); +// Exersice 10 +const arr = [9, 8, 7, 6, 5]; +for (let i = 0; i < arr.length - 1; i++) { + alert(arr[i] + arr[i + 1]); +} +// Exersice 11 +const num = [ + prompt("Пожалуйста, введите любое число"), + prompt("Пожалуйста, введите любое число"), + prompt("Пожалуйста, введите любое число"), + prompt("Пожалуйста, введите любое число"), +]; +const squareNum = num.map((el) => el ** 2); +alert(squareNum); +// Exersice 12 +function getLengthWords(words) { + return words.map((item) => item.length); +} +alert(getLengthWords(prompt("Введите слово"))); +// Exersice 13 +function filterPositive(array) { + return array.filter((el) => el > 0); +} + +filterPositive([-1, 0, 5, -10, 56]); // => [-1, -10] +filterPositive([-25, 25, 0, -1000, -2]); // => [-25, -1000, -2] +// Exersice 14 +const arr = [...Array(10)].map((e) => ~~(Math.random() * 10)); +const evenNum = arr.filter((el) => el % 2 == 0); +alert(evenNum); +alert(arr); +// Exersice 15 + +const average = (arr) => arr.reduce((a, b) => a + b, 0) / arr.length; +const result = average([...Array(6)].map((e) => ~~(Math.random() * 6))); +alert(result); +alert(average); diff --git a/hw7script.js b/hw7script.js new file mode 100644 index 0000000..7fbae94 --- /dev/null +++ b/hw7script.js @@ -0,0 +1,201 @@ +// Exrecise 1 +let str = "js"; +alert(str.toLocaleUpperCase()); +// Exrecise 2 +function searchStart(arr, subString) { + arr.forEach((element) => { + if (element.toLowerCase().startsWith(subString.toLowerCase())) { + alert(element); + } + }); + return null; +} +const animals = ["Кошка", "Кит", "Комар", "Носорог"]; +const products = ["яблоко", "груша", "гриб", "огурец"]; +const buildings = ["Дом", "Банк", "Больница", "Театр"]; + +// можно ли сделать одну функцию для всего массива? + +searchStart(["Кошка", "Кит", "Комар", "Носорог"], "ко"); // ['кошка', 'комар'] +searchStart(["яблоко", "груша", "гриб", "огурец"], "гру"); // ['груша'] +searchStart(["Дом", "Банк", "Больница", "Театр"], "Кино"); // [] + +// ================================================== + +const animals = ["Кошка", "Кит", "Комар", "Носорог"]; +const search = "ко"; + +animals.forEach((animal) => { + if (animal.toLowerCase().startsWith(search.toLowerCase())) { + alert(animal); + } +}); + +const products = ["яблоко", "груша", "гриб", "огурец"]; +const search = "гру"; + +products.forEach((product) => { + if (product.toLowerCase().startsWith(search.toLowerCase())) { + alert(product); + } +}); + +const buildings = ["Дом", "Банк", "Больница", "Театр"]; +const search = "Кино"; + +buildings.forEach((building) => { + if (building.toLowerCase().startsWith(search.toLowerCase())) { + alert(building); + } +}); +// Exrecise 3 +alert(Math.floor(32.58884)); +alert(Math.ceil(32.58884)); +alert(Math.round(32.58884)); +// Exrecise 4 +const arr = [52, 53, 49, 77, 21, 32]; +alert(Math.min(...arr)); +alert(Math.max(...arr)); +// Exrecise 5 +function randomNum() { + alert(Math.round(Math.random() * 10)); +} +// Exrecise 6 Проверьте пожалуйста суждение +function getRandomArrNumbers(num) { + // создаю функцию, которая на входе принимает целое число + const arr = []; + // создаю пустой массив куда будут приходить параметры после вызова функции + const length = num / 2; + // создаю переменную, которая будет отвечать за длину массива + for (let i = 0; i < length; i++) { + // задаю условия для прогрессирующей функции + arr.push(Math.floor(Math.random() * num)); + // с помощью метода push добавляем в массив новое значение сгенерированное методом random и округляем его + } + return arr; + // возвращаем уже новый массив +} + +const randomArray = getRandomArrNumbers(7); +alert(randomArray); +// Exrecise 7 +function getTwoNumbers(minValue, maxValue) { + return Math.round(Math.random() * (maxValue - minValue)); +} +alert(getTwoNumbers(2, 5)); +// Exrecise 8 +const days = [ + "Воскресенье", + "Понедельник", + "Вторник", + "Среда", + "Четверг", + "Пятница", + "Суббота", +]; +const months = [ + "Январь", + "Февраль", + "Март", + "Апрель", + "Май", + "Июнь", + "Июль", + "Август", + "Сентябрь", + "Октябрь", + "Ноябрь", + "Декабрь", +]; + +let myDate = new Date(); +let fullDate = + "Сегодня: " + + myDate.getDate() + + " " + + months[myDate.getMonth()] + + " " + + myDate.getFullYear() + + ", " + + days[myDate.getDay()]; + +alert(fullDate); +// Exrecise 9 +let days = 73; +let day = new Date(); +day.setDate(day.getDate() + +days); +alert("через " + days + " дней, будет " + day); +// Exrecise 10 +const days = [ + "Воскресенье", + "Понедельник", + "Вторник", + "Среда", + "Четверг", + "Пятница", + "Суббота", +]; +const months = [ + "Январь", + "Февраль", + "Март", + "Апрель", + "Май", + "Июнь", + "Июль", + "Август", + "Сентябрь", + "Октябрь", + "Ноябрь", + "Декабрь", +]; +let myDate = new Date(); +let fullDate = + "Сегодня: " + + myDate.getDate() + + " " + + months[myDate.getMonth()] + + ", " + + days[myDate.getDay()]; + +alert( + fullDate + + " " + + myDate.getHours() + + ":" + + myDate.getMinutes() + + ":" + + myDate.getSeconds() +); +// Exrecise 11 +function wordsGame() { + let arr = [ + "Яблоко", + "Груша", + "Дыня", + "Виноград", + "Персик", + "Апельсин", + "Мандарин", + ]; + arr = arr.sort(() => Math.random() - 0.5); + alert(arr); + // как добавить пробел в alert arr, чтобы при этом ответы можно было вводить без пробела? + let userAnswer1 = prompt("Чему равнялся первый элемент массива?"); + let userAnswer2 = prompt("Чему равнялся первый элемент массива?"); + if ( + userAnswer1.toLowerCase() == arr[0].toLowerCase() && + userAnswer2.toLowerCase() == arr[6].toLowerCase() + ) { + alert("Поздравляем, Вы угадили!"); + } else if ( + userAnswer1.toLowerCase() == arr[0].toLowerCase() || + userAnswer2.toLowerCase() == arr[6].toLowerCase() + ) { + alert("Вы были близки к победе!"); + } else { + alert("Все ответы неверные"); + } +} +wordsGame(); +// что нужно сделать, чтобы при перезагрузке скрипт не срабатывал? А работал только при клике diff --git a/hw8script.js b/hw8script.js new file mode 100644 index 0000000..25a23dc --- /dev/null +++ b/hw8script.js @@ -0,0 +1,83 @@ +const fibonacci = [1, 1, 2, 3, 5, 8]; + +// TODO: Допишите код, чтобы в консоль ниже выводились правильные значения +// Используйте метод map, чтобы получить массив fibonacci, в котором все числа умножены на 2 +const multipleByTwoFib = fibonacci.map((el) => el * 2); +// Используйте метод map, чтобы получить массив fibonacci, в котором к каждому числу добавили 10 +const plusTenFib = fibonacci.map((el) => el + 10); +// Используйте метод filter, чтобы получить массив, в который входят числа Фибоначчи больше 3 +const onlyBigFib = fibonacci.filter((el) => el > 3); + +alert(multipleByTwoFib); // => [2, 2, 4, 6, 10, 16] +alert(plusTenFib); // => [11, 11, 12, 13, 15, 18] +alert(onlyBigFib); // => [5, 8] + +function callbackWithArrayLength(arr, callback) { + callback(arr.length); +} + +callbackWithArrayLength([1], (length) => { + alert(length); +}); + +callbackWithArrayLength([1, 1], (len) => { + alert(len); +}); +callbackWithArrayLength([1, 1, 1, 1, 1], (l) => { + alert(l); +}); + +function log(arrItem) { + alert("Элемент массива:", arrItem); +} + +function each(arr, callback) { + for (let i = 0; i < arr.length; i++) { + callback(arr[i]); + } +} + +each(["Глеб", "Олег", "Татьяна", "Платон"], log); + +// Homework8 +// Exersice 1 +const people = [ + { name: "Глеб", age: 29 }, + { name: "Анна", age: 17 }, + { name: "Олег", age: 7 }, + { name: "Оксана", age: 47 }, +]; + +people.sort(function (eld, young) { + return eld.age - young.age; + // alert(people.sort(function (eld, young) { + // return eld.age - young.age;) + // почему без alert работет как нужно, а с alert нет? +}); +// Exersice 2 +function isPositive(num) { + return num > 0; +} +function isMale(person) { + return person.gender == "male"; +} +function filter(arr, ruleFunction) { + const output = []; + arr.map((el) => { + if (ruleFunction(el)) { + output.push(el); + } + }); + return output; +} + +console.log(filter([3, -4, 1, 9], isPositive)); // Должен выводить [3, 1, 9] + +const people = [ + { name: "Глеб", gender: "male" }, + { name: "Анна", gender: "female" }, + { name: "Олег", gender: "male" }, + { name: "Оксана", gender: "female" }, +]; + +console.log(filter(people, isMale)); // Должен выводить [{name: 'Глеб', gender: 'male'}, {name: 'Олег', gender: 'male'}] diff --git a/index.html b/index.html index e87db70..4263716 100644 --- a/index.html +++ b/index.html @@ -41,9 +41,9 @@