"The Model class's canMove method must be implemented in accordance with the task conditions." In my code in Model class canMove() function: Firstly, check if there are at least one empty tile. If true, movement can be made. Else, do copy of current state of board, next check if in movement to left, right etc. board was changed. If yes then movement was possible, so assign previous value of changed board and return true. If nothing of this returned true, return false. In Main I assigned values that I am sure canMove should return false because I copied them from 2048 game (now I know I could do it faster but nvm) Any thoughts? PS: In this code methods left, right, up, down was changed to return boolean, and return true if the board was changed.