let one = document.getElementById("one"); let two = document.getElementById("two"); let three = document.getElementById("three"); let four = document.getElementById("four"); let six = document.getElementById("six"); let seven = document.getElementById("seven"); let eight = document.getElementById("eight"); let nine = document.getElementById("nine"); let btn = document.getElementById("btn"); let divTable = [one, two, three, four, five, six, seven, eight, nine]; // czas trwania gry let sec = 10; // flaga zakończenia gry let gameEnded = false; // flaga włączenia timera let timerStarted = false; // funkcja reset przywracajaca i-temu divovi // stan początkowy i wywołująca funkcję chooseDivToClick function reset(i){ divTable[i].style.display = "inline-block"; divTable[i].onclick=""; // jeśli gra sie nie skonczyła // wybieramy nastepny div if(!gameEnded){ chooseDivToClick(); } } // timer function startTimer(){ // co sekundę wyświetlamy kolejne sekundy // (co sekundę jest trigerowana funkcja) let interwalId = setInterval(function(){ console.log("sec: ",sec); // wyłaczamy button btn.onclick=""; // sekundy na buttonie btn.innerText=sec; sec--; // zakończenie gry if (sec <= 0){ // zatrzymujemy funkcję setInterval clearInterval(interwalId); // wyświetlamy punkty btn.innerText="Game Over\nPoints: " + points; // ustawiamy flagę zakończenia gry gameEnded = true; console.log("gameEnded = true"); // gdy gra się zakoczyła resetuejmy divy for(let i = 0; i < 9; i++){ divTable[i].style.display = "inline-block"; divTable[i].onclick=""; } } }, 1000); } let points = 0; // funkcja wybierajaca losowy div z tabeli // i dodająca mu zdarzenie onclick function chooseDivToClick(){ // startujemt timer jednokrotnie if(!timerStarted){ startTimer(); timerStarted = true; } // losujemy index od 0 do 8 let i = Math.floor(Math.random() * 9); console.log("i: ",i); // dodajemy zdarzenie onclick do i-tego diva z divTable divTable[i].onclick = function(){ divTable[i].style.display = "none"; points++; console.log("points: ",points); // po sekundzie wywołujemy funkcję reset // i przekazujemy jej bieżący index setTimeout(reset, 1000, i); }; }