Get Instant Help From 5000+ Experts For

Writing: Get your essay and assignment written from scratch by PhD expert

Rewriting: Paraphrase or rewrite your friend's essay with similar meaning at reduced cost

Mancala Game: Analyzing Data Structures and Algorithms

Playing the game

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:

• Cover page - Details of each group member, Indicate the percentage contribution of each member.
• Introduction-problem statement, scope, limitations, features that will be considered for this assignment.
• Requirement analysis – the data structure, algorithms, and methods to implement.
• Work done – Explanation on the implementation with code fragments, features, options ? Testing – test cases, sample screen shots
• An A4 page to be written individually by each team member personal reflection that includes:

My Part: (Which player should start first)

• An explanation of your understanding of the following concepts:
• A description of your contribution to the group work in details.
• The problems encountered during this assignment and how you solved these problems on your side.
• An evaluation of the strengths and weaknesses of your submitted work.
• Include each group’s member contribution percentage.
• Conclusion

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:

• Implementation of data structures / algorithms (30%)
• Functional requirements of the application (30%)
• Extra functionalities (20%)
• Report & Demo (20%)