---
id: bd7158d8c442eddfaeb5bd1c
title: Build a Simon Game
challengeType: 3
forumTopicId: 302357
dashedName: build-a-simon-game
---

# --description--

**Objective:** Build a [CodePen.io](https://codepen.io) app that is functionally similar to this: [https://codepen.io/freeCodeCamp/full/obYBjE](https://codepen.io/freeCodeCamp/full/obYBjE).

Fulfill the below [user stories](https://en.wikipedia.org/wiki/User_story). Use whichever libraries or APIs you need. Give it your own personal style.

**User Story:** I am presented with a random series of button presses.

**User Story:** Each time I input a series of button presses correctly, I see the same series of button presses but with an additional step.

**User Story:** I hear a sound that corresponds to each button both when the series of button presses plays, and when I personally press a button.

**User Story:** If I press the wrong button, I am notified that I have done so, and that series of button presses starts again to remind me of the pattern so I can try again.

**User Story:** I can see how many steps are in the current series of button presses.

**User Story:** If I want to restart, I can hit a button to do so, and the game will return to a single step.

**User Story:** I can play in strict mode where if I get a button press wrong, it notifies me that I have done so, and the game restarts at a new random series of button presses.

**User Story:** I can win the game by getting a series of 20 steps correct. I am notified of my victory, then the game starts over.

**Hint:** Here are mp3s you can use for each button: `https://s3.amazonaws.com/freecodecamp/simonSound1.mp3`, `https://s3.amazonaws.com/freecodecamp/simonSound2.mp3`, `https://s3.amazonaws.com/freecodecamp/simonSound3.mp3`, `https://s3.amazonaws.com/freecodecamp/simonSound4.mp3`.

When you are finished, include a link to your project on CodePen and click the "I've completed this challenge" button.

You can get feedback on your project by sharing it on the [freeCodeCamp forum](https://forum.freecodecamp.org/c/project-feedback/409).

# --solutions--

```js
// solution required
```
