From 9c9504363d5ab5251db99e1a9916b76ccdbdf6fb Mon Sep 17 00:00:00 2001 From: Manuel Thalmann 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++; + } + })();