CSCI-561 Fall 2019 Homework 2 addendum
Following discussion on Piazza about how to best prevent spoiling, the rules are updated as follows (see thread 334 and others on piazza):
1. Moving pieces
a) Players cannot make a move that starts outside their own camp and causes one of their pieces to end up in their own camp.
b) If a player has at least one piece left in their own camp, they have to
• Move a piece out of their camp (i.e. at the end of the whole move the piece ends up
outside of their camp).
• If that’s not possible, move a piece in their camp further away from the corner of their
own camp ([0,0] or [15,15] respectively).
Only if the player does not have any pieces left in their camp or none of the two alternatives above are possible are they free to move pieces outside of their camp.
Note: To move “further away”, you should simply move so that you either move further away horizontally (while not moving closer vertically), or vertically (while not moving closer horizontally), or both.
2. Winning the game (no real change here, just a clarification)
A player wins if they are the first to fill out all the space in the opposite camp that’s not occupied by the opposite player’s pieces using at least one of their pieces.
What you should do:
If you already have some code that plays according to the original rules, likely somewhere you have a function that lists or loops over all the moves that your agent could take given the current state of the board. You should modify this function slightly to remove the possible moves that would violate the new rules above. We expect that no change should be necessary to your core minimax and alpha-beta code, although this may depend on your exact implementation.