use olcPixelGameEngine to add and manipulate sprites
Game Engine: https://github.com/OneLoneCoder/olcPixelGameEngine
More about vectors: https://math.libretexts.org/Bookshelves/Precalculus/Book%3A_Precalculus_(OpenStax)/08%3A_Further_Applications_of_Trigonometry/8.08%3A_Vectors
Projects are done in Visual Studio 2019, Cpp+17
More on refactoring code: https://refactoring.guru/
More on state machine: https://levelup.gitconnected.com/finite-state-machine-and-its-implementation-with-state-pattern-from-scratch-9732787a1277
More on super state design pattern: https://medium.com/nerd-for-tech/the-super-state-design-pattern-166127ce7c9a