Write a collection of lines to the terminal stream at the given
        location. The lines are written as one 'block' (i.e. each new line
        starts one line down from the previous, but each starts *at the given x
        coordinate*).

        :parameter lines: An iterable of strings that should be written to the
            terminal. They need not all be the same length, but should ideally
            not extend beyond the right hand side of the terminal screen,
            otherwise strange linebreaking/overwriting may occur.
        :parameter x: the column of the terminal display at which the block of
            lines begins.
        :parameter y: the row of the terminal display at which the block of
            lines begins (from top).

def draw_lines(self, lines, x=0, y=0):
        '''Write a collection of lines to the terminal stream at the given
        location. The lines are written as one 'block' (i.e. each new line
        starts one line down from the previous, but each starts *at the given x
        coordinate*).

        :parameter lines: An iterable of strings that should be written to the
            terminal. They need not all be the same length, but should ideally
            not extend beyond the right hand side of the terminal screen,
            otherwise strange linebreaking/overwriting may occur.
        :parameter x: the column of the terminal display at which the block of
            lines begins.
        :parameter y: the row of the terminal display at which the block of
            lines begins (from top).
        '''
        for y, line in enumerate(lines, start=y):
            self.stream.write(self.move(y, x))
            self.stream.write(line)