Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
f9beab0
Количество жизней
KarinaSkyeng Jul 27, 2024
d520b6a
счетчик ошибок работает
KarinaSkyeng Jul 27, 2024
eb2074e
Счетчик ошибок в Readme
KarinaSkyeng Jul 27, 2024
6aafae8
добавлена оценка времени
KarinaSkyeng Jul 27, 2024
5880340
добавлена кнопка играть
KarinaSkyeng Jul 28, 2024
625062a
Стилизован выбор сложности и режима
KarinaSkyeng Jul 28, 2024
5135372
доработка дз
KarinaSkyeng Jul 29, 2024
09db744
Сложный режим работает?
KarinaSkyeng Aug 2, 2024
1215258
кастомный чекбокс не работает
KarinaSkyeng Aug 2, 2024
eda923c
доработка
KarinaSkyeng Aug 2, 2024
cc0096f
чекбокс
KarinaSkyeng Aug 3, 2024
5b64dd7
Чекбокс похож на оригинал
KarinaSkyeng Aug 3, 2024
5c322b2
Create Leaderboard
KarinaSkyeng Aug 4, 2024
f7f532d
доработки
KarinaSkyeng Aug 4, 2024
3a6f29b
дз- по лидерборду
KarinaSkyeng Aug 26, 2024
eecd65a
дополнения
KarinaSkyeng Aug 26, 2024
aac1787
Пользователь добавляется на либерборд
KarinaSkyeng Aug 29, 2024
3707581
создание суперсилы
KarinaSkyeng Sep 7, 2024
d0cf4a7
Ачивки
KarinaSkyeng Sep 8, 2024
8f49272
Добавление пользователя с ачивками
KarinaSkyeng Sep 8, 2024
78aca3a
Kursovaya
KarinaSkyeng Sep 8, 2024
b622c54
в
KarinaSkyeng Sep 8, 2024
bf42861
Ачивки в достиженя добавляются всегда
KarinaSkyeng Sep 10, 2024
82c5216
Теперь ачивки вообще не добавляются
KarinaSkyeng Sep 11, 2024
635d2ce
Ачивки добавляются
KarinaSkyeng Sep 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ module.exports = {
bracketSpacing: true,
arrowParens: "avoid",
htmlWhitespaceSensitivity: "ignore",
endOfLine: "auto",
};
40 changes: 40 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,43 @@ https://skypro-web-developer.github.io/react-memo/

Запускает eslint проверку кода, эта же команда запускается перед каждым коммитом.
Если не получается закоммитить, попробуйте запустить эту команду и исправить все ошибки и предупреждения.

## Счётчик ошибок

В игре реализован счётчик ошибок, который показывает количество оставшихся попыток.

### Формат отображения

- "Осталось попыток: X"

### Обоснование выбора

Этот формат позволяет игрокам легко понять, сколько попыток у них осталось, без отвлечения от игры. Использование красного цвета привлекает внимание к этой важной информации.

## Оценка времени работы

- **Инициализация игры**: O(n)
- Игра инициализируется на основе количества карт. Чем больше карт, тем больше времени потребуется для их инициализации.
- **Обработка клика по карте**: O(1)
- Время на обработку клика по карте фиксированное, так как это простое действие — переворот карты.
- **Проверка совпадений**: O(1)
- Проверка совпадения двух карт осуществляется мгновенно, так как это сравнение двух значений.
- **Проверка выигрыша**: O(n)
- Для проверки выигрыша необходимо пройти по всем картам, чтобы убедиться, что все пары найдены.
- **Перемешивание карт**: O(n log n)
- Перемешивание карт реализовано с использованием алгоритма, временная сложность которого составляет O(n log n), что характерно для эффективных алгоритмов сортировки.

Время на выполнение ДЗ №1:

- пларируемое - 12 часов
- фактическое - 15 часов

Время на выполнение ДЗ №2:

- пларируемое - 12 часов
- фактическое - 14 часов

Время на выполнение ДЗ №3:

- пларируемое - 12 часов
- фактическое - 13 часов
15 changes: 15 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"classnames": "^2.3.2",
"date-fns": "^3.6.0",
"gh-pages": "^6.0.0",
"lodash": "^4.17.21",
"react": "^18.2.0",
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/card_insight.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet">
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
Expand Down
17 changes: 17 additions & 0 deletions public/magic_ball.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 33 additions & 0 deletions public/magic_ball_empty.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions public/puzzle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions public/puzzle_empty.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 47 additions & 0 deletions src/api.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
const API_URL = "https://wedev-api.sky.pro/api/v2/leaderboard";

export async function getPlayersList() {
const response = await fetch(API_URL, {
method: "GET",
});

const data = await response.json();
return data.leaders;
}

// Получить ID достижений
// function getAchievementIds(achievements) {
// if (!Array.isArray(achievements)) {
// return [];
// }
// return achievements;
// }

export async function updateLeaderboard(name, time, achievements) {
// const achievementIds = getAchievementIds(achievements);
// console.log("Achievements IDs in updateLeaderboard:", achievementIds);

const requestBody = JSON.stringify({
name: name || "Пользователь",
time,
achievements,
});

try {
const response = await fetch(API_URL, {
method: "POST",
body: requestBody,
});

const responseBody = await response.text();
console.log("Ответ от сервера:", responseBody);

if (!response.ok) {
const errorText = await response.text();
throw new Error(`Не удалось обновить лидерборд: ${response.status} ${errorText}`);
}
} catch (error) {
console.error("Ошибка сети или другая ошибка:", error);
throw new Error("Не удалось обновить лидерборд");
}
}
11 changes: 11 additions & 0 deletions src/components/Ball/Ball.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import styles from "./Ball.module.css";

export function Ball() {
return (
<div className={styles.popup}>
<div className={styles.popupContent}>
<p className={styles.popupText}>Игра пройдена в сложном режиме</p>
</div>
</div>
);
}
34 changes: 34 additions & 0 deletions src/components/Ball/Ball.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
.popup {
position: absolute;
top: -100px;
}

.popupContent {
position: relative;
background-color: #C2F5FF;
border-radius: 8px;
padding: 15px 20px;
width: 212px;
text-align: center;
box-sizing: border-box;
}

.popupContent::after {
content: "";
position: absolute;
bottom: -20px;
left: 20px;
width: 0;
height: 0;
border-right: 25px solid transparent;
border-top: 20px solid #C2F5FF;
border-bottom: 5px solid transparent;
}

.popupText {
color: rgb(0, 73, 128);
font-family: StratosSkyeng;
font-size: 18px;
font-weight: 400;
text-align: center;
}
Loading