In this Java project, I was tasked with developing the core logic for a variation of the "2048" game, primarily focusing on four methods in the Model.java file. My role involves managing game state changes, such as checking for empty spaces, the existence of the maximum tile, and the possibility of valid moves, as well as implementing the tilt method to handle tile movements and merges upon player inputs. This project, set in a Java environment using IntelliJ IDE and JUnit testing, offers me an intensive learning experience in navigating and manipulating a substantial codebase. I am expected to ensure functionality through provided tests, with a lesser emphasis on coding style, aiming to emulate real-world scenarios where understanding and adapting to existing codebases is crucial. The challenge lies in efficiently managing the game's logic, particularly in the complex tilt method, while adhering to good programming practices and utilizing helper methods for cleaner code.