code: def line(self, x0, y0, x1, y1, c='*'):
          r
          steep = abs(y1 - y0) > abs(x1 - x0)
          if steep:
              (x0, y0) = (y0, x0)
              (x1, y1) = (y1, x1)
          if x0 > x1:
              (x0, x1) = (x1, x0)
              (y0, y1) = (y1, y0)
          deltax = x1 - x0
          deltay = abs(y1 - y0)
          error = deltax / 2
          y = y0
          if y0 < y1:
              ystep = 1
          else:
              ystep = -1
          for x in range(x0, x1 - 1):
              if steep:
                  self[y, x] = c
              else:
                  self[x, y] = c
              error = error - deltay
              if error < 0:
                  y = y + ystep
                  error = error + deltax
docs: r"""Draws a line
  
          Who would have thought this would be so complicated?  Thanks
          again Wikipedia_ <3
  
          .. _Wikipedia: http://en.wikipedia.org/wiki/Bresenham's_line_algorithm