Make a piece type with an abstract move method.
Then the dwarf inherits the piece type and the dwarf's move method moves how dwarfs are allowed to move.
The troll inherits the piece type and the troll's move method follows the rules of how a troll can move.
etc...
Then the dwarf inherits the piece type and the dwarf's move method moves how dwarfs are allowed to move.
The troll inherits the piece type and the troll's move method follows the rules of how a troll can move.
etc...