Actually, my plan was to use UML to design
a) The board
b) A piece (interface)
c) Each individual piece
d) A team
I'm not sure what to do about the moves though.
I was thinking that I would like to have a class called "moveAPiece"
that has all the different possible moves implemented in separate methods.
I read somewhere about a design pattern that might make this easier, but
I'm not sure I'm ready to get into that level. Maybe, I'll just build
each move into the individual pieces. Of course this would make using
an interface moot, *I think*, but that's ok.
Given that piece movement is an action on a piece, IMHO MoveAPiece
should be a method. Might think about Piece being an abstract class,
with derivative classes of Pawn, Rook, etc., each of which would
implement the MoveAPiece method differently. Piece would have all the
common parameters and functions you would expect from all pieces -
properties of Row, Column, Color, perhaps Points, and the method
MoveAPiece. Each class extending from Piece would override the
MoveAPiece method.