My final project is the algorithm implementation of game 2048 in both console and qt environment. The following contains the description and what I learn from this project.
- Description of my final project
- CORE algorithm (Console version)
- CORE algorithm (QT version)
- GUI algorithm in QT
- During this project, I developed my GUI programming skills(qt), learned about subject-observer pattern, and also improved my debugging skills. More importantly, I gained first-hand experiences about the whole developing process of a software program.
- Overall, during the core algorithm implementation, I learned to start designing a game from a scratch paper, including how to break seemingly complex function into different small functions.
- Moreover, I reviewed the random number generation function.
- More importantly, I stuck a really long time on debugging and it was the first time that I realized that programming is largely about debugging.
- Therefore, I developed a lot of debugging skills, including adding “cout” after steps so that I could learn about the internal states.
- Actually, the implementation is a process that combines all of my previous knowledge from pic 10A and 10B. Before, I gained enough tools that were needed for this implementation. After this program, I learned how to apply this tools to “real-world” problems and to use them in a more wholesome way.
- Overall, I learned how to adapt C++ algorithm to a QT environment by using core and algorithm separately.
- Moreover, I learned more about the QT languages by looking through QT documents, including QVector, QWidget, QGridLayout class.
- Most importantly, I learned a concept called Subject-Observer pattern, which is an important pattern in object-oriented programming languages.