'Return an ASCII representation of the network.'

def draw(self):

    str_wires = [((['-'] * 7) * self.depth)]
    str_wires[0][0] = '0'
    str_wires[0][1] = '    o'
    str_spaces = []
    for i in range(1, self.dimension):
        str_wires.append(((['-'] * 7) * self.depth))
        str_spaces.append(((['    '] * 7) * self.depth))
        str_wires[i][0] = str(i)
        str_wires[i][1] = '    o'
    for (index, level) in enumerate(self):
        for (wire1, wire2) in level:
            str_wires[wire1][((index + 1) * 6)] = 'x'
            str_wires[wire2][((index + 1) * 6)] = 'x'
            for i in range(wire1, wire2):
                str_spaces[i][(((index + 1) * 6) + 1)] = '|'
            for i in range((wire1 + 1), wire2):
                str_wires[i][((index + 1) * 6)] = '|'
    network_draw = ''.join(str_wires[0])
    for (line, space) in zip(str_wires[1:], str_spaces):
        network_draw += '\n'
        network_draw += ''.join(space)
        network_draw += '\n'
        network_draw += ''.join(line)
    return network_draw
