Mancala is a common name for a family of 2-player board games played with small stones, beans or seeds. Pallanguzhi is an ancient Tamil mancala game, it originates from Tamilnadu, and later spread to other countries like Sri Lanka, Malaysia, and other countries. In Malaysia it is popular game called congkak. The game is played by two players with a board, constructed of various material, with a serious of holes arranged in rows usually two. Playing pieces are seeds, beans, stones, and marbles. The board configurations wary among different games. The purpose of this assignment is to analyze the appropriate data structures, algorithms, and implement the game by choosing the programming language of your choice.
This game has various ways in terms of holes and seeds. For this assignment, we consider a board with 2 rows and 7 columns. There are 14 holes. At the start of the game, every hole is filled with 4 seeds (2 x 7 x 4 = 56 seeds). The objective is to capture more seeds than the opponent, one usually seeks to leave the opponent with no legal move or sometimes to capture all seeds in their front row.
At the beginning, the starting player lifts the seeds from any of his holes and, going counterclockwise, distributes one seed in each hole. If he reaches the end of his holes he goes on his opponent's side of the board. When the player drops his last seed, he takes the seeds from the next hole and continues placing them in this way. If the last seed falls into a hole with an empty hole beyond, the seeds in the hole beyond the empty hole are captured by the player and put into his store and his turn is over. If the last seed falls into a hole with two empty holes beyond, he captures no seeds and his turn is over. The next player continues play in the same way, taking seeds from any of his holes and going around placing seeds in a counter-clockwise direction.
This assignment should support the following tasks:
Use of proper data structure, complete algorithm that capture the objective of the game.
Game features o Basic game with a fixed board, each player moves, scoring, and able to identify the winner
An intermediate game with different board and seeds size, each player moves, scoring, identify the winner
An advance level with the support of player with computer, scoring, advance algorithm, winner, game with interface, and etc.
Any other feature or variations that are appropriate to the game
Every group need to submit a report on the assignment with the following sections:
My Part: (Which player should start first)
The source code for the assignment must be submitted together a user manual to test your program – in softcopy.
NOTE: Submitting the coursework means you have agreed that your work is original and comply with the rules and regulations (refer to Academic Impropriety)
The Marking scheme will be based on the following components:
This assignment will form 20% of your final grade.
The deadline for this assignment is on Week 13. This assignment should be submitted as a softcopy together with the course coversheet. The softcopy should contain the source code, explanation of the program if any and the output of your program.