Westonci.ca connects you with experts who provide insightful answers to your questions. Join us today and start learning! Get the answers you need quickly and accurately from a dedicated community of experts on our Q&A platform. Connect with a community of professionals ready to help you find accurate solutions to your questions quickly and efficiently.

For this project you will write a class called Mancala that allows two people to play a text-based version of the game (check the attached PDF file for the detailed rules). For this board game, two players can play. As the figure shows, the player who choose the bottom red position will be player 1 and the player choose the top blue position will be player 2 . Each player could only choose the pit on his side in each round: player 1 can only choose pits in red and player 2 can only choose pits in blue. The index for each pit is marked in the figure as well. We don't require a GUI for this project and all the input/output will be in the text format. You can improve your code later on after you finished the required part to make it your own portfolio project. Your code for the game must define the class and methods described below, but you are encouraged to define other methods or classes that may be useful for the game. All data members must be private. Mancala: The Mancala object represents the game as played. The class should contain information about the players and information about the board, it must contain those methods (but may have more): - create_player: takes one parameter of the player's name as a string and returns the player object. (You can define the player class by yourself. It will be your own design.) - print_board: takes no parameter and will print the current board information in this format: player1: store: number of seeds in player 1's store player 1 seeds number from pit 1 to 6 in a list player2: store: number of seeds in player 2's store player 2 seeds number from pit 1 to 6 in a list (check the last part for examples) - return_winner: takes no parameter. If the game is ended, return the winner in this format: "Winner is player 1 (or 2, based on the actual winner): player's name" If the game is a tie, return "It's a tie"; If the game is not ended yet, return "Game has not ended". - play game: takes two parameters, the player index (1 or 2 ), and the pit index (1 or 2 .... or 6 ), both as integers. This method should follow the rules of this game including the two special rules and update the seeds number in each pit including the store. It should also check the ending state of the game and once the ending state is reached, it should follow the rules and updated the seeds number in the pit and store for both players.