We manage the new screen states from within our game loop. Because of this, we will make most of the changes in the main.cpp file. We will need to break the input function up into three new functions, one for each of our game screens. We will need to break our render function into start_render and play_render functions. We don't need an end_render function because we will continue to use the play_render function when the end screen is displayed.
We will also need a function to display the transition between the start screen and the play screen. Inside of the game loop, we will need to add logic to perform different loop logic based on the current screen.