为什么我的卡不是随机放置的?

时间:2018-04-27 06:12:08

标签: javascript

我正在写一张记忆卡游戏。每当我刷新页面时,卡片应该放在一个随机位置,但事实证明它们保持在同一位置。

这是代码:

var cardsArray = [{
'name': 'ball',
'img': '../img/ball.png',
},
{
'name': 'building',
'img': '../img/building.png',
},
{
'name': 'fan',
'img': '../img/fan.png',
},
{ 
'name': 'fish',
'img': '../img/fish.png',
},
{
'name': 'fishball',
'img': '../img/fishball.png',
},
{
'name': 'flower',
'img': '../img/flower.png',
},
{
'name': 'hill',
'img': '../img/hill.png',
},
{
'name': 'orange',
'img': '../img/orange.png',
},
{
'name': 'boo',
'img': '../img/boo.png',
},
{
'name': 'shoe',
'img': '../img/shoe.png',
},
];



var firstGuess = '';
var secondGuess = '';
var count = 0;
var previousTarget = null;
var delay = 1200;
var moves;
var matched;
var score;

var game = document.getElementById('game');
var grid = document.createElement('section');

const gameGrid = cardsArray
.concat(cardsArray)
.sort(function() {
0.5 - Math.random()
});


function startGame() {
grid.setAttribute('class', 'grid');
game.appendChild(grid);

moves = 0;
score = 0;
matched = 0;
document.getElementById("moves").innerHTML = moves;
document.getElementById("score").innerHTML = score;

gameGrid.forEach(function(item) {
  const {
  name,
  img
} = item;

const card = document.createElement('div');
card.classList.add('card');
card.dataset.name = name;

const front = document.createElement('div');
front.classList.add('front');

const back = document.createElement('div');
back.classList.add('back');
back.style.backgroundImage = `url(${img})`;

grid.appendChild(card);
card.appendChild(front);
card.appendChild(back);
});

}

抱歉,我知道这可能有点长,但我想问题可能就在这里:

const gameGrid = cardsArray
.concat(cardsArray)
.sort(function() {
0.5 - Math.random()
});

我在这里做错了吗?我该如何解决?

1 个答案:

答案 0 :(得分:2)

您实际上并未将随机值返回以进行排序。

const gameGrid = cardsArray
.concat(cardsArray)
.sort(function() {
  return 0.5 - Math.random()
});