Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simon-Game #309

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Simon-Game/.DS_Store
Binary file not shown.
3 changes: 3 additions & 0 deletions Simon-Game/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"liveServer.settings.port": 5501
}
92 changes: 92 additions & 0 deletions Simon-Game/game.js
Original file line number Diff line number Diff line change
@@ -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;
}
42 changes: 42 additions & 0 deletions Simon-Game/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
<meta charset="utf-8">
<title>Simon</title>
<link rel="stylesheet" href="styles.css">
<link href="https://fonts.googleapis.com/css?family=Press+Start+2P" rel="stylesheet">
</head>

<body>
<h1 id="level-title">Press A Key to Start</h1>
<div class="container">
<div class="row">

<div type="button" id="green" class="btn green">

</div>

<div type="button" id="red" class="btn red">

</div>
</div>

<div class="row">

<div type="button" id="yellow" class="btn yellow">

</div>
<div type="button" id="blue" class="btn blue">

</div>

</div>

</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="game.js"></script>
</body>

</html>
12 changes: 12 additions & 0 deletions Simon-Game/readme
Original file line number Diff line number Diff line change
@@ -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.



Binary file added Simon-Game/sounds/blue.mp3
Binary file not shown.
Binary file added Simon-Game/sounds/green.mp3
Binary file not shown.
Binary file added Simon-Game/sounds/red.mp3
Binary file not shown.
Binary file added Simon-Game/sounds/wrong.mp3
Binary file not shown.
Binary file added Simon-Game/sounds/yellow.mp3
Binary file not shown.
53 changes: 53 additions & 0 deletions Simon-Game/styles.css
Original file line number Diff line number Diff line change
@@ -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;
}
Binary file added Simon_Game/.DS_Store
Binary file not shown.
3 changes: 3 additions & 0 deletions Simon_Game/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"liveServer.settings.port": 5501
}
53 changes: 53 additions & 0 deletions Simon_Game/styles.css
Original file line number Diff line number Diff line change
@@ -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;
}