A recreation of the board game Blokus.
To recreate the famed board game Blokus, using Qt GUI library.
Eris was a 5-person team project for Software Design and Documentation class. We used the Unified Process to both construct and document a digital version of Blokus. As a design decision, we programmed our proejct used C++ and the Qt GUI library. The project was to be finished within 15 weeks.
Blokus is a board game invented by Bernard Tavitian.
The game begins with each player placing a piece at their respective corner. Then, the players take turns, placing as many pieces as possible. The catch is that a piece must touch a corner of a similar colored pieces. The same-colored pieces may not match by its sides, and no two pieces, regardless of color, may overlap.
On a player’s turn, click-and-drag a piece to the board. The player can rotate the piece using the left and right arrows, or flip it with up and down. When you drag a piece to a valid spot, it will glow pink. To place the piece, press the enter key.
If the player wants to use another piece, simply select another one from the tray. The remaining piece will return to its original position. Thus, there may be only one piece selected at all times.
We’ve found that 15 weeks was too small of a time slot to finish such an ambitious project. Due to time constraints, we were not able to implement a win/lose detection. Thus, while the game itself was playable, the game would halt once a player runs out of pieces, or if all players win.
Furthermore, we’ve found from the use cases that that our program was responsive and the drag-and-drop controls were easy to grasp. Several annoyances, however, prevented our users from being satisfied. All users, for example, thought that our “press enter to confirm” was too frequent and unnecessary. Additionally, users found the animation of a piece returning to the tray distracting, and noted that it prevented them from experimenting with different strategies before making a decision. Finally, users complained that the default placement of unused pieces were too spread out.
While we were aware of the majority of the problems, time constraints prevented us from fixing the project. As such, the game was presented “as is” during the final week of class.