We wanted to create a mobile game for the CCL. After brainstorming some ideas, we decided on a "word builder game", inspired by the classic board game "Scrabble" and the mobile game "Wordle".
Starting out, we created the screens with some placeholder components and the navigation functionality.
After that we mainly focused on the game:
base game logic (grid, emptyCells, letterCells, methods for generating random letters)
initial scoring system (+1 score per completed word)
**Working On The Game**<br>
- mutableStates
- logic for pseudo-randomly spawning letters (more common letters spawn more frequently) + timers based on letterScore
- logic for only allowing viable letters to be clicked
- logic for pseudo-randomly increasing word length (the further you progress, the higher the chance for longer words)
- updating the score system (points based on letters used, word length, successes in row)
- gameOverScreen
- unlockFonts functionality
**Design Of The Database**<br>
After creating the gameOverScreen and implementing the first steps for data handling, we implemented the database.
<br>
In hindsight, we definitely should have thought about how the data should be handled and how the database should be structured before working so much on the game and increasing its complexity.
This image is not entirely correct since some of the data handling is not done through the database but through other files: a viewmodel, the letterManager, the fontOptions class and the fontRepository.
<br>
Because of this, debugging and refactoring data related functionality was a bit tedious and confusing. In order to structure the code better and make it easier to read and understand, a big refactor would have been necessary. However, we did not have the time for that during the last week.