Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Memory Pair Game #361

Closed
wants to merge 9 commits into from
Closed

Memory Pair Game #361

wants to merge 9 commits into from

Conversation

hisbvdis
Copy link
Contributor

Memory Pair Game

Demo |
Code base

The code is submitted in a dedicated feature branch.

Only code files are submitted.

Please, review.

@stale
Copy link

stale bot commented Sep 14, 2022

This issue has been automatically marked as stale because there were no activity during last 14 days. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.

А. Чому так?
Найбільш розповсюджена причина: Студент не реагує на коментарі змінами коду і не задає запитань через брак часу або зміну життєвих пріоритетів. Покинуті піари відволікають менторів. Коли у студента з'явиться час, він/вона зможе перевідкрити той самий піар і продовжити роботу.

Б. Що робити, якщо в піарі нема оновлень, оскільки не зрозуміло, що треба зробити?
Варіант 1. Задати питання в самому PR.
Варіант 2. Задати питання в студентському чаті.

В. А якщо я все зробив(ла) і це ментор не рев'юває мої зміни?

  1. Переконайся, що ти відреагував(ла) на всі коментарі або кодом, або запитаннями, або відповідями. Напиши в PR і в чаті, що чесно вважаєш, що все зроблено і попроси повторне рев'ю. Якщо щось не зрозуміло, задай запитання.
  2. Реагуй на коментарі як менторів, так і інших учасників, включаючи ботів.
  3. Не ігноруй прохання типу * "Let's do some self-checks ..." * "Go through the checklist below..." * "mark fulfilled requirements..." * "if you would silently ignore this recommendation, a mentor may think that you are still working on fixes"
    навіть якщо вони написані ботом. Боти помічники і ментори покладаються на те, що прохання і пропозиції бота дотримуються.
    Не лінись піти по лінках в коментарях, погуглити термінологію та скористатись Google Translate.
  4. Можливо, у менторів склалися інші пріоритети через роботу, сімейні обставини і т.п. В такому разі, якщо ти зробив(ла) рекомендоване вище, то волай в чаті, що PR позначений stale, наче, все зроблено, а ментори чомусь не реагують - рятуйте!

Г. Хіба недостатньо того, що я додав(ла) коміт із змінами?
Часто буває так, що бачиш новий коміт, ідеш перевіряти, змін багато, доводиться перечитувати весь код. А потім з'ясовується, що одна невеличка зміна "відкладена на потім" чи з'являється ще один коміт і знов треба перечитувати все. Любіть нас, спілкуйтеся з нами - і ми відповімо повною взаємністю.

Традиційна пропозиція: задай питання по вищенаписаному в студентському чаті.

@stale stale bot added the 💤 Stale label Sep 14, 2022
@OleksiyRudenko
Copy link
Member

Up

@stale stale bot removed the 💤 Stale label Sep 19, 2022
@kasionio kasionio self-assigned this Oct 2, 2022
@kasionio kasionio self-requested a review October 2, 2022 16:48
Copy link
Contributor

@kasionio kasionio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job! Please look at the comments and try improve naming

@@ -0,0 +1,70 @@
/* ========================================================================== */
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please remove all comments

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Удалил.

Коммит: ff500c8

</div>
<div class="board__side flipper__side flipper__side--back">
<ul class="board__grid" data-board-grid>
<!-- <li class="card flipper">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove all redundant code

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Удалил.

Коммит: ff500c8

</head>
<body>
<div class="page">
<main class="board flipper">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems you have redundant spaces here and below

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Разделяю классы двумя пробелами, чтобы легче было различать.
Удалил.

Коммит: 77980d8



function checkFlippedCards() {
score = score + 1;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can use shorthand score ++

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправил

Коммит: 372cad9



function shuffleArray(o) {
for (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

array method sort will look more clear here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Переделал с помощью метода sort

Коммит: 85c9987

function startNewGame() {
boardGrid.innerHTML = "";
renderGrid();

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please remove spaces, because it is not easy to understand where the function starts and ends

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Мне тоже тяжело определить границы функции.
Но когда внутри функции нет отступов, тяжело отделить действия внутри.

Удалил.
Коммит: 202d2a1

?
</div>
<div class="card__side card__side--front flipper__side flipper__side--back">
<img class="card__img" src="img/${option}.png" width="100" height="100" alt="${option}"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can add width and height to css file to make code cleaner

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Насколько я знаю, HTML-атрибуты width и height полезны для изображений для того, чтобы браузер ещё до начала загрузки изображения выделял для них пространство.

Например, вот здесь я статью переводил когда-то: https://habr.com/ru/post/524918/

Я сейчас задал изображениям размер 100%, чтобы в случае изменения размера ячеек сетки, изображения занимали всё доступное пространство. А "флипперу" задал aspecti-ratio, чтобы он всегда был квадратным

Коммит: 1474bd7

score = score + 1;

const isSame = flippedCards
.map((elem) => elem.querySelector(".card__img").alt)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

elem is card here? Please try using clear naming, then your code will be easier to read

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using alt attribute to compare cards is a bad approach, you can use alt only for describing images, that's it. So, you can compare unique identifiers id for example

Copy link
Contributor Author

@hisbvdis hisbvdis Oct 2, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

elem is card here?

Да

elem is card here? Please try using clear naming, then your code will be easier to read

Понял.
Исправил и постараюсь учесть на будущее.

Using alt attribute to compare cards is a bad approach, you can use alt only for describing images, that's it. So, you can compare unique identifiers id for example

Вместо атрибута alt использовал значение src

Коммит: 76975f9

boardGrid.addEventListener("click", forCardFront_onBoardGrid_Click_Handler);


function changeGameSide() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's move to the evil game side :) Please improve the naming a bit. Try to read your code and understand what it does in every step

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Заменил "игру" на "доску" в названии функции

Коммит: 9026d23


const cardFlippers = Array.from(boardGrid.querySelectorAll(".flipper__inner"));

cardFlippers.forEach((cardInner) => flipCard(cardInner));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:)))))))
Смешно.
Но слово "flipper" я взял из этой статьи.
Насколько я понимаю, значит что-то вроде "переворачивалка".
Не знаю, чем заменить.
Или заменять и не обязательно?

@hisbvdis hisbvdis requested a review from kasionio October 2, 2022 18:51
@hisbvdis
Copy link
Contributor Author

@kasionio , надеюсь, про мой PR не забыли?
Это последний мой непроверенный PR.
Что-то у меня сомнения появляются, пропустили ли меня на 2 этап

@hisbvdis hisbvdis closed this by deleting the head repository Nov 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants