Currently we're using a very simple algorithm to draw lines, there must be a lot of algorithms work better. One example is the algorithm in libcaca, but it will be difficult to tell whether a cell is used by a line.
We have to find out a better approach which balances the shape of the line, and how we can detect if a cell is used in the line, and I have no idea now.