Inspiration
Minesweeper is a classic game that teaches important skills like pattern recognition and problem solving which are very important in a field like CS. However, this game can be pretty inaccessible and intimidating to newcomers, with the online communities dominated by experts. We wanted to fill the gaps that Minesweeper Online has in regards to teaching Minesweeper newcomers how to play through a step-by-step tutorial and a playable version of Minesweeper within the web app! We were also influenced to choose this project by one of our group members, who is a very avid player of Minesweeper and who could provide insight into the complexity and charm of Minesweeper.
What it Does
Our web app has two notable features: the Tutorial mode and Playable mode. The Tutorial mode is a step-by-step walkthrough of how to play, what patterns to look out for, and the logical insight that goes into clearing the grid. The playable mode is a generated Beginner grid that the user can interact and play with, being able to flag (right-click), clear/click (left-click), and chord.
How we built it
The first couple of initial UI designs were created in Figma and based on the retro look of Minesweeper from the 90s. Then we created a node project with a react front-end. The front-end team customized the components of the web page with CSS, Javascript, and the React framework while the back-end team focused on coding the logic of the game mechanics and solver in Javascript. After making significant enough progress, both teams focused on integrating the two halves. In the end, we all contributed to all parts of the project.
Challenges we ran into
Challenges we faced were on the collaborating sides of things. We faced some difficulties bringing the front-end and back-end portions together since we opted out of using a database, which was an oversight. We also had a lot of trouble with Git and Merge Conflicts and spent a lot of time resolving those. We also faced some skill gaps in both technical knowledge and Minesweeper skill. Our individual experiences with both Minesweeper and Node/React/JS varied from zero experience to experts, but nobody was experienced with both.
Accomplishments that we're proud of
Despite our various skill gaps in Minesweeper and Technical knowledge, we still managed to pull a project together through teamwork and collaboration. All of us learned something new over the course of this weekend, all thanks to the other members of our team. We are extremely proud of how everyone supported each other and kept each other motivated during our work.
What we learned
Two of us were completely new to React and one had never even coded in Javascript before so we learned a lot of new skills. We learned the importance of version control and also communicating so that merge conflicts didn’t arise. We also learned the importance of a clearly defined tech stack, since we dealt with issues due to ambiguity.
What's next for Scholastic Sweeper - Your Favorite Minesweeper Bot Teacher
We want to expand on the difficulty levels provided for players, eventually offering Intermediate or Expert. Another goal is to create a Multiplayer version where each user has a role, placing flags or clearing. Another feature we were hoping to add was a leaderboard which would keep track of players' personal bests and track players’ progress.
Log in or sign up for Devpost to join the conversation.