aboutsummaryrefslogtreecommitdiff
path: root/utils/minesweeper/script.js
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-11-01 10:13:29 +0100
committerCharles Cabergs <me@cacharle.xyz>2020-11-01 10:13:29 +0100
commitea22cf13c1d2c09cf8102e8fd4277528a2a62455 (patch)
tree3fa5f1bd329488ac2a63986a446073052cb897dc /utils/minesweeper/script.js
parentb4ef14a7e010c1b468928d29a981fdf6ba700563 (diff)
downloadcacharle.xyz-ea22cf13c1d2c09cf8102e8fd4277528a2a62455.tar.gz
cacharle.xyz-ea22cf13c1d2c09cf8102e8fd4277528a2a62455.tar.bz2
cacharle.xyz-ea22cf13c1d2c09cf8102e8fd4277528a2a62455.zip
Added timer and reset when mine hit
Diffstat (limited to 'utils/minesweeper/script.js')
-rw-r--r--utils/minesweeper/script.js38
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()