@mxkss
HTML CSS JS

Почему в некоторых случаях карточки не переворачиваются?

Вот игра Суть игры открывать карточки и если на 2 карточках совпадает слово то убирать их, а если нет - развернуть их обратно. Не знаю почему но когда несколько карточек открываешь, то игра начинат багатся. В чем проблема? (С Классами только начал разбиратся, может быть в них проблема)
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Я бы сделал проще логику.
Не стал бы отдельно вести учет открытых карточек.
У каждой карточки будут свойства: isOpen, isActive.
isOpen обозначает, открыта ли карточка.
isActive – возможность по ней кликнуть (то есть не скрытая в результате совпадения).
Теперь по каждому клику выполняем все проверки:

const openedCards = cards
  .filter(card => card.isActive) // работаем только с активными
  .filter(card => card.isOpen) // берем все открытые
if (openedCards.length == 2) { // открыто 2 карточки
  if (openedCards[0].text == openedCards[1].text) { // совпали
    openedCards.forEach(card => card.hide()); // скрываем
  } else { // не совпали
    openedCards.forEach(card => card.close()); // переворачиваем обратно
  }
}
if (cards.every(card => !card.isActive)) { // Если все скрыты
  alert('Game over');
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 08:04
1 руб./за проект
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект