我需要通过代码验证来解决此数学问题吗?

时间:2019-04-23 13:53:03

标签: javascript

我有一个关于记忆卡游戏4 x 4的JavaScript脚本。我有一个带16个盒子的记忆游戏。在游戏中,它们是2张相似的牌。共有8对不同的情侣。我应该知道总共有多少种组合: 组合 x停留在1,x停留在最后一个位置。

B组合 y停留在2位置,y停留在3位置

C组合 y停留在1,y停留在最后一个位置。

组合A和C相同:我不在乎它的x还是y我在乎位置, 有2种组合(A和C)

const cards = document.querySelectorAll('.memory-card');

let hasFlippedCard = false;
let lockBoard = false;
let firstCard, secondCard;

function flipCard() {
  if (lockBoard) return;
  if (this === firstCard) return;

  this.classList.add('flip');

  if (!hasFlippedCard) {
    hasFlippedCard = true;
    firstCard = this;

    return;
  }

  secondCard = this;
  checkForMatch();
}

function checkForMatch() {
  let isMatch = firstCard.dataset.framework === secondCard.dataset.framework;

  isMatch ? disableCards() : unflipCards();
}

function disableCards() {
  firstCard.removeEventListener('click', flipCard);
  secondCard.removeEventListener('click', flipCard);

  resetBoard();
}

function unflipCards() {
  lockBoard = true;

  setTimeout(() => {
    firstCard.classList.remove('flip');
    secondCard.classList.remove('flip');

    resetBoard();
  }, 1500);
}

function resetBoard() {
  [hasFlippedCard, lockBoard] = [false, false];
  [firstCard, secondCard] = [null, null];
}

(function shuffle() {
  cards.forEach(card => {
    let randomPos = Math.floor(Math.random() * 12);
    card.style.order = randomPos;
  });
})();`enter code here`

cards.forEach(card => card.addEventListener('click', flipCard));

我想添加一些内容,每次存储时都会自动更新,并记住存储在文件中的行中每个位置的组合

0 个答案:

没有答案