diff --git a/Simon-Game/.DS_Store b/Simon-Game/.DS_Store new file mode 100644 index 0000000..2814ac6 Binary files /dev/null and b/Simon-Game/.DS_Store differ diff --git a/Simon-Game/.vscode/settings.json b/Simon-Game/.vscode/settings.json new file mode 100644 index 0000000..6f3a291 --- /dev/null +++ b/Simon-Game/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} \ No newline at end of file diff --git a/Simon-Game/game.js b/Simon-Game/game.js new file mode 100644 index 0000000..45540c3 --- /dev/null +++ b/Simon-Game/game.js @@ -0,0 +1,92 @@ +var buttonColours = ["red", "blue", "green", "yellow"]; + +var gamePattern = []; +var userClickedPattern = []; + +var started = false; +var level = 0; + +$(document).keypress(function() { + if (!started) { + $("#level-title").text("Level " + level); + nextSequence(); + started = true; + } +}); + +$(".btn").click(function() { + + var userChosenColour = $(this).attr("id"); + userClickedPattern.push(userChosenColour); + + playSound(userChosenColour); + animatePress(userChosenColour); + + checkAnswer(userClickedPattern.length-1); +}); + + +function checkAnswer(currentLevel) { + + if (gamePattern[currentLevel] === userClickedPattern[currentLevel]) { + + console.log("success"); + + if (userClickedPattern.length === gamePattern.length){ + setTimeout(function () { + nextSequence(); + }, 1000); + } + + } else { + + console.log("wrong"); + + + playSound("wrong"); + + + $("body").addClass("game-over"); + setTimeout(function () { + $("body").removeClass("game-over"); + }, 200); + + + $("#level-title").text("Game Over, Press Any Key to Restart"); + startOver(); + } + +} + +function nextSequence() { + + userClickedPattern = []; + level++; + $("#level-title").text("Level " + level); + + + var randomNumber = Math.floor(Math.random() * 4); + var randomChosenColour = buttonColours[randomNumber]; + gamePattern.push(randomChosenColour); + + $("#" + randomChosenColour).fadeIn(100).fadeOut(100).fadeIn(100); + playSound(randomChosenColour); +} + +function playSound(name) { + var audio = new Audio("sounds/" + name + ".mp3"); + audio.play(); +} + +function animatePress(currentColor) { + $("#" + currentColor).addClass("pressed"); + setTimeout(function () { + $("#" + currentColor).removeClass("pressed"); + }, 100); +} + +function startOver() { + level =0; + gamePattern=[]; + started = false; +} \ No newline at end of file diff --git a/Simon-Game/index.html b/Simon-Game/index.html new file mode 100644 index 0000000..3711dc9 --- /dev/null +++ b/Simon-Game/index.html @@ -0,0 +1,42 @@ + + + + + + Simon + + + + + +

Press A Key to Start

+
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ + + + + + diff --git a/Simon-Game/readme b/Simon-Game/readme new file mode 100644 index 0000000..bcb03c2 --- /dev/null +++ b/Simon-Game/readme @@ -0,0 +1,12 @@ +Turn on the Simon game console to start a new game. +The game console will produce a short sequence of button presses, beginning with just one. For example, it may light up and play a sound for the red button. +You must replicate the exact sequence by pressing the corresponding buttons in the same order. If the sequence is "red," you press the red button. +The console will then add one more step to the sequence, and you must repeat the longer sequence accurately. +Continue to follow the pattern as it grows longer, always starting from the beginning of the sequence. +If you make a mistake and press the wrong button or get the order wrong, the game will signal the mistake, and the round will end. +The game will display your level, which represents how many steps you correctly completed in the sequence. +Scoring: +The level in the Simon game is typically based on the number of steps in the sequence you complete correctly before making a mistake. The higher your score, the better your memory and concentration skills are. + + + diff --git a/Simon-Game/sounds/blue.mp3 b/Simon-Game/sounds/blue.mp3 new file mode 100644 index 0000000..ae68cba Binary files /dev/null and b/Simon-Game/sounds/blue.mp3 differ diff --git a/Simon-Game/sounds/green.mp3 b/Simon-Game/sounds/green.mp3 new file mode 100644 index 0000000..896b9f9 Binary files /dev/null and b/Simon-Game/sounds/green.mp3 differ diff --git a/Simon-Game/sounds/red.mp3 b/Simon-Game/sounds/red.mp3 new file mode 100644 index 0000000..e7738ae Binary files /dev/null and b/Simon-Game/sounds/red.mp3 differ diff --git a/Simon-Game/sounds/wrong.mp3 b/Simon-Game/sounds/wrong.mp3 new file mode 100644 index 0000000..5ece8fd Binary files /dev/null and b/Simon-Game/sounds/wrong.mp3 differ diff --git a/Simon-Game/sounds/yellow.mp3 b/Simon-Game/sounds/yellow.mp3 new file mode 100644 index 0000000..b360c08 Binary files /dev/null and b/Simon-Game/sounds/yellow.mp3 differ diff --git a/Simon-Game/styles.css b/Simon-Game/styles.css new file mode 100644 index 0000000..6edc539 --- /dev/null +++ b/Simon-Game/styles.css @@ -0,0 +1,53 @@ +body { + text-align: center; + background-color: #011F3F; +} + +#level-title { + font-family: 'Press Start 2P', cursive; + font-size: 3rem; + margin: 5%; + color: #FEF2BF; +} + +.container { + display: block; + width: 50%; + margin: auto; + +} + +.btn { + margin: 25px; + display: inline-block; + height: 200px; + width: 200px; + border: 10px solid black; + border-radius: 20%; +} + +.game-over { + background-color: red; + opacity: 0.8; +} + +.red { + background-color: red; +} + +.green { + background-color: green; +} + +.blue { + background-color: blue; +} + +.yellow { + background-color: yellow; +} + +.pressed { + box-shadow: 0 0 20px white; + background-color: grey; +} diff --git a/Simon_Game/.DS_Store b/Simon_Game/.DS_Store new file mode 100644 index 0000000..2814ac6 Binary files /dev/null and b/Simon_Game/.DS_Store differ diff --git a/Simon_Game/.vscode/settings.json b/Simon_Game/.vscode/settings.json new file mode 100644 index 0000000..6f3a291 --- /dev/null +++ b/Simon_Game/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} \ No newline at end of file diff --git a/Simon_Game/styles.css b/Simon_Game/styles.css new file mode 100644 index 0000000..6edc539 --- /dev/null +++ b/Simon_Game/styles.css @@ -0,0 +1,53 @@ +body { + text-align: center; + background-color: #011F3F; +} + +#level-title { + font-family: 'Press Start 2P', cursive; + font-size: 3rem; + margin: 5%; + color: #FEF2BF; +} + +.container { + display: block; + width: 50%; + margin: auto; + +} + +.btn { + margin: 25px; + display: inline-block; + height: 200px; + width: 200px; + border: 10px solid black; + border-radius: 20%; +} + +.game-over { + background-color: red; + opacity: 0.8; +} + +.red { + background-color: red; +} + +.green { + background-color: green; +} + +.blue { + background-color: blue; +} + +.yellow { + background-color: yellow; +} + +.pressed { + box-shadow: 0 0 20px white; + background-color: grey; +}