Skip to content

elise-bigdevsoon/big-dev-soon-color-memory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Color Memory Project

Game inspired by Simon, where users can test their memory skills.

Color Memory Project preview image

Hello to BigDevSoon 👋

Create code that matters! 🤩

Level up your coding skills by building real-world projects with professional designs.

Project brief

Embark on a journey with the Color Memory game, a vibrant tribute to the iconic Simon game. Engage and challenge users with an intricate memory test, all set within a vividly designed, responsive, and captivating interactive interface.

What you will learn

  • HTML & CSS Mastery: Craft intricate components like a circle-shaped color selector, utilizing advanced layout techniques such as flexbox to ensure consistency across different devices.

  • Dynamic Interactivity with JavaScript: Build a game engine that can generate random color sequences, manage player inputs, and determine game outcomes. This will enhance your ability to manage complex logic and user interactions.

  • State Management: Immerse yourself in understanding browser storage techniques. Learn how to use local storage to persist the best scores, ensuring users can pick up right where they left off.

  • UI/UX Best Practices: Develop intuitive game interfaces, transitions, and feedback mechanisms. From countdown sequences to modals, learn how to guide and engage users throughout their gaming experience.

  • Sound Integration: Amplify user engagement by integrating sound effects, giving them real-time auditory feedback during gameplay.

  • Responsive Design: Perfect your skills in creating applications that look and feel excellent across desktop, tablet, and mobile devices, ensuring every player gets the best experience.

Requirements

  • Create a main circle-shaped component with four colors (green, red, blue, yellow). The component should be clickable and capable of highlighting one color at a time. The component should have two sizes: small for game rules and a default size for gameplay.
  • Develop a home page for the game with the following elements: a game rules icon on the left upper corner, a sound icon on the right upper corner, a centered "COLOR MEMORY" title, the circle-shaped component described above, and a "NEW GAME" button. These elements should be non-functional at this stage.
  • Clicking the "NEW GAME" button should initiate a countdown with the numbers 3, 2, 1, followed by "START." The game title should change to "WATCH CLOSELY," and the game should show a random color sequence for the player to repeat using the circle-shaped component. The bottom of the screen should display the current score as "SCORE: X." After displaying the sequence, the title should change to "YOUR TURN," indicating that it is now the player's turn to repeat the color sequence with the circle-shaped component. Each game, the color sequence to repeat should start with one color and increment by one for subsequent turns. For example, on the first turn, the sequence will have one color to repeat, on the second turn it will have two colors, and so on (the same is true for the score). This cycle should repeat until the player fails to repeat the correct sequence.
  • When the player fails to repeat the color sequence, a "GAME OVER" modal should appear, displaying "QUIT" and "TRY AGAIN" buttons. Clicking "QUIT" should close the modal and return to the home page, while clicking "TRY AGAIN" should close the modal and initiate a new game with the countdown sequence.
  • After playing at least one game and returning to the home page after a game over, a "BEST SCORE: X" should be displayed in the left bottom corner, showing the player's highest score.
  • Clicking the question mark icon in the left upper corner should display a "GAME RULES" modal. The modal should have an "OK" button to close it.
  • Implement sound notifications that can be toggled on/off using the sound icon in the right upper corner. Play sound effects for each color signal shown by the game, as well as when the player repeats the colors. Additional sound effects, such as game over sounds, can be added for enhanced gameplay.
  • Implement responsive web design for the game, ensuring proper alignment and scaling for desktop and tablet devices. On mobile devices, the modals' content should be arranged from top to bottom, while other elements should scale properly.
  • Persist the best score even after browser refresh. Implement measures to prevent accidental double-clicks and handle edge cases appropriately.

Project assets

Each project comes with additional assets to aid your implementation:

Starter Files: Get started with project templates, assets, and resources to kickstart your development process. Simple HTML/CSS/JS files are included.

Project images: Access a collection of a few chosen preview project images that can be used to enhance your project.

Unique Screenshots: Most cards in the project come with unique screenshots that provide visual guidance for your project's design and requirements.

Additionally, you have the option to download the comprehensive Figma Design for 3 BigTokens. This design includes all visual states and a robust Design System to ensure consistency and precision in your implementation. The "Download Figma design" button is available whenever you choose to elevate your project experience.

Get started

  1. Click the "Start Project" button on the project's page in our app to begin your project.
  2. Explore the available project assets, including images, starter files, and unique card screenshots to understand the project's scope.
  3. For a comprehensive project experience, download the Figma design for 3 BigTokens.
  4. Configure your "Coding setup" using Glitch or GitHub if desired.
  5. Dive into the project details through the cards for a deeper understanding.
  6. Start coding using your preferred technologies.
  7. Refer to the documentation or ask for assistance if needed.
  8. Submit your solution, let it shine, and share it with other folks!

Implementation

Embrace the freedom of choice in your implementation. Whether you're using familiar tools or experimenting with new ones, make this project uniquely yours. Use any combination of languages, libraries, or frameworks as you desire. Push boundaries, learn, and make something to be proud of. 😊

