For my project, I decided to make a text-based game recommendation program in Python that lets the user explore games based on their associated tags.
The idea was to use an undirected Graph to hold Game and Tag data. The latter classes I eventually merged into a single Node class, mostly for convenience, though I see now that in the long run it would have been practical to keep them separated. On this note, planning thoroughly at the beginning of the project would have definitely saved me some time, help complete the program faster, as well as making the program more easily expandable.
The program uses naive pattern search to help the user find the desired tags/games. It is a highly integrated & unreusable version though, seeing as I had to implement logic to account for the Node class housing two different concepts at once. Nevertheless, I will make this a learning experience and keep my code modular in the future.
Last but not least, the data is stored in two arrays, one housing game information and the other tag names. As of now, there are only 10 entries in the gameData array, and I doubt I will add any more soon. This fact led me to rely on linear searching to find all required data, which I can admit was an uninspired choice. Albeit uninteresting, I found it appropriate for this amount of data. Moving forward, I would try a binary search on an array sorted alphabetically or a hash map.
All in all, I enjoyed coding this little program and I definitely got inspiration on which areas I have to improve on.