The goal is to implement an agent to play a simple 2-player zero-sum game called Breakthrough.
Rules of the game
• The 8x8 board is initially set up as shown below. Each player has 16 workers in their team.
• Players play in alternating turns and can only move one piece (of their own workers) at a time.
• In each turn, a worker can only move one square in the forward or diagonally- forward directions, as shown below. Moreover, a worker can 'capture' workers of the enemy team if they are placed diagonally forward from it, as shown in the illustration below. Note that if enemy workers are directly in front of the player, then a capture isn't possible.
• The game finishes when
(a) a worker reaches the enemy team's home base (the last row); or (b) when all workers of the enemy team are captured.
Minimax and alpha-beta agents
Your task is to implement agents to play the above game, one using minimax
search and one using alpha-beta search as well as two evaluation functions - one
which is more offensive (i.e., more focused on moving forward and capturing enemy
pieces), while the other which is more defensive (i.e., more focused on preventing
the enemy from moving into your territory or capturing your pieces). The evaluation
functions are used to return a value for a position when the depth limit of the search
is reached. Try to determine the maximum depth to which it is feasible for you to do
the search (for alpha-beta pruning, this depth should be larger than for minimax).
The worst-case number of leaf nodes for a tree with a depth of three in this game is roughly 110,592, but in practice is usually between 25,000 - 35,000. Thus, you should
at least be able to do minimax search to a depth of three.
We provide the following two dummy heuristics:
• Defensive Heuristic 1: The more pieces you have remaining, the higher your value is. The value will be computed according to the
formula 2*(number_of_own_pieces_remaining) + random().
• Offensive Heuristic 1: The more pieces your opponent has remaining, the
lower your value is. The value will be computed according to the formula 2*(30 - number_of_opponent_pieces_remaining) + random().
Hi I have read your requirement carefully. It's a great chance to introduce my skill. I am a talented software developer with over 11+ years experience. Algorithm, Game AI, GA is my major. I have full experience i Daha Fazla
Bu iş için 3 freelancer ortalamada $214 teklif veriyor
Have a lot of experience in bot making and game agents! developed many games bots using alpha-beta pruning techniques with Monte-Carlo search trees.