Kata for the Game of Go

Objective

Build a go game object with all functionality and uses TDD:

  • Can print the board
  • Can place a black/white stone on board
  • Cannot place a stone on top of another stone
  • Captures group of stones with no liberties
  • Keeps track of captures
  • Can undo all moves
  • Can pass
  • Keeps track of passes in a row (I.e. passes reset to 0 if a stone is played and subtract by 1 if it is undo)
  • Cannot place a suicide stone
  • Cannot capture a ko