Setup & Environment: You can use both Glitch, a cloud-based editor perfect for quick starts and live previews, or GitHub to lay the groundwork. GitHub is an excellent choice for those building a portfolio or keen on mastering Git. If you're new to coding, consider beginning with Glitch to bypass the initial Git learning curve.

No matter your platform choice, feel free to overwrite repository files to suit your project structure. We've included a set of starter files and an assets folder, extracted from the design, to streamline your setup process.

Structuring your project: Whether you're pacing yourself with Freerun's card-by-card approach or diving into the deep end with Speedrun, it's essential to segment your work. Break down the project into smaller components or sections and plan the implementation based on the provided designs.

Getting help when stuck

Community: Reach out to our "Community questions" section in the project for support. Remember, connecting your Discord account grants you 1 BigToken on your first connection!

ChatGPT: For intricate, technical concerns, the "ChatGPT" section in the project is at your disposal. A BIG subscription is required to access this feature.

Review

Before finalizing your project, take a moment to review your work. This process ensures the quality of your code and fosters self-growth:

  1. Self-Review: Start by examining your own code. Use this time for introspection, checking that you've adhered to the project's goals and requirements.

  2. Community review: If you're looking for external opinions, our community is a great place to turn. Fellow developers can offer fresh perspectives, pointing out areas for refinement.

  3. ChatGPT review: Alternatively, if you're after technical insights, the "ChatGPT" section in the project offers in-depth analysis. This AI-powered tool pinpoints areas of improvement and helps to elevate your code quality.

Guidelines

  1. Project Planning: Start by reviewing the design and requirements. Get a good grasp of the project's scope. This foresight can save you time and rework later on.

  2. Design Fidelity: Strive for a close match with the design. However, creative variations are welcome, especially if they enhance UX/UI. Tools like PixelParallel can assist in ensuring design accuracy.

  3. Code Quality: Ensure your code is clean and efficient. Extensions like Prettier and ESLint, for VSCode users, are invaluable. For beginners, platforms like Glitch simplify the coding journey.

  4. Tech Stack Choices: Choose the right technologies that align with the project's needs. Whether it's a particular framework, library, or platform, your choice can impact the project's flexibility, scalability, and efficiency.

  5. Version Control: While optional, version control systems like Git can be beneficial, especially for larger projects. If you're keen, delve into GitHub flow, but simplicity is fine for newcomers or straightforward projects.

  6. Testing & Quality Assurance: Prioritize testing to ensure your project runs seamlessly. Conduct both automated tests, using tools like Jest, and manual tests to navigate the application as a user would. Vigilance in identifying and rectifying bugs will lead to a more robust and trustworthy final product.

Ultimately, the beauty of this project lies in the journey and the learning. Use tools that make your workflow efficient and add your unique touch to the design. 💡

Submit solution

Whether you've just begun or are wrapping up, you have the flexibility to submit your project at any stage via the "Submit solution" button. This not only allows for iterative improvements but also offers a chance to garner feedback early on, making your learning more effective.

Here's a quick guide to ensure a smooth submission:

  1. Cloud-Based Editors: If you're using cloud-based platforms like Glitch or Replit, submission is straightforward. These platforms automatically provide you with both code and preview links.

  2. Manual Deployment: For those who've built projects on local environments or prefer platforms that require manual deployment, consider services like Vercel, Netlify, or GitHub Pages.

  3. Tag Check: Ensure the <bds /> tag is present in your index.html. This is a crucial step as we'll verify its presence during submission.

  4. Optional Feedback via Discord: If you've connected your Discord account within our app, you can optionally request feedback during submission. This will initiate a thread on Discord where community members can provide insights. Each thread includes key links such as your repository and preview URL, making it easier for peers to review and comment.

Remember, the aim is not just to finish but to learn and grow. Iterative submissions and community feedback can greatly amplify your learning experience. Best of luck with your project journey!

Share solution

Celebrating and sharing your accomplishments is a great way to both reinforce your learning and inspire others. Here's how you can do it:

  1. Your Solution: Once you've submitted your solution, it becomes a part of your portfolio. Share your unique solution link directly from your solution page or use our "Share solution" widget. There, you'll find various social platform buttons to help spread the word effortlessly.

  2. Project Page: Loved the project? Share the Color Memory with your network. It’s a great way to challenge others and see what they can build.

  3. Invite Friends: Excited about our platform? Spread the joy! Every time you invite a friend using your unique link found in the Profile or Settings section of our app, and they register, you earn 1 BigToken. Sharing truly is rewarding!

  4. Technical write-up: Documenting your journey and the technical decisions you made can be an enriching experience. Platforms like dev.to, HackerNoon, and Medium are excellent places to pen down your thoughts. Not only does it help build your online presence, but it also solidifies your understanding.

  5. Create Free Content: Making tutorials or content around how you tackled the project can be both fun and educational. Linking back to the project can also drive curiosity and potentially help others in their coding journey.

Remember, every project has a story. Sharing yours might inspire someone else to begin their own. Keep coding, and keep sharing! 🌟

Happy coding! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published