你好,我正在做一个记忆游戏与javascript

Hello i am doing a memory game with javascript

本文关键字:一个 记忆游戏 javascript 你好      更新时间:2023-09-26

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

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);
            }
        }
    }

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

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

请看我在JSFIDDLE上的例子

在同一点上,你的游戏是完整的,并显示"游戏结束"屏幕,使一个新的var称为finishTime或其他东西,并获得var seconds的值,我们在上面的脚本中使用。

所以换句话说,当游戏结束时,要这样做:

var finishTime = seconds;