Finished FCC Simon Game and Earned FCC Front End Certificate!

I can’t believe I’m writing this post. I finally finished the Simon Game, which is the last advanced front end development project, and earned my front end certificate from FreeCodeCamp!

Screenshot 2017-12-16 at 2.32.54 PMThanks to the solid practice I accumulated from the previous advanced front end projects, I was able to lay out a plan to complete the Simon Game in logical steps, and most importantly, think in terms of “functions” i need to create in Javascript, instead of creating code for each step or button that may be essentially repetitive. I realized that by defining the key “variables” and functions early on, I was able to write code more efficiently and effectively.

I also continued using “user stories” to disaggregate the tasks into small, concrete steps, which made the initially daunting task much more manageable. I decided that the major tasks in the game is to:

-Let the machine play buttons and their associated sounds, in incremental steps (therefore an arrMachine variable, and a MachinePlay function)

-Create a variable to record the buttons the player plays (therefore an arrPlayer variable)

-Create a function to check whether the players buttons match the machine’s buttons, and if so, make the machine play again (a checkPlayer function)

(image below: how I broke down the seemingly daunting task into small, doable steps)

Screenshot 2017-12-16 at 2.46.15 PMAfter the javascript part of the project was completed, I was struggling for a while with the CSS part of the project. I was perplxed for a long time as to how to create the shapes of the Simon game, which seemed pretty complex to me at first, until I realized the four “quads” of the Simon game could be created by overlaying a circle on top of four square boxes – again, an example that all complexity can be derived from simplicity, or in this case, basic shapes.

You can view my project on CodePen here. I’m still bewildered by the fact that I actually earned the front end certificate — a task that seemed so insurmountable a year ago! I’m planning to write a post to summarize my journey over the year, so stay tuned.