Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/srikanth-kandi/react-match-game
Match Game using ReactJS ⚛
https://github.com/srikanth-kandi/react-match-game
Last synced: 9 days ago
JSON representation
Match Game using ReactJS ⚛
- Host: GitHub
- URL: https://github.com/srikanth-kandi/react-match-game
- Owner: srikanth-kandi
- Created: 2023-11-12T07:21:39.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2023-11-14T14:20:45.000Z (12 months ago)
- Last Synced: 2024-10-07T06:42:06.389Z (30 days ago)
- Language: JavaScript
- Homepage: https://match.srikanthkandi.me
- Size: 586 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Match Game using ReactJS ⚛
Live demo - [https://srikanth-kandi.github.io/react-match-game/](https://srikanth-kandi.github.io/react-match-game/)
In this project, let's build a **Match Game** by applying the concepts we have learned till now.
### Refer to the video below:
https://github.com/srikanth-kandi/react-match-game/assets/87417638/94839e82-8050-44ba-abe0-55bf000dff20
### Design Files
Click to view
- [Extra Small (Size < 576px) and Small (Size >= 576px)](https://assets.ccbp.in/frontend/content/react-js/match-game-sm-outputs.png)
- [Medium (Size >= 768px), Large (Size >= 992px) and Extra Large (Size >= 1200px) - Match Game](https://assets.ccbp.in/frontend/content/react-js/match-game-lg-output.png)
- [Medium (Size >= 768px), Large (Size >= 992px) and Extra Large (Size >= 1200px) - Scorecard](https://assets.ccbp.in/frontend/content/react-js/match-game-score-card-lg-output.png)### Set Up Instructions
Click to view
- Download dependencies by running `npm install`
- Start up the app using `npm start`### Completion Instructions
Functionality to be added
The app must have the following functionalities
- Initially,
- Score should be `0` and time should be `60` sec
- The image to be matched should have the src attribute value as the value of the key `imageUrl` from the first object in **imagesList** provided
- The **Fruits** tab should be active and the thumbnails with **FRUIT** as their category should be displayed
- The timer should start running backwards from the `60` sec
- When a tab is clicked, then the thumbnails in the corresponding category should be displayed
- When a thumbnail is clicked, if that is matched with the image to be matched,
- Score is incremented by one
- The new image to be matched should be generated randomly among the value of the key `imageUrl` from **imagesList** provided
- When a thumbnail is clicked, if it is not matched with the image to be matched,
- The game should end, and the [Scorecard](https://assets.ccbp.in/frontend/content/react-js/match-game-score-card-lg-output.png) view should be displayed
- When **PLAY AGAIN** button is clicked, then we should be able to play the game again
- The score and time values should be reset to `0` and `60` sec respectively
- The image to be matched should reset to the value of the key `imageUrl` from the first object in **imagesList** provided
- The active tab should reset to **Fruits**, and the thumbnails with **FRUIT** as their category should be displayed
- When the timer reached `0` sec, then the game should end, and the [Scorecard](https://assets.ccbp.in/frontend/content/react-js/match-game-score-card-lg-output.png) view should be displayed
- The App is provided with `tabsList`. It consists of a list of tabItem objects with the following properties in each tabItem object| Key | Data Type |
| :---------: | :-------: |
| tabId | String |
| displayText | String |- The App is provided with `imagesList`. It consists of a list of imageItem objects with the following properties in each imageItem object
| Key | Data Type |
| :----------: | :-------: |
| id | String |
| imageUrl | String |
| thumbnailUrl | String |
| category | String |### Important Note
Click to view
**The following instructions are required for the tests to pass**
- The image to be matched in the app should have the alt as **match**
- The thumbnail images in the app should have the alt as **thumbnail**### Resources
Image URLs
- [https://assets.ccbp.in/frontend/react-js/match-game-bg.png](https://assets.ccbp.in/frontend/react-js/match-game-bg.png)
- [https://assets.ccbp.in/frontend/react-js/match-game-score-card-lg-bg.png](https://assets.ccbp.in/frontend/react-js/match-game-score-card-lg-bg.png)
- [https://assets.ccbp.in/frontend/react-js/match-game-score-card-sm-bg.png](https://assets.ccbp.in/frontend/react-js/match-game-score-card-sm-bg.png)
- [https://assets.ccbp.in/frontend/react-js/match-game-website-logo.png](https://assets.ccbp.in/frontend/react-js/match-game-website-logo.png) alt should be **website logo**
- [https://assets.ccbp.in/frontend/react-js/match-game-timer-img.png](https://assets.ccbp.in/frontend/react-js/match-game-timer-img.png) alt should be **timer**
- [https://assets.ccbp.in/frontend/react-js/match-game-play-again-img.png](https://assets.ccbp.in/frontend/react-js/match-game-play-again-img.png) alt should be **reset**
- [https://assets.ccbp.in/frontend/react-js/match-game-trophy.png](https://assets.ccbp.in/frontend/react-js/match-game-trophy.png) alt should be **trophy**Colors
Hex: #2c0e3aHex: #ffffffHex: #fec653Hex: #cf60c8Font-families
- Roboto
> ### _Things to Keep in Mind_
>
> - All components you implement should go in the `src/components` directory.
> - Don't change the component folder names as those are the files being imported into the tests.
> - **Do not remove the pre-filled code**
> - Want to quickly review some of the concepts you’ve been learning? Take a look at the Cheat Sheets.