Work Details

Memory Game

This project aims to create a memory game where players must find 8 pairs of hidden images in the shortest time possible. The images are randomly arranged on a grid. The game allows for multiple rounds, resetting the position of the images for each new round. Users can uncover two images at a time, accumulate pairs, and the best time is recorded for each session.

Skills required:

In this project, we successfully accomplished the design and development of a memory game application. The main objective was to create an interactive experience that tests players' memory while being entertaining.

The project was comprehensive, involving user interface design, game logic development, time management, tracking of matched pairs, and score management. We used native JavaScript, avoiding external libraries, which required a strong programming expertise.

The user interface was crucial for accessibility and engagement. We created an visually appealing game grid where images were initially hidden. Interactive buttons allowed players to start a new game or end the current one.

The game logic was at the core of the project. Players had to click on two images to flip them. The code handled image comparison, time management, tracking of matched pairs, and displaying congratulatory messages when all pairs were found.

We worked as a team following the Scrum methodology, holding planning, review, and retrospective meetings to organize our work.

This project demonstrates our ability to tackle technical challenges, meet deadlines, and create a high-quality interactive application. It is the result of our collective commitment to produce an entertaining and challenging memory game for users. While the project is completed, it remains a key achievement in our web development journey.

At the beginning of our project, I undertook thorough image research that matched the theme of the cards we wanted to use. I considered copyright issues and visual quality to ensure an optimal user experience.

I implemented a system for displaying cards on the user interface. The cards were properly positioned to avoid overlapping, and I programmed a rotation function so that users could flip and examine them from all angles.

I developed an algorithm to validate pairs of cards flipped by users. When a player flipped two cards, the system checked if they formed a valid pair. If there was a match, the cards were removed from the board. Otherwise, they were turned face down again.

To allow users to start a new game after completing or exiting a previous one, I implemented a game reset function. This included shuffling the cards, resetting the timer, and resetting the score.

I incorporated a system to record the best times of players. At the end of each game, the elapsed time was recorded if it was a new record. The best times were displayed in a leaderboard to encourage competition among players.