def put(canvas, x, y, char, color = None, back_color = None):
    """
    Put a character in the canvas.

    Parameters
    ----------
    canvas: canvas to draw in (dic).
    x, y: coordinate of were to put the char (int).
    char: char to put (str).
    (optiona) color, back_color: color for the char (string).

    Return
    ------
    canvas: canvas with the char put on it (dic).

    Version
    -------
    Specification: Nicolas Van Bossuyt (v1. 10/02/17)
    Implementation: Nicolas Van Bossuyt (v1. 10/02/17)
    """

    # Check if the coordinate is in the bound of the canvas.
    if x < canvas['size'][0] and x >= 0 and\
       y < canvas['size'][1] and y >= 0:

        # Put the char a the coordinate.
        canvas['grid'][(x,y)]['char'] = char
        canvas['grid'][(x,y)]['color'] = color
        canvas['grid'][(x,y)]['back_color'] = back_color

    return canvas