diff options
Diffstat (limited to 'utils/minesweeper/script.js')
| -rw-r--r-- | utils/minesweeper/script.js | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/utils/minesweeper/script.js b/utils/minesweeper/script.js index 059efdf..f19c7a2 100644 --- a/utils/minesweeper/script.js +++ b/utils/minesweeper/script.js @@ -1,7 +1,8 @@ -let height = 10 -let width = 10 -let mine_rate = 0.10 -let timer = undefined +let height = 10 +let width = 10 +let mine_rate = 0.10 +let current_time = undefined +let interval = undefined let mines = [] let visited = [] @@ -90,7 +91,14 @@ function initGrid() { let table_cell = document.createElement("td") let cell = document.createElement("button") cell.textContent = "" - cell.addEventListener("click", () => floodFill(i, j)) + cell.addEventListener("click", () => { + if (!running) + toggleRunning() + if (mines[i][j] === -1) + toggleRunning() + else + floodFill(i, j) + }) cells[i].push(cell) table_cell.appendChild(cell) table_row.appendChild(table_cell) @@ -104,16 +112,26 @@ for (input of document.querySelectorAll("#minesweeper-settings input")) { } function toggleRunning() { + if (running) { + clearInterval(interval) + initGrid() + } + else { + let timer_elem = document.getElementById("minesweeper-timer") + current_time = 0 + timer_elem.textContent = current_time + interval = setInterval(() => { + timer_elem.textContent = current_time + current_time++ + }, 1000) + } running = !running - settings = document.getElementById("minesweeper-settings") - info = document.getElementById("minesweeper-game-info") + let settings = document.getElementById("minesweeper-settings") + let info = document.getElementById("minesweeper-game-info") settings.hidden = !settings.hidden info.hidden = !info.hidden - // if (timer === undefined) { - // } } -document.getElementById("minesweeper-start").addEventListener("click", toggleRunning) document.getElementById("minesweeper-stop") .addEventListener("click", toggleRunning) initGrid() |
