From a021d86d5c5fd8e22b5466cb91c8194a69b9d38e Mon Sep 17 00:00:00 2001 From: triliun Date: Thu, 26 Dec 2024 22:24:35 +0700 Subject: [PATCH 1/4] feat: add new button, toggle music & improve code --- {sounds => assets/sounds}/blue.mp3 | Bin assets/sounds/gray.mp3 | Bin 0 -> 3648 bytes {sounds => assets/sounds}/green.mp3 | Bin sounds/yellow.mp3 => assets/sounds/orange.mp3 | Bin sounds/red.mp3 => assets/sounds/pink.mp3 | Bin assets/sounds/purple.mp3 | Bin 0 -> 17762 bytes assets/sounds/red.mp3 | Bin 0 -> 16717 bytes {sounds => assets/sounds}/wrong.mp3 | Bin assets/sounds/yellow.mp3 | Bin 0 -> 11110 bytes assets/svg/sound-mute.svg | 44 ++++++ assets/svg/sound-on.svg | 32 +++++ game.js | 124 ++++++++-------- image.png | Bin 22830 -> 5427 bytes index.html | 101 ++++++++----- styles.css | 133 ++++++++++++++---- 15 files changed, 320 insertions(+), 114 deletions(-) rename {sounds => assets/sounds}/blue.mp3 (100%) create mode 100644 assets/sounds/gray.mp3 rename {sounds => assets/sounds}/green.mp3 (100%) rename sounds/yellow.mp3 => assets/sounds/orange.mp3 (100%) rename sounds/red.mp3 => assets/sounds/pink.mp3 (100%) create mode 100644 assets/sounds/purple.mp3 create mode 100644 assets/sounds/red.mp3 rename {sounds => assets/sounds}/wrong.mp3 (100%) create mode 100644 assets/sounds/yellow.mp3 create mode 100644 assets/svg/sound-mute.svg create mode 100644 assets/svg/sound-on.svg diff --git a/sounds/blue.mp3 b/assets/sounds/blue.mp3 similarity index 100% rename from sounds/blue.mp3 rename to assets/sounds/blue.mp3 diff --git a/assets/sounds/gray.mp3 b/assets/sounds/gray.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ae68cbae3d5d224baeddaaf59f36848468affc5f GIT binary patch literal 3648 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 literal 0 HcmV?d00001 diff --git a/sounds/green.mp3 b/assets/sounds/green.mp3 similarity index 100% rename from sounds/green.mp3 rename to assets/sounds/green.mp3 diff --git a/sounds/yellow.mp3 b/assets/sounds/orange.mp3 similarity index 100% rename from sounds/yellow.mp3 rename to assets/sounds/orange.mp3 diff --git a/sounds/red.mp3 b/assets/sounds/pink.mp3 similarity index 100% rename from sounds/red.mp3 rename to assets/sounds/pink.mp3 diff --git a/assets/sounds/purple.mp3 b/assets/sounds/purple.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..896b9f968e81907f18887bca8efd05e2094d047e GIT binary patch literal 17762 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 literal 0 HcmV?d00001 diff --git a/assets/sounds/red.mp3 b/assets/sounds/red.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e7738ae95eaf8412371f16f407736d81239153d2 GIT binary patch literal 16717 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 literal 0 HcmV?d00001 diff --git a/sounds/wrong.mp3 b/assets/sounds/wrong.mp3 similarity index 100% rename from sounds/wrong.mp3 rename to assets/sounds/wrong.mp3 diff --git a/assets/sounds/yellow.mp3 b/assets/sounds/yellow.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b360c086d398274a7c1eb18cd2a7e72136e36c22 GIT binary patch literal 11110 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/svg/sound-on.svg b/assets/svg/sound-on.svg new file mode 100644 index 0000000..ad9af8d --- /dev/null +++ b/assets/svg/sound-on.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/game.js b/game.js index 9c84d67..27aa141 100644 --- a/game.js +++ b/game.js @@ -1,33 +1,45 @@ -var userClickedPattern = []; -var gamePattern = []; -var randomNumber; -var buttonColours = ["red", "blue", "green", "yellow"]; -var levelGame = 0; -var gameStart = false; -var clickBtn = false; - - -function animationStart(counter) { - clickBtn = true; - +const buttonColours = ["red", "blue", "green", "yellow", "orange", "purple", "pink", "gray"]; +let userClickedPattern = []; +let gamePattern = []; +let randomNumber = 0; +let levelGame = 0; +let gameStart = false; +let clickBtn = false; +let soundStatus = false; + +function playsound(nameSound) { + if (!soundStatus) { + const sound = new Audio(`/assets/sounds/${nameSound}.mp3`); + sound.play(); + } +} + +function animationStart(counter) { + clickBtn = false; + setTimeout(function () { - $(`#${gamePattern[counter]}`).fadeOut(100).fadeIn(100); - playSound(gamePattern[counter]); + $(`#${gamePattern[counter]}`).addClass("active"); + playsound(gamePattern[counter]); }, counter * 500); setTimeout(function () { - if (counter === gamePattern.length - 1) { - clickBtn = false; + $(`#${gamePattern[counter]}`).removeClass("active"); + }, counter * 500 + 300); + + setTimeout(function () { + if (counter === gamePattern.length - 1) { + clickBtn = true; } - }, counter * 800); + }, counter * 700); } function nextSequence() { gameStart = true; + randomNumber = Math.floor(Math.random() * 8); levelGame++; - randomNumber = Math.floor(Math.random() * 4); - var randomChosenColour = buttonColours[randomNumber]; - gamePattern.push(randomChosenColour); + + const randomColor = buttonColours[randomNumber]; + gamePattern.push(randomColor); $("h1").text(`Level ${levelGame}`); for (let i = 0; i < gamePattern.length; i++) { @@ -35,33 +47,6 @@ function nextSequence() { } } - -$(document).keydown(function () { - if (gameStart === true) { - return; - } - nextSequence(); -}); - -$(".btn").click(function () { - if (gameStart === false || clickBtn === true) { - return; - } - var userChosenColour = $(this).attr("id"); - $(`#${userChosenColour}`).fadeOut(100).fadeIn(100); - // $(`#${userChosenColour}`).addClass("pressed"); - userClickedPattern.push(userChosenColour); - playSound(userChosenColour); - - setTimeout(function () { - $(`#${userChosenColour}`).removeClass("pressed"); - }, 100); - - var currentLevel = userClickedPattern.length - 1; - - checkAnswer(currentLevel); -}); - function checkAnswer(currentLevel) { if (gamePattern[currentLevel] === userClickedPattern[currentLevel]) { if (gamePattern.length === userClickedPattern.length) { @@ -74,25 +59,54 @@ function checkAnswer(currentLevel) { function nextLevel() { setTimeout(function () { - nextSequence(); userClickedPattern = []; + nextSequence(); }, 1000); } function startOver() { - gameStart = false; + setTimeout(function () { + gameStart = false; + }, 1100); gamePattern = []; userClickedPattern = []; levelGame = 0; - playSound("wrong"); - $("h1").text("Game Over, Press Any Key to Restart"); + playsound("wrong"); + $("#level_title").text("Game Over, Click Anywhere To Restart"); $("body").addClass("game-over"); setTimeout(function () { $("body").removeClass("game-over"); }, 200); } -function playSound(currentKey) { - var audio = new Audio(`sounds/${currentKey}.mp3`); - audio.play(); -} +$("#sound_button").click(function () { + if (!soundStatus) { + soundStatus = true; + } else { + soundStatus = false; + } + $(this).toggleClass("mute"); +}); + +$(document).click(function () { + if (gameStart !== true) { + nextSequence(); + } +}); + +$(".btn").click(function () { + if (gameStart === false || clickBtn === false) { + return; + } + const userChosenColour = $(this).attr("id"); + $(`#${userChosenColour}`).addClass("active"); + userClickedPattern.push(userChosenColour); + + const currentLevel = userClickedPattern.length - 1; + checkAnswer(currentLevel); + playsound(userChosenColour); + + setTimeout(function () { + $(`#${userChosenColour}`).removeClass("active"); + }, 100); +}); diff --git a/image.png b/image.png index 893c8cbc70666468a86d988cbceaa521e6558cc9..8a0a6e507f1e81d35b0b7b08e48d062eb914402e 100644 GIT binary patch literal 5427 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 y?w5f9>HoJvc78Mahur - - - - Simon Game - - - + + + + Simon Game + + + - -

Press A Key to Start

-
-
+ + + + + -
+ + + + + + + + + + +
+
+
+

Click Anywhere To Start

+ +
+
+
+
+
+
+
+
+
+
+
- -
- -
-
- -
- -
- -
-
- -
- -
- -
- - - - - + + + + diff --git a/styles.css b/styles.css index 5e005d9..782914c 100644 --- a/styles.css +++ b/styles.css @@ -1,58 +1,143 @@ +* { + padding: 0; + margin: 0; + box-sizing: border-box; + text-decoration: none; + list-style: none; +} + +:root { + --bg-color: #000000; + --text-color: #fff; + --red-color: #ff0000; + --green-color: #008000; + --blue-color: #0000ff; + --yellow-color: #ffff00; + --orange-color: #ffa600; + --purple-color: #500073; + --pink-color: #ffcfcf; + --white-color-50: #ffffff0a; + --gray-color: #a9a9a9; + + + + --spacing-sm: 8px; + --spacing-md: 16px; + --spacing-lg: 24px; + + --font-size-smx: 12px; + --font-size-sm: 14px; + --font-size-md: 16px; + --font-size-lg: 20px; + --font-size-xl: 24px; + --font-size-2xl: 30px; +} + +i { + cursor: pointer; +} + +.sound.on::after { + display: block; + content: url(/assets/svg/sound-on.svg); + width: 28px; + aspect-ratio: 1/1; +} + +.sound.mute::after { + display: block; + content: url(/assets/svg/sound-mute.svg); + width: 28px; + aspect-ratio: 1/1; +} + body { - text-align: center; - background-color: #011F3F; + background: var(--bg-color); } -#level-title { - font-family: 'Press Start 2P', cursive; - font-size: 2rem; - margin: 4%; - color: #FEF2BF; +#level_title { + font-family: "Press Start 2P", cursive; + font-size: var(--font-size-md); + padding: 10px 0; + color: var(--text-color); + cursor: default; +} + +.flex { + display: flex; + justify-content: space-between; + align-items: center; } .container { - display: block; - width: 50%; - margin: auto; - max-width: 460px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 90vh; + padding: 2vh; +} +.container-helper { + width: 100%; + max-width: 455px; } .row { - display: flex; + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr; gap: 10px; - margin: 10px; } .btn { width: 100%; - border: 10px solid black; - border-radius: 20%; + border: 2px solid var(--white-color-50); + border-radius: 10%; aspect-ratio: 1/1; + cursor: pointer; + opacity: 0.5; + + &:hover { + opacity: 0.7; + } + + &.active { + opacity: 1; + } } .game-over { - background-color: red; - opacity: 0.8; + background: var(--red-color); } .red { - background-color: red; + background: var(--red-color); } .green { - background-color: green; + background: var(--green-color); } .blue { - background-color: blue; + background:var(--blue-color); } .yellow { - background-color: yellow; + background: var(--yellow-color); +} + +.orange { + background: var(--orange-color); +} + +.gray { + background: var(--gray-color); +} + +.purple { + background: var(--purple-color); } -.pressed { - box-shadow: 0 0 20px white; - background-color: grey; +.pink { + background: var(--pink-color); } From 1cf038c28f293a939ed7b3b0d2f6ea6940cd469c Mon Sep 17 00:00:00 2001 From: triliun Date: Thu, 26 Dec 2024 22:37:42 +0700 Subject: [PATCH 2/4] fix: image --- README.md | 2 +- index.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5c884f5..cdbdb51 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,4 @@ Simon Game is my first project built with JavaScript after 2 days (~21.58 hours) ### Indonesia Simon Game adalah proyek pertama saya yang dibuat menggunakan JavaScript setelah belajar selama 2 hari (~21,58 jam). Game ini menguji memori pemain dengan pola warna dan suara yang semakin kompleks di setiap level. Proyek ini menggunakan HTML, CSS, jQuery, dan JavaScript. Meskipun mungkin hasilnya belum sempurna, saya tetap bangga dengan apa yang telah saya capai. Proyek ini adalah langkah awal saya dalam memahami konsep dasar DOM, animasi, dan event handling dalam JavaScript. -![Demo](https://github.com/triliun/simon-game/blob/a0e60b54dcd5bf8d8b250c32045c56de69046304/image.png) +![Demo](https://github.com/triliun/simon-game/blob/master/image.png) diff --git a/index.html b/index.html index 25002aa..799bb26 100644 --- a/index.html +++ b/index.html @@ -23,7 +23,7 @@ /> @@ -38,7 +38,7 @@ /> From 4cc4ccf6ef509711b1ae2e8a6cd209edf3b14ccb Mon Sep 17 00:00:00 2001 From: triliun Date: Thu, 26 Dec 2024 22:43:58 +0700 Subject: [PATCH 3/4] fix: url svg --- styles.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/styles.css b/styles.css index 782914c..8676afb 100644 --- a/styles.css +++ b/styles.css @@ -39,14 +39,14 @@ i { .sound.on::after { display: block; - content: url(/assets/svg/sound-on.svg); + content: url(assets/svg/sound-on.svg); width: 28px; aspect-ratio: 1/1; } .sound.mute::after { display: block; - content: url(/assets/svg/sound-mute.svg); + content: url(assets/svg/sound-mute.svg); width: 28px; aspect-ratio: 1/1; } From 7029afd3d4c11f0a9872518d64baf65a8d2cb711 Mon Sep 17 00:00:00 2001 From: triliun Date: Fri, 27 Dec 2024 00:19:09 +0700 Subject: [PATCH 4/4] fix: audio --- game.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game.js b/game.js index 27aa141..791027a 100644 --- a/game.js +++ b/game.js @@ -9,7 +9,7 @@ let soundStatus = false; function playsound(nameSound) { if (!soundStatus) { - const sound = new Audio(`/assets/sounds/${nameSound}.mp3`); + const sound = new Audio(`assets/sounds/${nameSound}.mp3`); sound.play(); } }