I have to write a Connect Four game program. When a player takes their turn, they will select a column in which to place a token. The token is placed at the top of the column and is allowed to fall to the bottom, stacking on top of any previously placed tokens. Two players take turns placing token colors of red or yellow. The first person to create four of their color token in a row, horizontally or vertically, (NOT diagonally in this problem) wins and the game is over. The program will display the board (7 columns and 6 rows), then ask for alternating players to place a token in column 0 through 6. The process repeats until one player wins. You do not need to check for a tie game, or if there is space in a chosen column. The photos (shown below) contain the code for the game framework. It is required that I utilize functions and write my code within the functions. The function signatures are provided for you in the framework. Examine each one to see what will be needed by the end. I am given 2 functions to start with: main() and display(board). Part 1: Fill out the code for the placeToken function. It is given three parameters: (1) the board, (2) the column in which to place a token, and (3) the token itself. The board is the two dimensional list of characters, with spaces ' ' being empty locations. The column is a numerical index in which to place the token, and the token is the character 'R' or 'Y'. Start at the top row (index 0) and move down the rows until the row below is not ' ', then place the token. Then return the row the token ended up in. You can test this out by running the program, but the game won't end yet because the other functions are incomplete. Use control+C (command + C) to stop the game early. Another way to approach this is to start at the bottom row and walk upwards until the space is ' '. Part 2: Fill out the code for the winningMove function. The game is won if four tokens of the same color line up either vertically or horizontally. Good functional design would have these checks in their own functions. Fill in the code for winningMove such that it uses the 2 other check functions (below). This function can be one line of code. The row and column parameters are the location of the last move taken. Part 3: Fill in the code for checkVertical, which checks for four in a line vertically (on the same column) as the given row and column parameters. You only need to search outward from the row and column parameters and not the whole board. Since new moves are controlled by gravity in connect four, you only need to search downward. You can test if this is working by running the program. Part 4: Fill in the code for checkHorizontal, which checks for four in a line horizontally (on the same row) as the given row and column parameters. You only need to search outward from the row and column parameters and not the whole board. You can test if this is working by running the program. The last photo shows an example run..