Memory Game is a Light & Sound Memory game to apply for CodePath's SITE Program.
Submitted by: Cyrus Adriel Arellano
Time spent: 32 hours spent in total
Link to project: (https://glitch.com/edit/#!/animated-marble-dandelion)
The following required functionality is complete:
- [✓] Game interface has a heading (h1 tag), a line of body text (p tag), and four buttons that match the demo app
- [✓] "Start" button toggles between "Start" and "Stop" when clicked.
- [✓] Game buttons each light up and play a sound when clicked.
- [✓] Computer plays back sequence of clues including sound and visual cue for each button
- [✓] Play progresses to the next turn (the user gets the next step in the pattern) after a correct guess.
- [✓] User wins the game after guessing a complete pattern
- [✓] User loses the game after an incorrect guess
The following optional features are implemented:
- [✓] Any HTML page elements (including game buttons) has been styled differently than in the tutorial
- [✓] Buttons use a pitch (frequency) other than the ones in the tutorial
- [✓] More than 4 functional game buttons
- [✓] Playback speeds up on each turn
- [✓] Computer picks a different pattern each time the game is played
- [✓] Player only loses after 3 mistakes (instead of on the first mistake)
- Game button appearance change goes beyond color (e.g. add an image)
- Game button sound is more complex than a single tone (e.g. an audio file, a chord, a sequence of multiple tones)
- [✓] User has a limited amount of time to enter their guess on each turn
The following additional features are implemented:
- [✓] Easy, Medium, Hard difficulties
- [✓] Point system based off of time
- [✓] High score
Here's a walkthrough of implemented user stories:
- If you used any outside resources to help complete your submission (websites, books, people, etc) list them here.
- What was a challenge you encountered in creating this submission (be specific)? How did you overcome it? (recommended 200 - 400 words)
A challenge I encountered creating this submission was using setInterval and clearInterval. I had trouble setting the interval. I also had trouble clearing the interval every time the user was able to guess it right. I overcame this obstacle by using a website online and looking at examples on how clearInterval and setInterval was used and how they're connected. Another obstacle that I encountered was the points system and basing it off the time it took the user. I also wanted to include a high score system which was based off of the points system. I overcame this by drawing out the whole point based system so I can visualize it better because it was getting a little confusing when I was working on it. I also had trouble with printing out all of the variables but I overcame this with by rereading the instructions how to do it.
- What questions about web development do you have after completing your submission? (recommended 100 - 300 words)
One question I have is how am I able to get other people's points and high scores from people around the world and display it into the screen? Another question I have is there a way to implement other languages so that html helps show it? Furthermore, how are ads used in websites? Also, how are animations made in websites?
- If you had a few more hours to work on this project, what would you spend them doing (for example: refactoring certain functions, adding additional features, etc). Be specific. (recommended 100 - 300 words)
If I had more time to work on this project, I would add animations in the beginning of the game and the end of the game. It would have a drop down menu of the list of difficulties and the game over screen would be animated. Another additional function I would have liked to add is including other people's scores and displaying it on the screen. I would also want to redo the points system and have each difficulty scale with the setInterval. Furthermore, I would want to include better visuals and have the site look better than it being simple.
Copyright Cyrus Adriel Arellano
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.