Repository navigation
Expand file tree
/
Copy pathmain.js
More file actions
115 lines (94 loc) · 4.11 KB
/
Copy pathmain.js
File metadata and controls
115 lines (94 loc) · 4.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
// Этап 1. Создайте функцию, генерирующую массив парных чисел.
// Пример массива, который должна возвратить функция: [1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8].count - количество пар.
// const arr = [1, 2, 3, 4, 5, 6, 7, 8];
// let cardsCount = 4;
// let cardsCount = prompt("Введите количество пар", 2);
const cardsNumberArray = []
const game = document.getElementById("game");
let firstCard = null;
let seconCard = null;
//создание массива
function createNumbersArray(count) {
for (let i = 1; i <= count; i++) {
cardsNumberArray.push(i, i);
// cardsNumberArray.push(i);
}
}
// Этап 2. Создайте функцию перемешивания массива.
// Функция принимает в аргументе исходный массив и возвращает перемешанный массив. arr - массив чисел
function shuffle(arr) {
for (let i = 0; i < arr.length; i++) {
let randomIndex = Math.floor(Math.random() * arr.length);
let temp = arr[i];
arr[i] = arr[randomIndex];
arr[randomIndex] = temp;
}
return arr;
}
// createNumbersArray(cardsCount);
// console.log(cardsNumberArray);
// console.log(shuffle(cardsNumberArray))
// Этап 3. Используйте две созданные функции для создания массива перемешанными номерами.
// На основе этого массива вы можете создать DOM-элементы карточек.
// У каждой карточки будет свой номер из массива произвольных чисел.
// Вы также можете создать для этого специальную функцию. count - количество пар.
// Этап 4. На основе массива создайте DOM-элементы карточек:
// Создайте функцию, которая будет создавать карточку с номером из массива произвольных чисел.
// Добавьте событие клика, в котором будут условия и проверки на совпадение карточек.
function addTitle() {
const title = document.createElement("h1");
title.classList.add("mb-5");
title.style.textAlign = "center";
title.textContent = "Игра в пары";
return title;
}
function startGame(container, count) {
console.log(cardsNumberArray);
createNumbersArray(count);
shuffle(cardsNumberArray);
console.log(cardsNumberArray);
let body = document.getElementById("title");
let title = addTitle();
body.append(title);
for (const cardNumber of cardsNumberArray) {
let card = document.createElement("div");
card.textContent = cardNumber;
card.classList.add("card");
container.append(card);
card.addEventListener("click", function () {
if (card.classList.contains("open") || card.classList.contains("success")) {
return
}
if (firstCard !== null && seconCard !== null) {
firstCard.classList.remove("open");
seconCard.classList.remove("open");
firstCard = null;
seconCard = null;
}
// console.log(card);
card.classList.add("open");
if (firstCard === null) {
firstCard = card;
} else {
seconCard = card;
}
if (firstCard !== null && seconCard !== null) {
let firstCardNumber = firstCard.textContent
let secondCardNumber = seconCard.textContent
if (firstCardNumber === secondCardNumber) {
firstCard.classList.add("success");
seconCard.classList.add("success");
}
console.log("обе карточки открыты");
}
console.log(firstCard);
console.log(seconCard);
if (cardsNumberArray.length === document.querySelectorAll(".success").length) {
setTimeout(function() {
alert("Игра завершена, вы выйграли!")
}, 400);
}
});
}
}
// (function () { })();