def to_move(game)
move_elements = self.downcase.split
piece_name = move_elements[0]
destination_name = move_elements[-1]
if destination_name.length > 2 and
destination_name[-2,2] == game.board.centre.place[-2,2]
destination_name = game.board.centre.place
end
raise(InvalidMoveError, "Invalid piece in move read") unless game.pieces.has_key?(piece_name)
raise(InvalidMoveError, "Invalid destination in move read") unless game.board.positions.has_key?(destination_name)
via_base = (destination_name.length == 1 or move_elements.length > 2)
Move.new(game.pieces[piece_name], game.board.positions[destination_name], via_base)
end