你好我正在用javascript做记忆游戏

时间:2015-05-26 10:14:31

标签: javascript

你好我正在用javascript做一个记忆游戏,我不能做计时器,我想制作一个计时器,当我第一次加载时开始计数,结束时他找到所有对,我不会#39如果有人可以帮助我,我知道该怎么做 这是我的代码:

var array_cartas = ['A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F'
var valores_cartas = [];
var idCartas = [];
var cartas_viradas = 0;

function iniciar_temporizador() {
    temporizador = 0;
    minutos = Math.floor(temporizador / 60);
    segundos = (temporizador - minutos * 60) + '';
}

Array.prototype.memory_tile_shuffle = function () {
    var i = this.length,
        j, temp;
    while (--i > 0) {
        j = Math.floor(Math.random() * (i + 1));
        temp = this[j];
        this[j] = this[i];
        this[i] = temp;
    }
}

function novoJogo() {
    cartas_viradas = 0;
    var saida = '';
    array_cartas.memory_tile_shuffle();
    for (var i = 0; i < array_cartas.length; i++) {
        saida += '<div  id="tile_' + i + 'onclick="virar_carta(this,\'' + array_cartas[i] + '            \')"></div>';
    }
    document.getElementById('memory_board').innerHTML = saida;
}

function virar_carta(tile, val) {
    if (tile.innerHTML === "" && valores_cartas.length < 2) {
        tile.style.background = '#FFF';
        tile.innerHTML = val;
        if (valores_cartas.length == 0) {
            valores_cartas.push(val);
            idCartas.push(tile.id);
        } else if (valores_cartas.length === 1) {
            valores_cartas.push(val);
            idCartas.push(tile.id);
            if (valores_cartas[0] === valores_cartas[1]) {
                cartas_viradas += 2;
                // limpa ambas as listas
                valores_cartas = [];
                idCartas = [];

                if (cartas_viradas === array_cartas.length) { // 
                    alert("Parabéns acabou o jogo");
                    document.getElementById('memory_board').innerHTML = "";
                    novoJogo();
                }
            } else {
                function virar_para_costas() {

                    var tile_1 = document.getElementById(idCartas[0]);
                    var tile_2 = document.getElementById(idCartas[1]);
                    tile_1.style.background = 'url(tile_bg.jpg) no-repeat';
                    tile_1.innerHTML = "";
                    tile_2.style.background = 'url(tile_bg.jpg) no-repeat';
                    tile_2.innerHTML = "";

                    valores_cartas = [];
                    idCartas = [];
                }
                setTimeout(virar_para_costas, 500);
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

使用setInterval每秒使变量增加。完成后获取它的值以显示完成时间。

$(function(){

    var seconds = 0;

    setInterval(function(){
        seconds++;
        $('input').val(seconds);
    }, 1000);

});

JSFIDDLE

上查看我的示例

在同一时刻,您的游戏已完成,并显示“游戏结束”屏幕,制作一个名为var的新finishTime或其他内容,并获取var {{的值我们在上面的脚本中使用的1}}。

换句话说,当游戏结束时,请执行以下操作:

seconds