From 9c9504363d5ab5251db99e1a9916b76ccdbdf6fb Mon Sep 17 00:00:00 2001
From: Manuel Thalmann <m@nuth.ch>
Date: Thu, 8 Dec 2022 15:08:02 +0100
Subject: [PATCH] Repeatedly update game board

---
 src/js/main.js | 67 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 66 insertions(+), 1 deletion(-)

diff --git a/src/js/main.js b/src/js/main.js
index 1a6ae3e..13f9f00 100644
--- a/src/js/main.js
+++ b/src/js/main.js
@@ -1,3 +1,68 @@
 import { initializeBoard } from "./board.js";
+import { State } from "./State.js";
 
-initializeBoard("board");
+/**
+ * Initializes the board.
+ */
+function initialize()
+{
+    initializeBoard("board");
+}
+
+initialize();
+
+/**
+ * Sleeps for the specified number of milliseconds.
+ *
+ * @param {number} ms
+ * The number of milliseconds to sleep.
+ */
+async function sleep(ms)
+{
+    return new Promise((resolve) => setTimeout(resolve, ms));
+}
+
+(
+    async () =>
+    {
+        let counter = 0;
+        let tick = 0;
+
+        // eslint-disable-next-line no-constant-condition
+        while (true)
+        {
+            await sleep(1000 * (1 / 5));
+            let cycle = counter % 24;
+
+            if ((cycle <= 11) || ((cycle % 2) === 0))
+            {
+                tick = (tick % 18) + 1;
+                let rowId = Math.floor(Math.random() * State.length);
+                let fieldId = Math.floor(Math.random() * State[rowId].length);
+
+                /**
+                 * @type {CellOwner}
+                 */
+                let owner;
+
+                switch (Math.floor(Math.random() * 3))
+                {
+                    case 1:
+                        owner = "r";
+                        break;
+                    case 2:
+                        owner = "b";
+                        break;
+                    default:
+                        owner = "";
+                        break;
+                }
+
+                State[rowId][fieldId] = owner;
+                console.log(tick);
+                initialize();
+            }
+
+            counter++;
+        }
+    })();