Validate, process, and score a move on a given board in the game of Go. Written in Python using standard libraries.
- N x N matrix where 5 ≤ N ≤ 25 and is odd
- Represents current board configuration
- Matrix values are 0,1, or 2
- 0 means empty
- 1 means white stone
- 2 means black stone
- 2D Coordinate pair
- Represents next move
- One Boolean value
- Represents color of next move
- True = White
- False = Black
- If successful
- Dict with following items
- N x N matrix with new board configuration
- Score
- Dict with following items
- If not succesful
- Bool False
- Check if given move is allowable on current board
- No stone there already
- Does not count as suicide
- Numbers within range
- Etc...
- May assume existing board is already validated from before
- Process the new board to determine any stone captures
- Generate a new board
- May assume the only captured stones are due to the new piece, if it helps (as earlier board was already valid)
- Score the new board based on the scoring rules of go