diff --git a/src/life-game/LifeGameFunctions/PlayAndPause.js b/src/life-game/LifeGameFunctions/PlayAndPause.js index d200c54..e592e9d 100644 --- a/src/life-game/LifeGameFunctions/PlayAndPause.js +++ b/src/life-game/LifeGameFunctions/PlayAndPause.js @@ -1,5 +1,11 @@ +let timerId = 0; + window.addEventListener("message", (event) => { - if (event.data.type === "play-pause") { - console.log("Play/Pause toggled"); + if (event.data.type === "play") { + timer = "start"; + timerId = setInterval(progressBoard, 1000); + } else if (event.data.type === "pause") { + timer = "stop"; + clearInterval(timerId); } }); diff --git a/src/life-game/life-game.html b/src/life-game/life-game.html index 6ec8751..c0099b7 100644 --- a/src/life-game/life-game.html +++ b/src/life-game/life-game.html @@ -6,17 +6,14 @@

第0世代
-
停止中

ボードのサイズ:
-                    +        +
diff --git a/src/life-game/life-game.js b/src/life-game/life-game.js index 3ee8f19..0254ebd 100644 --- a/src/life-game/life-game.js +++ b/src/life-game/life-game.js @@ -1,5 +1,5 @@ "use strict"; -let timerId = 0; + let timer = "stop"; let generationFigure = 0; @@ -40,10 +40,7 @@ function deadCellJudge(around) { } const generation = document.getElementById("generation"); //世代を表す文(第+数字+世代) -const isProgress = document.getElementById("timer"); //進行中かを表す文(再生中/停止中) //BUTTON -const startButton = document.getElementById("startbutton"); -const stopButton = document.getElementById("stopbutton"); const randomButton = document.getElementById("randombutton"); const resetButton = document.getElementById("resetbutton"); const sizeChangeButton = document.getElementById("sizeChangeButton"); @@ -88,7 +85,9 @@ function renderBoard() { table.appendChild(tr); } } + renderBoard(); +progressBoard(); randomButton.onclick = () => { //白黒ランダムにBoardを変更 @@ -108,35 +107,12 @@ resetButton.onclick = () => { stop(); }; -startButton.onclick = start; -stopButton.onclick = stop; - -function timerChange(sentence) { - //現在再生中かを表すtimer変数を変更し、文章も変更 - timer = sentence; - isProgress.textContent = timer === "start" ? "再生中" : "停止中"; -} - function generationChange(num) { //現在の世代を表すgenerationFigureを変更し、文章も変更 generationFigure = num; generation.textContent = "第" + generationFigure + "世代"; } -function start() { - if (timer === "stop") { - timerId = setInterval(progressBoard, 1000); - timerChange("start"); - } -} - -function stop() { - if (timer === "start") { - clearInterval(timerId); - timerChange("stop"); - } -} - function progressBoard() { const newBoard = structuredClone(board); for (let i = 0; i < boardSize; i++) { diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 8277def..75c361f 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -4,7 +4,9 @@ import lgjs from "../life-game/life-game.js?raw"; import PlayandPause from "../life-game/LifeGameFunctions/PlayAndPause.js?raw"; - let code = $state( + let code = $state(lgjs); + + let previewDoc = $derived( lghtml.replace( /